Báo cáo chi tiết các ca kiểm thử

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và ứng dụng kiểm thử chấp nhận tự động với robot framework (Trang 47 - 62)

4.2.2. Kịch bản kiểm thử xây dựng theo hướng dữ liệu

Phần này sẽ chuyển đổi các ca kiểm thử trong tập tin LoginTest.txt

dƣới dạng thƣ mục cũng đặt tên là AppTest.

Đầu tiên thiết lập setup/teardown cho bộ kiểm thử thay vì cho từng ca kiểm thử trong bảng Setting:

*** Settings ***

Library Selenium Library Suite Setup Start Selenium Server Suite Teardown Stop Selenium Server

Test Setup OpenBrowser http://truongnha.com/login/ GoogleChrome

Test Teardown Close Browsers

Khi đó số dòng lệnh của ca kiểm thử trong bảng Testcases đƣợc giảm đi tƣơng ứng:

*** Testcases ***

Login Should Succeed When the Correct Username and Password are Entered

Maximize Browser Window

Input Text id_username hientt Input Text id_password hientt Click Button login

Location Should Be hientt

Nhận thấy từ khóa Maximize Browser Window không giúp cho ngƣời đọc hiểu thêm về ý định của ca kiểm thử, từ khóa này có thể tiếp tục đƣợc sử dụng trong khi thực hiện bất kỳ ca kiểm thử nào khác nên sẽ đặt nó vào bảng thiết lập. Nhƣng, từ khóa setup/teardown ta chỉ có thể đƣa vào một từ khóa. Nên ta dùng từ khóa trong bảng Keywords.

*** Keywords *** Login Test Setup

Open Browser http://truongnha.com/login/ GoogleChrome

Maximize Browser Window

Khi đó bảng thiết lập cần đƣợc thay đổi thành: *** Settings ***

Library Selenium Library Suite Setup Start Selenium Server Suite Teardown Stop Selenium Server Test Setup Login Test Setup Test Teardown Close Browser

Tách bảng thiết lập này ra một tập tin riêng có tên __init__.txt.

Thêm nữa, để làm cho các ca kiểm thử đƣợc rõ ràng hơn ta sẽ tạo ra các từ khóa ở mức ngƣời dùng trong bảng Keywords.

*** Keywords *** Enter Username

[Arguments] ${username}

Input Text id_username ${username} Enter Password

[Arguments] ${password}

Input Text id_password ${password} Click the Login Button

Click Button login Login Is Successful

Page Should Contain hientt Login is Unsuccessful

Run Keyword And Expect Error * Login Is Successful

Login Test Teardown Capture Screenshot Close Browser

Nhận thấy từ khóa nhƣ “Enter Username” sẽ đƣợc sử dụng trong hầu hết các ca kiểm thử trong ứng dụng này. Để tránh việc sao chép cùng bộ từ

khóa vào tất cả các tập tin, ta tách bảng “Keywords” ra, tạo một tệp tài nguyên có tên Keywords.txt.

Mặt khác, để dễ dàng khi thay đổi dữ liệu kiểm thử, ta tạo một bảng biến và cũng đặt vào trong tệp tài nguyên LoginKeywords.txt. Trong ứng dụng này ta quan tâm đến hai biến là địa chỉ url và trình duyệt.

*** Variables ***

${login address} http://truongnha.com/login/ ${browser} GoogleChrome

Còn lại bảng “Testcases”, ta tách ca kiểm thử đăng nhập phải thành công vào một tập tin đặt tên LoginTest.txt và thiết lập cho tập tin này nguồn dữ liệu là tập tin Keywords.txt. Ngoài ra, thiết lập thêm thời gian Timeout khi kiểm thử và thƣ viện mở rộng. Ta có tập tin LoginTest.txt dƣới đây.

*** Settings ***

Test Timeout 10 minute

Library Selenium Library Resource Keywords.txt

*** Testcases ***

Login Should Succeed When the Correct Username and Password are Entered

Enter Username hientt Enter Password hientt Click the Login Button Login Is Successful

