Chương 1: Giới thiệu tổng quan Chương 2: Kiến thức cần có, khái niệm liên quan. Chương 3: Phân tích chỉ tiết bản thiết kế của hệ thống. Triển khai, thử nghiệm và thực hiện đánh giá. Kết luận và hướng phát triển.
KIÊN THUC NEN TANG 2.1 Khái niệm KTPM Khái niệm kiểm thử của Glen Myers được xem là phổ biến nhất: “Việc kiểm thử là quá trình thực thi một chương trình với mục đích là tìm ra lỗi.2 Vòng đời kiểm thử và quy trình thực hiện kiểm thử Mục đích thực hiện kiểm thử là phân tích và thiết kế loạt trường hợp thử nghiệm để phát hiện lỗi với xác suất cao. Và dé đạt được kết quả kiểm thử tốt nhất thì ta nên lập Ta một kế hoạch thật chỉ tiết cho việc kiểm thử cũng như thực hiện các bước khác nhau và thực hiện từng bước để xác định lỗi. Phương pháp KTPM sử dụng hộp trắng Kiểm thử hộp trắng tên tiếng anh “White-Box Testing” cho phép ta thực hiện việc kiểm tra các câu trúc lệnh của một ứng dụng hay phần mén nhằm đảm bảo là toàn bộ câu lệnh cũng như các điều kiện đã thi hành ít nhất là một lần. White-Box Testing là một cách dé kiểm tra kiến trúc ở bên trong của chương trình.
Phương pháp giúp bạn có thể kiểm tra chương trình hay phần mềm hay là hệ thống khớp với toàn bộ giá trị được đưa vào, gồm cả giá trị hệ thống không chính xác hoặc không mong muốn. Khi thực hiện kiểm tra hộp trắng, điều quan trọng nhất có lẻ là phải chú ý đến đường dẫn lệnh dành cho kỹ thuật. Nếu toàn bộ đường thực thi của chương trình vượt qua tất cả trường hợp thử nghiệm, thì ta có thể xem là chương trình đó đã kiểm tra đầy đủ. White Box __ FE - ` mủ Hình 2.1 Kiểm thứ bằng hộp trắng 2.4 Phuong pháp KTPM sử dụng hộp đen Kiểm thử bằng hộp đen tên tiếng anh “Black — Box Testing” đây là một phương pháp thực thi kiểm thử mà không xem xét đến phan thiết kế bên trong của chương trình và mã nguồn.
Khi ta thực hiện kiểm thử bằng hộp đen ta chỉ quan tâm tới phần chức năng bên trong ứng dụng. Vì vậy, dạng kiểm tra này nên dựa trên phần mô tả các chức năng đã xây dựng mà chương trình hiện có dé xem nó có cung cap day đủ chức năng được mô tả trong hàm không? Kiểm thử bằng hộp đen đề cập đến việc thực hiện kiểm thử mà chỉ quan tâm đến dữ liệu ta đưa vào và dữ liệu đầu ra của hệ thống. Tuy vậy thì việc sử dụng kiểm thử bằng hộp den ta không thé thay thế được cho kiểm thử bằng hộp trắng, nó chỉ là phương pháp đề hỗ trợ để phát hiện những loại lỗi khác nữa mà thôi. Kiểm tra bằng hộp đen có thé tìm ra loại lỗi như: - Dữ liệu bên ngoài hoặc lỗi cấu trúc dữ liệu.
- Chức năng bị thiếu hoặc không hợp lệ. - Lỗi hiển thị giao diện. - Lỗi start hoặc end chương trình. - Lỗi thi hành của chương trình.
Output Black Box I—> Hình 2. Kiểm thử bằng hộp đen. Mô hình kiểm tra ứng dụng Web 2.1 Khái niệm về ứng dụng web Công nghệ phần mềm hiện nay, ứng dụng web là một ứng dụng được truy cập qua mạng, chẳng hạn như là Internet. Thành phan cơ ban ứng dụng Web Việc biết về các thành phần ứng dụng web, phần bên trong và cách mà các thành phần này tương tác qua lại với nhau sẽ cải thiện thử nghiệm của chúng ta tốt hơn.
Hệ thống Máy khách-Máy chủ: Web được chia thành ba lớp: — Phan dịch vụ dành cho người dùng — Xử lý phần dịch vụ — Dữ liệu thành phan dịch vụ.4 Kiểm thử bên trong ứng dụng Web Như đã tìm hiểu bên trên, thì ta đã có thé hiéu ứng dung web là gì, các thành phần bên trong. Bây giờ, khi nói đến kiểm thử của ứng dụng web thì ta cần xem xét những điều gì? — Kiểm thử phần giao diện dành cho người dùng. — Kiểm thử phần chức năng web. — Kiểm tra phía máy chủ.
— Kiểm tra phan cơ sở dữ liệu. — Kiểm tra khả năng bảo mật — Kiểm tra hiệu năng 2.3 Các công cụ hỗ trợ kiểm thử 2.1 Webdriver io là gì ? Webdriver io là công cụ hỗ trợ kiểm tra nguồn mở dành cho NodeJS. + Nó cho phép bạn viết các bài thử nghiệm bằng cách sử dụng Javascripts trong khung TDD hoặc BDD « — Về cơ bản, nó sẽ gửi các yêu cầu đến máy chủ. Selenium triển khai giao thức WebDriver và xử lý các phản hồi của nó.
« _ Những truy van này được gói gọn trong các lệnh hữu ích và có thể được dùng dé thực hiện tự động kiểm tra các thành phần nhất định bên trên trang web đó. * — Webdriver io là triển khai tùy chỉnh của API webdriver W3C của Selenium. Nó được viết bằng Javascript và được đóng gói dang "npm" và chạy trên Node js.1 Logo của webdriver IO 2.2 Lợi ích khi sử dụng webdriver io — Thân thiện với phần Front-end — Khai thác các điểm mạnh của Selenium — Dễ sử dụng 2.3 Các loại trình duyệt khác nhau đều được hỗ trợ bởi Webdriver io — Edge — Chrome — Firefox — Safari — PhantomJs 2.4 Các Framework testing khác nhau được Webdriver io hỗ trợ là gì? — Jasmine — Mocha — Cucumber 2.1 Khai niém Allure Report là một công cụ báo cáo thử nghiệm hỗ trợ nhiều ngôn ngữ lập trình. Nó không chỉ cung cấp cho người sử dụng một góc nhìn tông quan ngắn gọn về các bài kiểm thử đã được thử nghiệm mà nó còn cho bạn những thông tin có ích về việc thực thi, chang hạn như: xu hướng của kết quả kiểm thử, thành công và thất bại của các trường hợp đã được kiểm thử, v.
Các báo cáo này được hiển thị ở định dạng hút mắt và dé nhìn với người sử dụng. Allure ALLURE REPORT 6/17/2021 TREND bee 209 CATEGORIES EXECUTORS ENVIRONMENT FEATURES BY STORIES Hinh 2.2 Vi du vé allure report 2.2 Các tinh năng nỗi trội e Hỗ trợ đa ngôn ngữ Java, Python, JavaScript, Ruby, Groovy, PHP, .NET ° Tích hợp trên nhiều hệ thống CUCD Jenkins, TeamCity, Bamboo, Codefresh, Gradle, Maven e _ Hỗ trợ nhiều loại biểu mẫu báo cáo Allure Report hỗ trợ nhiều loại biểu mẫu báo cáo khác nhau: dạng thống kê, dạng đồ thị, dạng chỉ tiết theo suites hay từng test case, v. PHAN TÍCH THIET KE HE THONG 3.1 Giới thiệu chung hệ thống Mục đích chính luận văn là xây dựng framework có thể hỗ trợ thực hiện việc kiểm thử web tự động có khả năng lấy về những thông tin về trang web về báo cáo cũng như thực hiện quét các lỗ hồng bảo mật của trang web Framework thiết kế chủ yếu dựa vào webdriver io để tạo ra khả năng kiêm thử web nhanh và chính xác ngoài ra nó còn đồng thời cũng có thể kết hợp báo cáo (Allure report) để có một góc nhìn trực quan về phần kết quả đã thử nghiệm. Hệ thống có các thành phần như: Metadata Collector, Vulnerability Checker, Report maker, Manual test Auto test và Einal report.
Meta Data Vulnerability Collector Checker Manùal-Test Automation test Hình 3.1 Mô hình co bản của hệ thống 10 Các thành phần chủ yếu của hệ thống và chức năng của chúng mà em nghiên cứu đưa ra: URL: dữ liệu đầu vào của model kiểm thử. Tat cả URL đều có thé thực hiện test black box và một phan white box còn phan còn lại phải được khởi tạo riêng cho từng trang web. Metadata Collector đây là module thu thập các thông tin có liên quan về mã nguồn của trang web như là người sở hữu, địa chi ip, vi trí máy chủ,. Vulnerability Checker thực hiện kiểm tra lỗ héng bao mật của trang web.
Các lỗ héng kiểm tra là những lỗ hồng phổ biến của OWASP. Report maker ghi nhận lại những lỗ hồng đã được quét những lỗ hồng nào mà trang web gặp phải ,. Automation test kiểm thử tự động chức năng, giao diện các tính năng trang web dang cung cấp dành cho người sử dụng. Report: o HTML: báo cáo lại toàn bộ kết quả trả về sau khi thực hiện kiểm thử hộp đen, nếu pass sẽ lay, truy xuất những thông tin lấy được mà nó có liên quan về cho report về trang web (URL) được đưa vào.
o _ Allure Report: báo cáo chỉ tiết về toàn bộ những gì đã kiểm tra cũng như đánh giá phần công tông quan pass false của từng test case, false thì có hình anh false ở bước nào cũng như có lỗi nào dién ra trong quá trình test. o Report Maker: báo cáo chỉ tiết về việc thực hiện quét các lỗ hồng của trang web bao gồm toàn bộ các case đã thực hiện.2 Phân tích thiết kế module Metadata Collecter Hình 3.2 Sơ đồ cơ bản của metadata collecter 3.1 Các thành phần chính của metadata collecter Internet: mạng internet là cần thiết cho quá trình kiểm thử web tự động vì các trang web cần load đữ liệu thông qua internet. Ở đây tôi thực hiện kiểm thử có một số nguồn trang web có server nước ngoài nên cần nguồn internet ồn định đề có thé có được giá trị chính xác cũng như nhanh nhất. URL: địa chỉ nguồn dẫn của trang web mà chúng ta cần kiểm thử cũng như lấy thông tin.
Node JS: ở đây phần mềm được thiết kế chính dựa trên ngôn ngữ javascript nên chúng ta cần môi trường của Node JS đề có thể thực hiện việc chạy chương trình. 12 Webdriveio: tôi dùng webdriver io để thực hiện kiểm thử của mình vì nó có một tốc độ phản hồi (load, test, get data, .) và tính ôn định gần như là nhanh nhất trong các loại frame work hỗ trợ việc kiểm thử tự động thường được sử dụng. Web get data: là những trang web dùng dé cung cấp về những thông tin, dữ liệu chi tiết về trang web đang được thử nghiệm. Vì một trang web không thé có đầy đủ toàn bộ thông tin mà chúng ta cần nên tôi sử dụng một số trang web từ các nguồn khác nhau để có thể có được càng nhiều dữ liệu càng tốt.
Data Output: Dữ liệu trả về sau khi kiểm tra có thể là mã hoặc địa chỉ IP hoặc chuỗi, v.2 Cơ chế hoạt động của metadata collecter Đầu tiên cần thiết lập môi trường cần thiết cho quá trình kiểm thử ( node js, webdriver io, internet ). Hiện tại hệ thống chỉ hỗ trợ chạy trên trình duyệt chrome. Url sẽ là đầu vào chính của kiểm thử hộp den, sau khi đưa url vào chương trình chạy trên node js thi url sẽ được load lên internet thông qua webdriver io.