Hiện nay trên thị trƣờng có rất nhiều công cụ kiểm thử ứng dụng web tự động. Một số công cụ phù hợp cho kiểm thử giao diện ứng dụng web nhƣ:
o Quick Test Professional (QTP)
o AppPerfect Web Test
o Selenium
o Ranorex
o SoapTest
o vTest
o …
Dựa trên các tiêu chí lựa chọn công cụ kiểm thử tự động đƣợc nêu trong chƣơng 3 và các đặc điểm về ứng dụng web, có thể thấy rằng hai trong số nhiều công cụ kiểm thử giao diện ứng dụng web tiêu biểu đó là Quick test proessional và AppPerfect Web Test.
4.5.3.1. Quick Test Professional (QTP)
QTP (HP Quick Test Professional) là công cụ hỗ trợ kiểm thử chức năng (functional test) và cho phép thực hiện kiểm thử hồi qui (regression test) một cách tự động. QTP đƣợc khởi tạo bởi Mercury Interactive, tới năm 2006 đƣợc Hewlett Packard (HP) mua lại, hiện nó là sản phẩm bản quyền của HP. Đây cũng là công cụ áp dụng phƣơng pháp Keyword-Driven, một kỹ thuật scripting (lập trình trong KTTĐ) hiện đại, cho phép tester bổ sung test case bằng cách tạo file mô tả cho nó mà không cần phải chỉnh sửa hay bổ sung bất cứ script nào cả. Nó cũng phù hợp trong tình huống chuyển giao công việc mà ngƣời mới tiếp nhận chƣa có thời gian hoặc không hiểu script vẫn có thể thực hiện kiểm tra phần mềm theo đúng yêu cầu.
Các phần mềm hỗ trợ
QTP giúp chúng ta KTPM theo hƣớng chức năng trên rất nhiều loại chƣơng trình phần mềm khác nhau. Tuy nhiên Mercury chỉ hỗ trợ sẵn một số loại chƣơng trình thông dụng nhƣ:
- Ứng dụng Windows chuẩn/Win32.
- Ứng dụng web theo chuẩn HTML, XML chạy trong trình duyệt Internet Explorer, Netscape hoặc AOL.
- ActiveX.
- QTP hỗ trợ Unicode (UTF-8, UTF-16).
Một số loại chƣơng trình khác đòi hỏi chúng ta phải cài đặt thêm thành phần bổ sung của QTP thì mới thực hiện kiểm tra đƣợc. Các loại chƣơng trình đó là:
- NET
• NET Framework 1.0, 1.1, 2.0 beta
• Các đối tƣợng chuẩn của .NET và các đối tƣợng khác thừa kế từ các đối tƣợng chuẩn. - Java • Sun JDK 1.1 – 1.4.2 • IBM JDK 1.2 – 1.4 - Oracle • Oracle Applications 11.5.7, 11.5.8, 11.5.9 - People Soft • PeopleSoft Enterprise 8.0 – 8.8 - SAP • SAP GUI HMTL 4.6D, 6.10, 6.20 • SAP Workplace 2.11
• SAP Enterprise Portal 5.0 - Siebel
• Siebel 7.0, 7.5, 7.7 - Terminal Emulators
• Attachmate EXTRA! 6.7, 7.1
• Attachmate EXTRA! Terminal Viewer 3.1 Java sessions • IBM Personal Communications
- Dễ sử dụng, bảo trì, tạo test script nhanh. Cung cấp dữ liệu kiểm tra rõ ràng và dễ hiểu.
- Kiểm tra phiên bản mới của ứng dụng với rất ít sự thay đổi. Ví dụ khi ứng dụng thay đổi nút tên “Login” thành “Đăng nhập”, thì chỉ cần cập nhật lại Object Repository (OR – đƣợc giải thích ở phần sau) để QTP nhận ra sự thay đổi đó mà không cần thay đổi bất cứ test script nào.
- Hỗ trợ làm việc theo nhóm thông qua sự chia sẻ thƣ viện, thống nhất quản lý Object Repository.
- Thực tế cho thấy, QTP thực hiện KTTĐ trên nhiều trình duyệt cùng lúc tốt hơn những TT khác.
- Với chức năng Recovery Scenarios, QTP cho phép xử lý những sự kiện hoặc lỗi không thể đoán trƣớc có thể làm script bị dừng trong khi đang chạy.
- QTP có khả năng hiểu test script của Mercury Winrunner (một công cụ kiểm tra khác của Mercury).
- Quản trị Object Repository: Phối hợp giữa các tester qua việc đồng bộ hóa dữ liệu, khả năng trộn, nhập/xuất ra file XML
- Thƣ viện hàm mới: Chia sẻ các thƣ viện hàm giữa các nhóm tester
- Kiểm tra tài nguyên: Kiểm tra tài nguyên cần thiết trƣớc khi thực thi lệnh kiểm tra tự động.
- Nâng cấp khả năng kéo thả: Kéo thả các bƣớc kiểm tra trong môi trƣờng ngôn ngữ tự nhiên.
- Hỗ trợ XML cho báo cáo: Lƣu trữ kết quả kiểm tra dƣới dạng XML, HTML, từ đó cho phép tùy biến báo cáo.
- Trình phát triển mới (IDE): Môi trƣờng soạn thảo mới, mềm dẻo cho tùy biến và sử dụng.
- Trình dò lỗi mới: Cho phép KTV kiểm soát lỗi khi viết test case. - Quản trị từ khóa: Quản lý từ khóa trong quá trình sử dụng
- Hỗ trợ đa giao tiếp: Cho phép ngƣời dùng mở và soạn thảo đồng thời nhiều hàm thƣ viện và Object Repository.
- Hỗ trợ Unicode: Hỗ trợ Unicode với các ứng dụng đa ngôn ngữ (multi- language).
- Hỗ trợ các môi trƣờng mới. Yêu cầu hệ thống
- Computer/Processor: Pentium IV hoặc cao hơn (tối thiểu 1 Ghz)
- Hệ điều hành: Windows XP Service Pack 2, Windows 2000 SP3, SP4, hoặc Windows 2003 Server
- Bộ nhớ (Memory): Tối thiểu 1GB khi không có các phần add-ins đƣợc tải đồng thời. Nếu đang tải các phần add-ins hoặc lƣu các movie kết quả khi phiên làm việc đang thực hiện thì sẽ cần thêm bộ nhớ.
- Chế độ màu (Color Settings): chê độ màu cao - High Color (16 bit)
- Card đồ họa (Graphics Card): Graphics card với 64 MB bộ nhớ video
- Dung lƣợng lƣu trữ (Free Hard Disk Space): Cần tối thiểu 1GB để lƣu các
file và folder của ứng dụng, cần thêm 120 MB dung lƣợng dự phòng.
- Trình duyệt (Browser): Microsoft Internet Explorer 6.0 Service Pack 1 hoặc
các phiên bản mới cấp cao hơn. Các thành phần chức năng của QTP
Các thành phần chức năng của QTP đƣợc thể hiện rõ trên hình 4.2 sau đây:
Hình 4.1 – Các thành phần giao diện của QTP Menu bar: Cấu hình thao tác với QTP và script
File toolbar: Hỗ trợ quản lý script
Debug toolbar: Hỗ trợ kiểm tra lỗi trong test script (debug)
Công cụ KTTĐbar: Hỗ trợ quá trình tạo test script hoặc thực hiện KTTĐ
Action toolbar: Xem một Action (thủ tục, hàm) hoặc toàn bộ chu trình của test script
Test pane: Soạn thảo script ở một trong 2 chế độ Keyword View hoặc Expert View
Data Table: Nơi lƣu trữ dữ liệu cho test script Active Screen: Xem lại giao diện PM đƣợc kiểm tra Các thành phần quan trọng trong script của QTP
Action: Giống nhƣ thủ tục hay hàm trong các ngôn ngữ lập trình khác, Action
ghi lại các bƣớc thực hiện KTTĐ và nó có thể đƣợc sử dụng lại nhiều lần. Trong một test script có thể có nhiều Action.
DataTable: Nơi lƣu dữ liệu phục vụ cho KTTĐ. Một test script sẽ có một
DataTable đƣợc dùng chung cho tất cả các Action. Bên cạnh đó mỗi Action cũng có một DataTable cho riêng mình.
Object Repository (OR): Cấu trúc theo dạng cây, mô tả các đối tƣợng trong
PM đƣợc kiểm tra. Đây đƣợc xem là cầu nối để test script tƣơng tác với PM đƣợc kiểm tra. pKhi ra lệnh cho QTP ghi lại thao tác ngƣời dùng lên PM thì trong OR sẽ tự động phát sinh thành phần đại diện cho những đối tƣợng trên PM vừa đƣợc thao tác. OR có thể tổ chức thành 2 loại, một loại dùng chung trong nhiều test script, loại khác dùng theo từng Action. Để xem OR, chọn menu Tools > Object Repository.
Checkpoint: Có thể hiểu là nơi kiểm tra trong test script, khi chạy nó sẽ thực
hiện so sánh kết quả thực tế khi kiểm tra PM với kết quả mong đợi. Sau khi tiến hành so sánh QTP sẽ tự động ghi lại kết quả vào Test Results (nơi lƣu kết quả khi chạy test script).
Ngôn ngữ viết script
VBScript Delphi script
4.6.3.2. AppPerfect Web Test
AppPerfect Web Test là một phần mềm kiểm thử chức năng web và kiểm thử hồi quy hoàn toàn tự động. Bất kỳ ứng dụng nào truy cập qua một trình duyệt Web đều có thể kiểm thử. AppPerfect Functional Tester đƣợc thiết kế cho các lập trình viên là các chuyên gia đảm bảo chất lƣợng phần mềm (QA professionals). Nó cung cấp một tập hợp phong phú các tính năng dễ sử dụng mà mang lại hiệu quả ngay lập tức. Nó cung cấp một tập hợp phong phú các tính năng trong một cách để sử dụng dễ dàng mà làm cho cả hai nhóm sản xuất ngay lập tức.
AppPerfect Web Test cung cấp hỗ trợ cho việc “ghi âm” (recording) các sự kiện trên trình duyệt web và tự động “phát lại” (replaying) chúng. AppPerfect Web Test giúp giảm chi phí đáng kể về thời gian và nguồn lực nếu cho việc kiểm thử thủ công. Đặc biệt, với hệ thống lớn và phức tạp, càng khó khăn để đảm bảo hệ thống đáp ứng tốt các yêu cầu chức năng và đảm bảo không hồi quy theo thời gian. Ngay cả với dự án có kích thƣớc nhỏ cũng có thể cần rất nhiều test case gây nhiều khó khăn cho tester để kiểm thử tính nhất quán và liên tục. AppPerfect Web Test tự động hóa nhiệm vụ này và giúp bạn cải thiện hóa chất lƣợng ứng dụng Web của bạn.
Thiết kế kịch bản thử nghiệm cho kiểm thử giao diện
Một trong những khía cạnh quan trọng nhất trong việc kiểm thử giao diện thành công đó là thiết kết các test case. Trƣớc khi ghi lại các kịch bản thử nghiệm cần thiết có một kế hoạch kiểm thử rõ ràng. Kế hoạch kiểm thử càng chi tiết cụ thể, việc thực hiện nó càng dễ dàng và hiệu quả. Cần có danh sách các mô-đun cần kiểm thử, với mỗi mô-đun liệt kê các tính năng của mô-đun đó. Sau đó, thiết kết các test case cho mỗi tính năng của mô-đun. Với mỗi test case, định nghĩa tập dữ liệu kiểm thử sẽ đƣợc dùng để tham số cho test case đó, đồng thời xác định đầu ra mong muốn của test case. Khi đã sẵn sàng với hoạch kiểm thử, có thể bắt đầu tạo các kịch bản kiểm thử cho mỗi mô-đun đƣợc xác định.
Tạo dự án mới bằng cách: mở ứng dụng, chọn File -> New … và tạo một dự án kiểm thử giao diện mới.
Tạo Group mới cho mỗi tính năng của mô-đun hiện tại. Để tạo Group mới, lựa chọn Project Node trong cây biên tập, nhấn chuột phải và chọn Add Group… từ menu popup. Cung cấp các thông tin tên mô tả và các tính năng Group sẽ thực hiện. (Hình 4.3)
AppPerfect hỗ trợ hai loại Group. Với các ứng dụng Java có thể tạo Java Type Group, và với các ứng dụng giao diện ngƣời dùng Windows/desktop cần tạo ra các Windows Group. Trong trƣờng hợp các Group ứng dụng window, cần cung cấp các đƣờng dẫn thực thi ho các ứng dụng. Trong trƣờng hợp Java Group, cần
cung cấp các lớp Main, classpath và các môi trƣờng cần thiết khác để bắt đầu ứng dụng.
Hình 4.2 – Tạo Group trong AppPerfect Sử dụng chức năng Test Record
Kiểm tra công cụ GUI của AppPerfect không đòi hỏi lập trình hay kỹ năng kịch bản và cho phép ngay cả xét nghiệm kỹ thuật và thiếu kinh nghiệm bắt đầu tự động kiểm tra ngay lập tức. We provide easy to use Test Recorder which records each event or action as you interact with your application. Chúng tôi cung cấp dễ dàng để sử dụng thử nghiệm ghi âm ghi lại từng sự kiện hoặc hành động nhƣ bạn tƣơng tác với ứng dụng của bạn.
Công cụ kiểm thử giao diện của AppPerfect không đòi hỏi kỹ năng lập trình hay viết script và cho phép ngay cả những tester ít kinh nghiệm cũng có thể kiểm thử tự động ngay lập tức. Đó là nhờ chức năng Recoding, công cụ tự động ghi lại tất cả các sự kiện hay các hành động mà bạn tƣơng tác với ứng dụng.
Để bắt đầu chức năng ghi âm: Chọn dự án cần kiểm thứ, sau đó chọn Record Test … trên trình đơn.
Click vào nút “Start recording” chƣơng trình sẽ tự động ghi lại tất cả các thao tác của bạn trên ứng dụng. Chỉ cần đảm bảo thực hiện đúng các thao tác mà bạn muốn kiểm thử, chƣơng trình sẽ chụp lại (bắt lại) hành động đó.
Khi đang thực hiện ghi âm, bạn có thể duyệt tới kiểm thử đã ghi trong Editor view. Bộ ghi của AppPerfect sẽ ghi lại tất cả các thao tác tester thực hiện trên
ứng dụng cùng với các cửa sổ và hình ảnh trong ứng dụng của bạn. Kịch bản kiểm thử đƣợc ghi lại là dựa trên đối tƣợng, làm cho kiểm thử giao diện tin cậy hơn và tăng khả năng sử dụng của các kịch bản khi ứng dụng có sự thay đổi. Các hành động đƣợc ghi lại bằng cách tìm các yếu tố dựa trên các thuộc tính của phần tử nhƣ các lớp của cửa sổ, tển, văn bản,… chứ không phải bằng cách xác định tọa độ đối tƣợng. Các hành động của ngƣời dùng thực tế đƣợc mổ phỏng lại bằng các hoạt động mức thấp nhƣ bấm phím, và các sự kiện chuột. Component Validation support
AppPerfect cung cấp hỗ trợ rộng rãi về xác thực tính hợp lệ (validation) – Xem hình 4.4. Khi đang thực hiện ghi âm, vẫn có thể chỉnh sửa các test case để thực hiện yêu cầu validation. Bạn có thể thêm validation cho bất kỳ thành phần giao diện nào trong kiểm thử đƣợc ghi. Trên trình soạn thảo dự án (Project Editor), chọn nút
Validation -> click nút Add Validation, để khởi chạy một wizard để thêm validation.
Bạn có thể lựa chọn thành phần nào cần thiết thêm validation. Bạn cũng có thể xác nhận các thuộc tính của các thành phần giao diện ngƣời dùng nhƣ văn bản, giá trị, vị trí, chú thích, kích thƣớc,…
Hình 4.3 – Hỗ trợ thành phần Validation trong AppPerfect Mở rộng hỗ trợ các tham số
Yêu cầu phổ biến nhất trong kiểm thử giao diện là thực hiện cùng một tập các thao tác với dữ liệu đầu vào khác nhau để kiểm tra kết quả đầu ra có đúng nhƣ mong muốn. AppPerfect hỗ trợ mở rộng các tham số đầu vào, mỗi lần bạn có thể chạy nhiều bộ dữ liệu khác nhau với cùng một kịch bản. Giá trị các tham số đƣợc thông qua hoặc đối số các sự kiện hoặc các thuộc tính thành phần. Các thông số đƣợc lƣu trữ dƣới dạng các cặp tên – giá trị, trực quan đối với các lập trình viên và kiểm thử viên. Tùy
theo dự án, mà số lƣợng giá trị kiểm thử đƣợc lặp đi lặp lại, là các thông số tuần tự hay ngẫu nhiên.
Hình 4.4 – Định nghĩa tham số trong AppPerfect Thực hiện kiểm thử và phân tích chi tiết kết quả
Sau khi kiểm thử đƣợc thiết kế hoàn chỉnh có thể tiến hành thực hiện kiểm thử chức năng của ứng dụng. AppPerfect tạo ra các báo cáo (report) sau mỗi bƣớc tiến hành kiểm thử (Hình 4.6). Để phát lại các kiểm thử đã thực hiện, lựa chọn dự án -> chọn Run … trên thanh trình đơn tùy chọn. AppPerfect sẽ khởi động ứng dụng và bắt đầu phát lại từng bƣớc kiểm thử một cách tự động. Cuối quá trình kiểm tra, có thể xem kết quả chi tiết của từng bƣớc kiểm thử và xuất chúng sang các định dạng khác nhƣ html, pdf, word,… Trong trƣờng hợp kiểm thử thất bại, có thể xuất report này sang cho đội phát triển để phân tích và tìm cách sửa chữa.
Hình 4.5 – Phân tích kết quả kiểm thử với AppPerfect Test
Kiểm thử giao diện có thể chạy không cần giám sát trong chế độ tự động
Với công cụ AppPerfect bạn có thể chạy các thử nghiệm phức tạp mà không cần giám sát của tester. Có thể lên lịch để hệ thống tự động chạy kiểm thử, sau đó tester sẽ phân tích kết quả đạt đƣợc. Để sử dụng đƣợc tính năng lên lịch (schedule) cần cài đặt ứng dụng AppPerfect Test Manager (Hình 4.7).
Hình 4.6 – Lập lịch kiểm thử Kiểm thử giao diện phân phối
AppPerfect cho phép giả lập môi trƣờng thực tế với nhiều máy tính kết nối. Tester dễ dàng cấu hình danh sách các máy trên kịch bản kiểm thử sẽ đƣợc thực thi. Kết quả kiểm thử giao diện tất cả các máy sẽ đƣợc xuất ra cùng một báo cáo duy nhất tiện lợi cho việc phân tích.
Kiểm thử giao diện với nhóm hỗ trợ chia sẻ
Các tester có thể chia sẻ các kịch bản kiểm thử và kết quả kiểm thử khác nhau với các thành viên trong đội. Các kịch bản chức năng (Function Scripts) có thể chia sẻ với các nhà phát triển để họ có thể chạy nó sau mỗi lần hệ thống có thay đổi mã nguồn để kiểm thử hồi quy.
Hỗ trợ tích hợp IDE