Nhận thấy, ba ca kiểm thử còn lại có các thao tác kiểm thử giống nhau, kết quả mong đợi giống nhau, chỉ khác đầu vào. Trong trƣờng hợp này, Robot Framework cho phép tạo kịch bản kiểm thử dễ dàng bằng cách thiết lập Test Template.Ta tạo một một tập tin cho ba ca kiểm thử này với tên

“LoginDataDriven.txt” nhƣ sau. *** Settings ***

Library Selenium Library Resource Keywords.txt

*** Testcases *** username password The Password is Wrong

hientt TestFail The Password is Empty

hientt ${empty}

Both Fields are Empty

${empty} ${empty}

*** Keywords ***

Login Should Fail When

[Arguments] ${username} ${password} Enter Username ${username}

Enter Password ${password} Click the Login Button

Login Is Unsuccessful

4.3. Kiểm thử chức năng báo cáo

Phần này sẽ xây dựng kịch bản kiểm thử cho chức năng báo cáo “Sổ gọi tên và ghi điểm” và chức năng báo cáo “Phiếu báo điểm”. Kịch bản kiểm thử đặt trong tập tin ReportTest.txt trong thƣ mục AppTest.

Thứ nhất là chức năng báo cáo “Sổ gọi tên và ghi điểm”. Khi đăng nhập đƣợc vào ứng dụng, ngƣời dùng nhấn vào nút “Báo cáo”, tiếp tục ngƣời dùng nhấp vào liên kết “Sổ gọi tên và ghi điểm” thì ứng dụng phải mở ra trang cho phép tải về sổ điểm của các lớp, và trên trang web phải chứa dòng văn bản “Sổ gọi tên và ghi điểm”.

Ta xây dựng thêm từ khóa Click the Report Buttonđặt vào tập tin

Click the Report Button

Click Element id=report

Ca kiểm thử có tên MarkBook Report, kịch bản kiểm thử đặt trong bảng Test Cases của tập tin ReportTest.txt nhƣ sau:

MarkBook Report

Enter Username hientt Enter Password hientt Click the Login Button Click the Report Button

Click Link /school/report/printMarkBook Page Should Contain Sổ gọi tên và ghi điểm

Thứ hai là chức năng báo cáo “Phiếu báo điểm”. Khi đăng nhập đƣợc vào ứng dụng, ngƣời dùng nhấn vào nút “Báo cáo”, tiếp tục ngƣời dùng nhấp vào liên kết “Phiếu báo điểm” thì ứng dụng phải mở ra trang cho phép tải về phiếu báo điểm học kì một, học kì hai của các lớp, và trên trang web phải chứa dòng văn bản “Phiếu báo điểm”.

Ca kiểm thử có tên MarkForClass Report, kịch bản kiểm thử đặt trong bảng Test Cases của tập tin ReportTest.txt nhƣ sau:

MarkForClassReport

Enter Username hientt Enter Password hientt Click the Login Button Click the Report Button

Click Link /school/report/printMarkForClass Page Should Contain Phiếu báo điểm

4.4. Kiểm thử chức năng đăng xuất

Phần này sẽ xây dựng kịch bản kiểm thử cho chức năng đăng xuất. Kịch bản kiểm thử đặt trong tập tin LogoutTest.txt nằm trong thƣ mục AppTest.

Khi ngƣời dùng đăng nhập vào hệ thống, ngƣời dùng tƣơng tác với các chức năng của ứng dụng, ngƣời dùng không muốn làm việc với hệ thống nữa muốn thoát ra. Hệ thống phải có khả năng đăng xuất.

Ta xây dựng thêm từ khóa Click the Logout Button đặt vào tập tin

nguồn Keywords.txt nhƣ sau: Click the Logout Button

Click Element id=logout

Ca kiểm thử có tên Logout Should Succeed, kịch bản kiểm thử đặt trong bảng Test Cases của tập tin LogoutTest.txt nhƣ sau:

Logout Should Succeed

Enter Username hientt Enter Password hientt Click the Login Button Click the Logout Button Login is Unsuccessful

