Kết quả phân tích lỗi đã hiển thị kết quả của ca kiểm thử. Nếu ca kiểm thử có lỗi thì sẽ đƣợc báo lại bằng màu đỏ và hình ảnh của lỗi cũng đƣợc hiển thị để giúp kiểm thử viên dễ dàng kiểm tra. Nếu ca kiểm thử thành công thì hình tròn màu xanh sẽ xuất hiện và kết quả sẽ báo ca kiểm thử thành công. Cách hiển thị lỗi rõ ràng của Ranorex là một điểm hơn hẳn các công cụ khác và cách hiển thị lỗi cũng có chút thay đổi ở các phiên bản Ranorex khác nhau. Nhƣng vẫn là màu đỏ là báo lỗi còn màu xanh là kiểm thử thành công.
Chế độ bảo trì chế độ bảo trì cho phép bạn nắm bắt và giải quyết các lỗi nhất định trong quá trình thực hiện kiểm tra. Sau đó, bạn có thể áp dụng các bản sửa lỗi cho bộ thử nghiệm của mình từ báo cáo. Điều này tiết kiệm thời gian bởi vì bạn không phải để toàn bộ thử nghiệm chạy qua để bắt đầu chẩn đoán và sửa lỗi.
Hình 3.7. Kích ho t chế độ bảo trì
Kích hoạt chế độ bảo trì bằng cách sử dụng công tắc trong chế độ xem bộ kiểm tra. Bây giờ khi bạn chạy thử nghiệm của bạn, nó sẽ đƣợc thực hiện trong chế độ bảo trì. Khi bạn đóng chế độ xem bộ thử nghiệm và mở lại, chế độ bảo trì sẽ bị tắt một lần nữa.
Chƣơng 4: Ứng dụng và thực nghiệm
Trong chƣơng này sẽ trình bày ứng dụng thực tế một phần mềm đƣợc sử dụng công cụ Ranorex để test đó là phần mềm Keepass một phần mềm bảo vệ mật khẩu.
4.1. Giới thiệu về phần mềm Keepass
Trong thời đại công nghệ phát triển nhƣ hiện nay việc sở hữu tài khoản cá nhân không còn đơn thuần nữa. Mỗi cá nhân sử dụng rất nhiều tài khoản trên các trang khác nhau vì yêu cầu công việc và giải trí Trƣờng hợp bạn sử dụng cùng một mật khẩu cho tất cả các trang nếu bị lấy cắp mật khẩu thì bạn mất hết tài khoản Trƣờng hợp bạn lƣu mỗi trang một tài khoản nên sử dụng thêm phần mềm hỗ trợ quản lý mật khẩu. KeePass Password Safe7 là chƣơng trình mã nguồn mở nhỏ gọn để quản lý Password trong Windows. Keepass là một phần mềm miễn phí sử dụng mã nguồn mở (chứng nhận của OSI). Chƣơng trình này d ng cơ sở dữ liệu đƣợc mã hóa (Encrypt) cho phép dùng một khóa quan trong (key file) hay một mã Password duy nhất thay thế cho rất nhiều Password khác nhau của ngƣời dùng trong những ứng dụng, cửa sổ khác nhau [12]. Một số tính năng của phần mềm Keepass là: Bảo mật nhanh, nhiều khóa ngƣời dùng, trình tạo mật khẩu ngẫu nhiên, hỗ trợ đa ngôn ngữ v.v. KeePass có hai phiên bản chính là có thể cài đặt (Installable)và có thể di động (Portable) Ngƣời sử dụng có thể sao chép bản Portable vào USB và đem sử dụng trên bất cứ máy tính nào. Tự động đăng nhập với tính năng TCATO (Two Channel Auto - Type Obfuscation): thực chất, điều này khá quan trọng, bởi vì nó ngăn chặn việc ngƣời khác sử dụng bàn phím trƣớc tiên để đăng nhập, và những thông tin này hoàn toàn có thể bị ghi nhớ bằng chƣơng trình keylogger thông thƣờng. Mặt khác, TCATO đƣợc tích hợp đủ để khiến cho những ứng dụng keylogger bị
7
“nhầm lẫn” với việc sử dụng clipboard của Windows để chuyển từng phần trong chuỗi ký tự auto – text của ứng dụng Nhƣng có một điểm hơi bất tiện ở đây là TCATO mặc định chƣa đƣợc kích hoạt, các bạn hãy chọn Entry > Auto-Type và đánh dấu vào ô Two-channel auto-type obfuscation [13]. Hoạt động tƣơng thích với tất cả các trình duyệt mà không cần tới plug – in hỗ trợ: KeePass là một ứng dụng chạy độc lập, do vậy tính linh hoạt rất cao, ngƣời sử dụng không cần phải cài đặt bất k plugin nào.
4.2 Thực nghiệm
Đầu tiên trƣớc khi thực nghiệm cần mở và chạy chƣơng trình Keepass Nhấn Start cửa sổ tiếp theo sẽ hiển thị. Hình 4.1. là một phần mã nguồn của ứng dụng này khi hiển thị bằng bộ công cụ MS. Visual Studio. Vì Keepass là một phần mềm mã nguồn mở nên chúng ta có thể chỉnh sửa để có nhiều phiên bản khác nhau trong quá trình kiểm thử.
Hình 4.2. Cửa sổ mật khẩu hiển thị
Tiếp theo, ngƣời dùng cần gõ mật khẩu bảo mật cho toàn bộ chƣơng trình Đây là mật khẩu duy nhất mà ngƣời dùng cần nhớ khi sử dụng chƣơng trình này sau đó nhấn OK cửa sổ giao diện chính đƣợc hiển thị nhƣ Hình 4.2.
Khi mở chƣơng trình cửa sổ nhập mật khẩu hiển thị ta cần nhập mật khẩu lƣu trữ vào rồi nhấn nút OK cửa sổ giao diện sẽ đƣợc hiển thị nhƣ Hình 4.3.
Thực nghiệm 1: Kiểm tra chức năng di chuyển con trỏ tới phần tử yêu cầu. Sau khi mở chƣơng trình thực nghiệm Bƣớc 1: vào View trên thanh công cụ Bƣớc 2: chọn Sort by sau đó Bƣớc 3: click chuột vào mục Title. Mong muốn kết quả đầu ra là trỏ chuột thay đổi vị trí từ vị trí ban đầu ở mục User name chuyển sang mục Title.
Hình 4.4. Giá trị an đầu khi thực hiện thử nghiệm
Sử dụng Ranorex để kiểm tra (test) chƣơng trình dựa trên thử nghiệm đầu vào và đầu ra nhƣ mong muốn nếu kết quả là không có lỗi nghĩa là chƣơng trình đã không thể thay đổi vị trí trỏ chuột nhƣ mong muốn của ngƣời dùng từ đó cần báo cho lập trình viên sửa lỗi của chƣơng trình
Hình 4.5. C c h nh động đƣợc ghi khi thực hiện thử nghiệm
Hình 4.5 khi thực hiện thử nghiệm từng hành động đều đƣợc ghi lại một cách rõ ràng bởi Ranorex. Từng bƣớc click chuột hay các giá trị đầu vào của trƣơng chình luôn đi kèm hình ảnh hiển thị.
Kết quả chạy thử nghiệm giống nhƣ kết quả đầu vào mong muốn điều này chứng tỏ chƣơng trình có lỗi ở vị trí con trỏ mũi tên di chuyển trong cửa sổ hiển thị.
Hình 4.7. Đo n mã chứa lỗi
Hình 4.7 hiển thị đoạn mã chứa lỗi di chuyển con trỏ nhƣ trên đã mô tả. Giờ lập trình viên sửa mã này sẽ có đƣợc chƣơng trình thực hiện không cón lỗi di chuyển con trỏ mũi tên nữa. Toàn bộ đoạn mã (code) đƣợc sử dụng comment là đoạn mã thể hiện chức năng di chuyển con trỏ trong giao diện phần mềm.
Thực nghiệm 2: Kiểm tra chức năng hiển thị sự sắp xếp của cửa sổ màn hình chƣơng trình
Khi cửa sổ giao diện của chƣơng trình hiển thị Bƣớc 1: chọn View trong thanh công cụ Bƣớc 2: chọn đến Window Layout cửa sổ hiện tại đang ở kiểu Stacked Bƣớc 3: chuyển về kiểu Side by Side (sắp xếp các phần tử theo chiều
dọc màn hình). Nếu kết quả hiển thị mà không thay đổi thứ tự phần tử thì chƣơng trình có lỗi mong muốn kết quả báo của Ranorex là thành công.
Hình 4.8. Giao diện hiển thị sự sắp xếp các phần tử
Ban đầu giao diện đang phân chia thứ tự các phần tử sắp xếp giống nhƣ Hình 4.8 nhƣng giao diện mong muốn khi kích chuột sang Side by Side là kiểu sắp xếp các phần tử theo chiều dọc.
Hình 4.10. Kết quả khi thực thi
Hình 4.11. Đo n mã chƣơng nh gây a ỗi
Kết quả hiển thị thành công có nghĩa chƣơng trình có lỗi, không thay đổi kiểu sắp xếp nhƣ mong muốn kích chuột. Vấn đề này sẽ đƣợc các kiểm thử viên
thông báo lại với các lập trình viên để lập trình viên có thể tìm ra lỗi của chƣơng trình và chỉnh sửa lại chúng.
Hình 4 11 là đoạn mã chứa lỗi sắp xếp phần tử hiển thị đƣợc tìm ra. Sử dụng công cụ kiểm thử viên sẽ không phải thiết kế toàn bộ kịch bản tƣơng tác UI có thể có Thay vào đó, họ chỉ cần tải các tệp kịch bản đã ghi lên công cụ đề xuất Các kịch bản mới sẽ đƣợc sinh ra chỉ với một vài bƣớc t y chỉnh các tình huống mà kiểm thử viên muốn kiểm thử Cuối c ng kiểm thử viên chỉ cần đƣa toàn bộ tệp mã nguồn kịch bản đƣợc sinh ra vào Ranorex để chạy lại và thu đƣợc kết quả kiểm thử.
Chƣơng 5 ế uận
Tự động hóa quá trình kiểm thử nói chung và kiểm thử tƣơng tác giao diện ngƣời dùng đƣợc xem là giải pháp hiệu quả góp phần giải quyết đƣợc hai vấn đề bao gồm đảm bảo chất lƣợng và giảm chi phí, thời gian trong quá trình phát triển chƣơng trình phần mềm Đã có nhiều giải pháp và công cụ đƣợc đề xuất nhằm thực hiện hóa mục tiêu này nhƣ kiểm thử tƣơng tác giao diện ngƣời dùng sử dụng công cụ Ranorex hay sử dụng các công cụ ghi và chạy lại các kịch bản tƣơng tác UI Tuy nhiên, chi phí để sử dụng công cụ Ranorex khá lớn, công cụ nhƣ Ranorex chỉ hỗ trợ ghi và chạy mà không hỗ trợ sinh các kịch bản tƣơng tác UI.
Luận văn đã tiến hành nghiên cứu về kiểm thử tự động, kiểm thử tƣơng tác giao diện ngƣời dùng nhằm củng cố các kiến thức nền tảng. Luận văn đi sâu tìm hiểu một số công cụ hỗ trợ kiểm thử tƣơng tác giao diện ngƣời dùng nhằm chỉ ra những điểm nổi bật và hạn chế của từng công cụ. Từ những khảo sát này, luận văn nhận thấy Ranorex là bộ công cụ có nhiều tính năng nổi bật nhất. Ngoài khả năng xác định các đối tƣợng UI chính xác, Ranorex còn cung cấp tính năng cho ph p kiểm thử viên chỉnh sửa kịch bản sử dụng các đoạn mã giúp cho việc kiểm thử linh hoạt hơn Ranorex là công cụ kiểm thử giao diện ngƣời d ng đƣợc cho là nổi trội nhất hiện nay cả về mặt tính năng cũng nhƣ mức độ thân thiện với ngƣời sử dụng.Luận văn cũng đã áp dụng kiến thức tìm hiểu thực hiện kiểm thử một số phiên bản cho một ứng dụng phần mềm sử dụng công cụ Ranorex nhằm minh chứng cho những hiểu biết đã nghiên cứu.
Mặc d đã có nhiều cố gắng trong thời gian thực hiện luận văn nhƣng với kinh nghiệm và kiến thức về công nghệ còn hạn chế nên luận văn không tránh khỏi những thiếu sót. Sự áp dụng những kiến thức tìm hiểu đƣợc mới chỉ dừng lại ở một ứng dụng nhỏ, mà vẫn chƣa thử áp dụng cho các bài toán hay ứng dụng lớn. Sự so sánh mới chỉ dừng lại ở ba công cụ Selenium, QTP, Ranorex
chứ chƣa mở rộng đƣợc nhiều công cụ. Trong quá trình áp dụng thử nghiệm, học viên sẽ chủ động cấy lỗi cho ứng dụng để có đƣợc các phiên bản khác nhau. Tuy nhiên, các phiên bản áp dụng hiện tại mới chỉ chứa một số lỗi cơ bản, với các tình huống có thể gây lỗi đối với đối tƣợng giao diện là textbox Luận văn đang đƣợc tiếp tục phát triển để xử l với các đối tƣợng khác nhƣ button, dateandtime, checkbox, v.v. Ngoài ra, việc cho ph p kiểm thử viên tự đinh nghĩa một số tình huống có thể gây lỗi mới giúp cơ sở dữ liệu đầy đủ hơn Luận văn cũng sẽ tiếp tục nghiên cứu thêm các công cụ hỗ trợ kiểm thử tự động khác nhƣ kế hoạch kiểm thử (Test Plan), ca kiểm thử (Test Case) và tiến hành tích hợp vào Ranorex, tối đa sự thuận tiện cho kiểm thử viên. Luận văn cũng sẽ cố gắng tạo ra một giao diện mở với tài liệu đầy đủ để ngƣời dùng viết các tính năng thêm vào (plug-in) của riêng mình.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Nguyễn Mạnh Hùng. Phƣơng pháp hỗ trợ sinh kịch bản tƣơng tác giao diện cho kiểm thử tự động. Khóa luận tốt nghiệp Đại học, Trƣờng Đại học Công nghệ, ĐHQGHN, 2017
[2] Lê Thị Kim Chung. Cải tiến và sử dụng công cụ kiểm thử Ranorex trong các dự án phần mềm. Luận văn Thạc sĩ kỹ thuật chuyên ngành Khoa học máy tính, Trƣờng Đại học Bách Khoa, Đại học Đà Nẵng, 2017.
Tiếng Anh
[3] Boris Beizer and Van Nostrand Reinhold (1990), Software Testing Techniques, Second Edition.
[4] Glenford J. Myers, Corey Sandler, and Tom Badgett (2011), The Art of Software Testing (3rd ed.). Wiley Publishing.
[5] Glenford J Myers (1979), “The Psychology and Economics of Program Testing”, The art of software testing, pp 11
[6] Lakshay Sharma (2017), Selenium Webdriver, Selenium Grid. http://toolsqa.com/selenium-webdriver/selenium-grid/
[7] Dinh Duong Tran, Duy Tung Nguyen, Pham Ngoc Hung (2018), A method for Automated User Interface Testing of Windows-based Applications, In
Proceedings of the 9th International Symposium on Information and Communication Technology (SoICT 2018) (accepted)
[8] Silviu Andrica and George Candea (2011), WaRR: A tool for high-fi delity web application record and replay. In Dependable Systems & Networks (DSN), 2011 IEEE/IFIP 41st International Conference on. IEEE, pp. 403– 410. [9] https://www.ranorex.com/ [10] https://viblo.asia/p/tim-hieu-ve-qtp-phan-1-ORNZqwDn50n [11] https://securitybox.vn/2016/kiem-thu-gui-la-gi/ [12] http://thuthuatphanmem.vn/huong-dan-quan-ly-mat-khau-bang-keepass/ [13] http://conganbackan.vn/bao-mat-may-tinh/trai-nghiem-keepass-trinh-quan- ly-mat-khau-an-tuong-24792.html