Nhƣ vậy, ta đã xây dựng xong kịch bản kiểm thử cho chức năng đăng nhập, báo cáo và đăng xuất của hệ thống http://truongnha.com. Toàn bộ kịch bản kiểm thử ở phần phụ lục.

KẾT LUẬN

Qua quá trình tìm hiểu nghiên cứu thực hiện luận văn “Nghiên cứu và ứng dụng kiểm thử chấpnhận tự động vớiRobot Framework”, tôi đã đạt đƣợc những kết quả và có hƣớng nghiên cứu tiếp nhƣ sau.

Kết quả đạt được của luận văn:

Nghiên cứu, hệ thống lại các kiến thức đƣợc dùng trong kiểm thử nói chung và kiểm thử chấp nhận tự động nói riêng.Tìm hiểu đƣợc một số công cụ hỗ trợ kiểm thử tự động.

Nghiên cứu đƣợc Robot Framework, một khung kiểm thử mã nguồn mở dùng kiểm thử chấp nhận tự động dự án phần mềm.Nó cung cấp mọi thứ cần thiết để xây dựng kịch bản kiểm thử dƣới dạng bảng từ những từ khóa đƣợc xây dựng sẵn hoặc dễ dàng tạo ra các từ khóa ở mức ngƣời dùng từ những từ khóa đã có.

Kết hợp đƣợc Robot Framework với các công cụ kiểm thử khác nhƣ Selenium thông qua các thƣ viện của framework. Ứng dụng đƣợc Robot Framework vào kiểm thử trang web thực tế http://truongnha.com/.

Ứng dụng trong thực tiễn: Có tính thực tiễn cao, đƣợc đông đảo cộng đồng kiểm thử phần mềm trong nƣớc và thế giới đón nhận. Robot Framework hoạt động đƣợc trên các trình duyệt web và hệ điều hành khác nhau. Ứng dụng vào kiểm thử chấp nhận tự động các sản phẩm phần mềm.

Hướng nghiên cứu tiếp theo: Ứng dụng Robot Framework trong các dự án phần mềm đặc biệt là các dự án Agile. Nghiên cứu xây dựng thêm các thƣ viện mở rộng khả năng của Robot Framework.

TÀI LIỆU THAM KHẢO

[ [1]. Mai Thị Nhi, "Nghiên cứu và ứng dụng công cụ kiểm thử tự động trong kiểm thử phần mềm," Học viện công nghệ Bƣu chính viễn thông, Hà Nội, 2012.

[ [2]. Phạm Ngọc Hùng, Trƣơng Anh Hoàng, Đặng Văn Hƣng, Giáo trình kiểm thử phần mềm. Hà Nội: Đại học Công nghệ - Đại học Quốc gia

Hà Nội, 2014.

[ [3]. Hà Khánh Toàn, "Phƣơng pháp sinh bộ kiểm thử tự động cho kiểm thử giao diện ứng dụng Web," Hà Nội, 2013.

[ [4]. Kaner,Cem; Falk, jack; Nguyen,Hung Quoc, Testing Computer Software. New York, 1999.

[ [5]. Kolawa, Adam, Huizinga, Dorota, "Automated Defect Prevention: Best Practices in Software Management," pp. 41-43, 2007.

[ [6]. IEEE, "IEEE Standard Glossary of Software Engineering Terminology," IEEE Std 610.12-1990, pp. 1-84, dec 1990.

[ [7]. Crispen, L. and T. House, "Testing Extreme Programming," 2003.

[ [8]. Kaner, C., J. Bach, "Lessons Learned in Software Testing," 2002. [ [9]. Tip House Lisa Crispin, "Testing in the Fast Lane: Automating Acceptance Testing in an Extreme Programming Environment," in XP Universe Conference, 2001.

[ [10]. Jiantao Pan, Software Testing: Carnegie Mellon University,

1999.

[11]. http://robotframework.org/

[12]. http://en.wikipedia.org/wiki/Test_automation [13]. www.fitnesse.org/FitNesse.UserGuide

[14]. http://htmlunit.sourceforge.net/

PHỤ LỤC Tập tinLoginTest.txt

*** Settings ***

Library Selenium Library

*** Testcases ***

Login Should Succeed When the Correct Username and Password are Entered

Start Selenium Server

Open Browser http://truongnha.com/login/ GoogleChrome

Maximize Browser Window

Input Text id_username hientt Input Text id_password hientt Click Button login

Page Should Contain hientt Close Browser

Stop Selenium Server

Login Should not Succeed When the Correct Username and Wrong Password

Start Selenium Server

Open Browser http://truongnha.com/login/ GoogleChrome

Maximize Browser Window

Input Text id_username hientt Input Text id_password demo Click Button login

Run Keyword And Expect Error * Page Should Contain hientt

Stop Selenium Server

Login Should not Succeed When the Wrong Username and Correct Password

Start Selenium Server

Open Browser http://truongnha.com/login/ GoogleChrome

Maximize Browser Window

Input Text id_username tranhien Input Text id_password hientt Click Button login

Run Keyword And Expect Error * Page Should Contain hientt

Close Browser

Stop Selenium Server

Login Should not Succeed When the Username and Password are Emty

Start Selenium Server

Open Browser http://truongnha.com/login/ GoogleChrome

Maximize Browser Window

Input Text id_username ${empty} Input Text id_password ${empty} Click Button login

Run Keyword And Expect Error * Page Should Contain hientt

Close Browser

Thư mục LoginTest có chứa các tập tin: Tập tin __init__.txt

*** Settings ***

Suite Setup Start Selenium Server Suite Teardown Stop Selenium Server Test Setup Login Test Setup Test Teardown Login Test Teardown Library Selenium Library Resource Keywords.txt

Tập tin LoginTest.txt

*** Settings ***

Library Selenium Library Resource Keywords.txt

*** Testcases ***

Login Should Succeed When the Correct Username and Password are Entered

Enter id_Username hientt Enter id_Password hientt Click the Login Button Login Is Successful

Tập tin LoginDataDriven.txt

*** Settings ***

Test Template Login Should Fail When Library Selenium Library

Resource Keywords.txt

*** Testcases *** Username Password The Password is Wrong

hientt TestFail The Password is Empty

hientt ${empty} Both Fields are Empty

${empty} ${empty}

*** Keywords ***

Login Should Fail When

[Arguments] ${username} ${password} Enter id_Username ${username}

Enter id_Password ${password} Click the Login Button

Login Is Unsuccessful

Tập tin Keywords.txt

*** Variables ***

${login address} http://truongnha.com/login/ ${browser} GoogleChrome

*** Keywords *** Enter Username

[Arguments] ${username}

Input Text id_username ${username} Enter Password

[Arguments] ${password}

Input Text id_password ${password} Click the Login Button

Click Button login Click the Logout Button

Click Element id=logout Click the Report Button

Click Element id=report Login Is Successful

Page Should Contain hientt Login is Unsuccessful

Run Keyword And Expect Error * Login Is Successful

Login Test Setup

Open Browser ${login address} ${browser} Maximize Browser Window

Login Test Teardown Capture Screenshot Close Browser

Tập tin RepotTest.Txt

*** Settings ***

Library Selenium Library Resource Keywords.txt *** Test Cases ***

Enter Username hientt Enter Password hientt Click the Login Button Click the Report Button

Click Link /school/report/printMarkBook Page Should Contain Sổ gọi tên và ghi điểm

MarkForClass Report

Enter Username hientt Enter Password hientt Click the Login Button Click the Report Button

Click Link /school/report/printMarkForClass Page Should Contain Phiếu báo điểm

Tập tin LogoutTest.txt

*** Settings ***

Test Timeout 10 minute

Library Selenium Library Resource Keywords.txt

*** Test Cases *** Logout Should Succeed

Enter Username hientt Enter Password hientt Click the Login Button Login Is Successful Click the Logout Button Login is Unsuccessful

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và ứng dụng kiểm thử chấp nhận tự động với robot framework (Trang 47 - 62)

Tải bản đầy đủ (PDF)

(62 trang)