Báo cáo Đồ án: Automation Testing website bán rau củ bằng Selenium/TestComplete

Automation testing website bán rau củ quả bằng Selenium TestComplete. Tìm hiểu đề tài, quy trình và lợi ích của tự động hóa kiểm thử website bán hàng nông sản.

Chuyên ngành

Bảo Đảm Chất Lượng Phần Mềm

Người đăng

Ẩn danh

Thể loại

Đồ án môn học

2024

43
9
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn automation testing website bán rau củ toàn diện

Trong bối cảnh công nghệ 4.0, kiểm thử tự động (automation testing) đóng vai trò then chốt trong việc đảm bảo chất lượng phần mềm, đặc biệt với các hệ thống bán rau củ online. Đề tài nghiên cứu ứng dụng SeleniumSmartBear TestComplete vào test tự động website bán hàng là một minh chứng rõ ràng cho xu hướng này. Mục tiêu chính là xây dựng một framework kiểm thử tự động mạnh mẽ, có khả năng thực thi các kịch bản kiểm thử lặp đi lặp lại một cách chính xác và hiệu quả. Việc này không chỉ giúp phát hiện lỗi sớm mà còn giảm thiểu chi phí nhân lực và thời gian so với kiểm thử thủ công. Bài viết này sẽ phân tích sâu về quy trình, từ việc xác định mục tiêu, lựa chọn công cụ, thiết kế test case tự động, đến việc thực thi và tạo báo cáo kiểm thử. Một hệ thống kiểm thử website thương mại điện tử hiệu quả cần đảm bảo các chức năng cốt lõi như quản lý sản phẩm, giỏ hàng, và thanh toán hoạt động trơn tru. Theo tài liệu nghiên cứu gốc, dự án tập trung vào việc xác nhận các yêu cầu chức năng và phi chức năng, đảm bảo sản phẩm cuối cùng đáp ứng đúng thông số kỹ thuật và mang lại trải nghiệm tốt nhất cho người dùng. Việc áp dụng các công cụ hàng đầu như Selenium WebDriver và TestComplete cho phép tự động hóa trên nhiều trình duyệt và nền tảng khác nhau, một yêu cầu bắt buộc đối với các ứng dụng web hiện đại.

1.1. Tầm quan trọng của kiểm thử tự động trong ngành TMĐT

Trong lĩnh vực thương mại điện tử (TMĐT), tốc độ và sự ổn định là yếu tố sống còn. Kiểm thử tự động giúp các doanh nghiệp phát hành tính năng mới nhanh hơn mà không làm ảnh hưởng đến chất lượng. Các website như hệ thống bán rau củ online có nhiều chức năng phức tạp, từ tìm kiếm, lọc sản phẩm đến kiểm thử chức năng giỏ hàngkiểm thử quy trình thanh toán. Việc kiểm thử thủ công toàn bộ các luồng này sau mỗi lần cập nhật là không khả thi. Automation testing cho phép thực hiện kiểm thử hồi quy một cách tự động, đảm bảo các chức năng cũ không bị lỗi khi thêm mới. Điều này giúp nâng cao độ tin cậy của hệ thống, giữ chân khách hàng và tăng doanh thu.

1.2. Giới thiệu Selenium WebDriver và SmartBear TestComplete

Selenium WebDriver là một framework mã nguồn mở phổ biến nhất cho việc test tự động website. Nó hỗ trợ nhiều ngôn ngữ lập trình như Java Selenium, Python Selenium và cho phép tương tác với trình duyệt như một người dùng thực thụ. Trong khi đó, SmartBear TestComplete là một công cụ thương mại mạnh mẽ, cung cấp các tính năng ghi và phát lại (record-and-playback), nhận dạng đối tượng thông minh và hỗ trợ kiểm thử trên nhiều nền tảng (web, desktop, mobile). Sự kết hợp giữa hai công cụ này mang lại một giải pháp toàn diện, vừa linh hoạt cho các kỹ sư có kỹ năng lập trình, vừa dễ tiếp cận cho người mới bắt đầu.

1.3. Mục tiêu và chuẩn chất lượng của hệ thống theo ISO 9126

Đề tài nghiên cứu đặt ra mục tiêu rõ ràng: đảm bảo tính đúng đắn của các chức năng, dữ liệu đầu vào và kết quả nhận được. Theo tài liệu, dự án đã áp dụng tiêu chuẩn chất lượng ISO 9126 để đánh giá phần mềm. Tiêu chuẩn này bao gồm sáu đặc tính chính: Tính chức năng (Functionality), Tính tin cậy (Reliability), Tính khả dụng (Usability), Tính hiệu quả (Efficiency), Tính bảo trì (Maintainability) và Tính khả chuyển (Portability). Việc tuân thủ các chuẩn này đảm bảo rằng hệ thống bán rau củ online không chỉ hoạt động đúng mà còn an toàn, dễ sử dụng và ổn định trong các điều kiện cụ thể.

II. Thách thức khi kiểm thử website thương mại điện tử thủ công

Việc kiểm thử website thương mại điện tử theo phương pháp thủ công đối mặt với nhiều thách thức lớn, đặc biệt với các hệ thống phức tạp như trang bán rau củ. Thách thức đầu tiên là sự tốn kém về thời gian và nguồn lực. Mỗi khi có một bản cập nhật nhỏ, đội ngũ kiểm thử viên phải thực hiện lại toàn bộ các kịch bản kiểm thử hồi quy để đảm bảo không có lỗi mới phát sinh. Quá trình này lặp đi lặp lại, nhàm chán và dễ dẫn đến sai sót do yếu tố con người. Thứ hai, việc xác thực dữ liệu trên một quy mô lớn là cực kỳ khó khăn. Một website TMĐT cần xử lý hàng ngàn sản phẩm, đơn hàng và thông tin khách hàng. Việc kiểm tra tính toàn vẹn và chính xác của tất cả dữ liệu này bằng tay là gần như không thể. Hơn nữa, các quy trình nghiệp vụ như kiểm thử quy trình thanh toán liên quan đến nhiều bước và hệ thống bên thứ ba (cổng thanh toán, dịch vụ giao hàng), làm tăng độ phức tạp. Bất kỳ sai sót nào trong luồng thanh toán đều có thể gây thiệt hại tài chính nghiêm trọng. Cuối cùng, việc đảm bảo tính tương thích trên nhiều trình duyệt (Chrome, Firefox, Safari) và thiết bị (desktop, mobile) cũng là một bài toán nan giải đối với kiểm thử thủ công, đòi hỏi phải lặp lại cùng một test case tự động trên nhiều môi trường khác nhau.

2.1. Rủi ro sai sót và tốn kém khi thực hiện kiểm thử hồi quy

Kiểm thử hồi quy là hoạt động cốt lõi để đảm bảo sự ổn định của phần mềm sau mỗi thay đổi. Tuy nhiên, khi thực hiện thủ công, nó trở thành một gánh nặng. Con người không thể duy trì sự tập trung và chính xác tuyệt đối qua hàng trăm lần lặp lại cùng một kịch bản. Điều này dẫn đến nguy cơ bỏ sót lỗi cao. Chi phí nhân sự cho một đội ngũ kiểm thử viên chỉ để thực hiện các tác vụ lặp đi lặp lại là rất lớn. Kiểm thử tự động giải quyết triệt để vấn đề này bằng cách cho phép các test script chạy liên tục mà không cần can thiệp, đảm bảo độ phủ 100% cho các kịch bản hồi quy.

2.2. Khó khăn trong việc kiểm thử đa nền tảng và trình duyệt

Người dùng truy cập hệ thống bán rau củ online từ nhiều thiết bị và trình duyệt khác nhau. Giao diện và chức năng có thể hoạt động tốt trên Chrome nhưng lại bị lỗi trên Safari. Việc kiểm thử thủ công trên mọi tổ hợp có thể (cross-browser testing) là một cơn ác mộng về hậu cần. Các công cụ như Selenium Grid được thiết kế để giải quyết vấn đề này. Nó cho phép thực thi song song các bài test tự động website trên nhiều máy ảo với các môi trường khác nhau, giúp rút ngắn đáng kể thời gian kiểm thử và đảm bảo trải nghiệm người dùng nhất quán.

2.3. Đảm bảo xác thực dữ liệu và luồng thanh toán phức tạp

Tính chính xác của dữ liệu là yếu tố sống còn của một trang TMĐT. Từ giá sản phẩm, số lượng tồn kho đến thông tin đơn hàng, mọi thứ phải được xác thực dữ liệu một cách cẩn thận. Luồng thanh toán, bao gồm việc áp dụng mã giảm giá, tính phí vận chuyển và xử lý giao dịch, là khu vực nhạy cảm nhất. Data-Driven Testing là một kỹ thuật trong kiểm thử tự động, cho phép chạy cùng một test script với nhiều bộ dữ liệu đầu vào khác nhau. Kỹ thuật này rất hữu ích để kiểm tra các trường hợp biên, đảm bảo hệ thống xử lý chính xác mọi tình huống có thể xảy ra trong quy trình thanh toán.

III. Cách xây dựng framework kiểm thử tự động với Selenium

Xây dựng một framework kiểm thử tự động có cấu trúc tốt là nền tảng cho một dự án automation testing thành công. Framework cung cấp bộ quy tắc, thư viện và công cụ để thiết kế và triển khai test case tự động một cách nhất quán và hiệu quả. Đối với đề tài automation testing website bán rau củ, việc lựa chọn Selenium WebDriver làm công cụ chính là một quyết định hợp lý do tính linh hoạt và cộng đồng hỗ trợ lớn mạnh. Bước đầu tiên là thiết lập môi trường, bao gồm cài đặt ngôn ngữ lập trình (như Java hoặc Python), Selenium WebDriver và các trình điều khiển trình duyệt (ChromeDriver, GeckoDriver). Tiếp theo, việc áp dụng một mẫu thiết kế phổ biến như Page Object Model (POM) là cực kỳ quan trọng. POM giúp tách biệt mã lệnh kiểm thử khỏi các đối tượng trên giao diện người dùng, làm cho test script trở nên dễ đọc, dễ bảo trì và tái sử dụng. Thay vì nhúng trực tiếp các bộ định vị như XPath hay CSS Selector vào kịch bản, chúng được định nghĩa trong các lớp đối tượng trang riêng biệt. Điều này giúp giảm thiểu công sức cập nhật khi giao diện web thay đổi. Việc xây dựng các hàm tiện ích chung (utility functions) để xử lý các tác vụ lặp lại như đăng nhập, chờ đợi phần tử xuất hiện, hay chụp ảnh màn hình khi có lỗi cũng là một phần không thể thiếu của một framework hoàn chỉnh.

3.1. Lựa chọn ngôn ngữ lập trình Java Selenium và Python Selenium

Selenium hỗ trợ nhiều ngôn ngữ, nhưng Java SeleniumPython Selenium là hai lựa chọn phổ biến nhất. Java là một ngôn ngữ mạnh mẽ, định kiểu tĩnh và có hiệu năng cao, thường được ưa chuộng trong các doanh nghiệp lớn. Hệ sinh thái của Java với các công cụ xây dựng như Maven/Gradle và framework TestNG/JUnit rất phù hợp để xây dựng các bộ kiểm thử phức tạp. Ngược lại, Python nổi tiếng với cú pháp đơn giản, dễ đọc và viết, giúp giảm thời gian phát triển test script. Thư viện phong phú và cộng đồng năng động cũng là một điểm cộng lớn của Python. Việc lựa chọn ngôn ngữ phụ thuộc vào kỹ năng của đội ngũ và yêu cầu của dự án.

3.2. Áp dụng mô hình Page Object Model POM để tối ưu code

Page Object Model (POM) là một mẫu thiết kế giúp tăng cường khả năng bảo trì và giảm trùng lặp mã trong framework kiểm thử tự động. Theo mô hình này, mỗi trang web trong ứng dụng sẽ tương ứng với một lớp đối tượng (Page Class). Lớp này chứa tất cả các phần tử web (WebElements) của trang đó và các phương thức để tương tác với chúng. Các test script sẽ gọi các phương thức này thay vì tương tác trực tiếp với Selenium WebDriver. Khi giao diện người dùng thay đổi, chỉ cần cập nhật lớp đối tượng trang tương ứng mà không cần sửa đổi hàng loạt các kịch bản kiểm thử, giúp tiết kiệm thời gian và công sức đáng kể.

3.3. Kỹ thuật định vị phần tử XPath và CSS Selector hiệu quả

Để tự động hóa tương tác, Selenium cần xác định vị trí các phần tử trên trang web. XPathCSS Selector là hai chiến lược định vị mạnh mẽ và linh hoạt nhất. CSS Selector thường nhanh hơn và có cú pháp dễ đọc hơn, là lựa chọn ưu tiên khi các phần tử có ID hoặc class rõ ràng. XPath mạnh hơn trong việc điều hướng cấu trúc DOM phức tạp, cho phép tìm kiếm phần tử dựa trên văn bản chứa trong nó hoặc mối quan hệ với các phần tử khác (cha, con, anh em). Việc sử dụng các bộ định vị ổn định, không phụ thuộc vào các thuộc tính dễ thay đổi là chìa khóa để tạo ra các bài test tự động website đáng tin cậy.

IV. Phương pháp thiết kế kịch bản và test case tự động hóa

Sau khi có một framework vững chắc, bước tiếp theo là thiết kế các kịch bản kiểm thửtest case tự động. Đây là quá trình chuyển đổi các yêu cầu nghiệp vụ và các trường hợp sử dụng thành các bước thực thi tự động. Dựa trên tài liệu nghiên cứu, phạm vi kiểm thử (In-Scope) của hệ thống bán rau củ online rất rộng, bao gồm cả tác vụ của khách hàng và quản trị viên. Đối với khách hàng, các kịch bản quan trọng cần tự động hóa bao gồm: đăng ký, đăng nhập, thay đổi thông tin, quản lý giỏ hàng và đặt hàng. Đặc biệt, kiểm thử chức năng giỏ hàngkiểm thử quy trình thanh toán phải được ưu tiên hàng đầu vì chúng ảnh hưởng trực tiếp đến doanh thu. Đối với quản trị viên, các chức năng CRUD (Thêm, Xóa, Sửa) cho sản phẩm, khách hàng, đơn hàng và danh mục cần được kiểm thử kỹ lưỡng. Mỗi kịch bản lớn sẽ được chia thành nhiều test case tự động nhỏ hơn, mỗi test case tập trung vào việc xác minh một yêu cầu cụ thể. Ví dụ, kịch bản đăng ký sẽ có các test case cho trường hợp thành công, trường hợp bỏ trống thông tin, trường hợp nhập sai định dạng email, v.v. Kỹ thuật Data-Driven Testing được áp dụng để tăng độ bao phủ bằng cách sử dụng các bộ dữ liệu khác nhau cho cùng một luồng kiểm thử.

4.1. Xây dựng test script cho các chức năng đăng ký và đăng nhập

Đăng ký và đăng nhập là cửa ngõ của hệ thống. Test script cho các chức năng này cần bao phủ nhiều trường hợp. Với đăng ký, cần kiểm tra các ràng buộc dữ liệu: email phải đúng định dạng, mật khẩu phải đủ mạnh, các trường bắt buộc không được để trống, và email đã tồn tại không thể đăng ký lại. Với đăng nhập, kịch bản cần kiểm tra các trường hợp đăng nhập thành công, sai mật khẩu, sai email, và tài khoản chưa được kích hoạt. Việc tự động hóa các bước này đảm bảo rằng người dùng luôn có thể truy cập vào hệ thống một cách đáng tin cậy.

4.2. Kịch bản kiểm thử chức năng giỏ hàng và quy trình thanh toán

Đây là các chức năng cốt lõi của một website thương mại điện tử. Kịch bản kiểm thử cho giỏ hàng phải bao gồm các hành động: thêm sản phẩm vào giỏ, thay đổi số lượng, xóa sản phẩm, và cập nhật tổng tiền. Kiểm thử quy trình thanh toán phức tạp hơn, đòi hỏi phải xác minh việc áp dụng mã giảm giá, tính toán phí vận chuyển, điền thông tin giao hàng và xác nhận đơn hàng thành công. Các kịch bản cũng cần kiểm tra các thông báo lỗi khi thông tin không hợp lệ. Do tính chất quan trọng, các kịch bản này cần được thực thi thường xuyên trong chu trình kiểm thử hồi quy.

4.3. Ứng dụng Data Driven Testing để xác thực dữ liệu đa dạng

Data-Driven Testing là một phương pháp mà dữ liệu kiểm thử được lưu trữ bên ngoài (ví dụ trong file Excel, CSV, hoặc cơ sở dữ liệu) và được đọc bởi các test script. Điều này cho phép thực thi một test case nhiều lần với các dữ liệu đầu vào khác nhau. Ví dụ, để kiểm tra chức năng tìm kiếm sản phẩm, có thể tạo một file chứa hàng chục từ khóa tìm kiếm khác nhau, bao gồm cả từ khóa hợp lệ, không hợp lệ, và có ký tự đặc biệt. Phương pháp này giúp tăng đáng kể độ bao phủ kiểm thử mà không cần viết thêm nhiều mã lệnh, đồng thời giúp việc quản lý dữ liệu kiểm thử trở nên dễ dàng hơn.

V. Báo cáo kiểm thử và kết quả từ hệ thống bán rau củ online

Thực thi kiểm thử tự động chỉ là một phần của quy trình; phân tích kết quả và tạo báo cáo kiểm thử là bước cuối cùng để đánh giá chất lượng phần mềm. Sau khi các test script được thực thi, framework sẽ tạo ra các báo cáo chi tiết. Báo cáo này cung cấp thông tin quan trọng như: tổng số test case tự động đã chạy, số lượng test case thành công (Pass), thất bại (Fail) và bị bỏ qua (Skip). Đối với mỗi test case thất bại, báo cáo cần ghi lại thông báo lỗi cụ thể, ảnh chụp màn hình tại thời điểm xảy ra lỗi, và các bước để tái tạo lỗi. Thông tin này vô giá đối với các nhà phát triển trong việc xác định và sửa lỗi nhanh chóng. Dựa trên tài liệu nghiên cứu, việc áp dụng automation testing vào hệ thống bán rau củ online đã giúp tự động hóa phần lớn các chức năng cốt lõi. Các báo cáo cho thấy khả năng phát hiện sớm các lỗi hồi quy, đặc biệt trong các module quản lý sản phẩm và đơn hàng. Việc đánh giá chất lượng phần mềm dựa trên các tiêu chuẩn như ISO 9126 cũng trở nên khách quan hơn nhờ vào các số liệu cụ thể từ báo cáo. Báo cáo không chỉ là một công cụ ghi lại lỗi mà còn là một thước đo tiến độ, giúp các bên liên quan (quản lý dự án, khách hàng) nắm được tình trạng chất lượng của sản phẩm.

5.1. Phân tích kết quả thực thi và phát hiện lỗi tự động hóa

Kết quả từ việc chạy tự động cung cấp một cái nhìn tổng quan về sức khỏe của ứng dụng. Việc phân tích các test case thất bại là ưu tiên hàng đầu. Kỹ sư kiểm thử cần xác định nguyên nhân: lỗi này là do sai sót trong ứng dụng (bug), do thay đổi giao diện làm hỏng script, hay do vấn đề môi trường. Quá trình này giúp lọc ra các lỗi thực sự và báo cáo chúng một cách hiệu quả. Việc tự động hóa giúp phát hiện các lỗi mà con người có thể bỏ qua, chẳng hạn như lỗi tính toán nhỏ trong tổng tiền hoặc một liên kết bị hỏng ở một trang ít truy cập.

5.2. Đánh giá chất lượng phần mềm theo tiêu chuẩn ISO 9126

Các số liệu từ báo cáo kiểm thử có thể được ánh xạ vào các đặc tính của tiêu chuẩn ISO 9126. Ví dụ, tỷ lệ Pass/Fail cao của các test case chức năng phản ánh "Tính chức năng" của phần mềm. Thời gian thực thi trung bình của các kịch bản có thể được dùng để đánh giá "Tính hiệu quả". Số lượng lỗi hồi quy giảm dần theo thời gian cho thấy sự cải thiện về "Tính tin cậy". Việc sử dụng một tiêu chuẩn quốc tế giúp việc đánh giá chất lượng trở nên có hệ thống, khách quan và dễ dàng so sánh giữa các phiên bản sản phẩm khác nhau.

5.3. Vai trò của báo cáo kiểm thử trong việc cải tiến sản phẩm

Một báo cáo kiểm thử tốt không chỉ liệt kê lỗi mà còn cung cấp dữ liệu để cải tiến quy trình. Bằng cách phân tích các khu vực có nhiều lỗi nhất, đội ngũ phát triển có thể tập trung vào việc tái cấu trúc (refactor) hoặc viết thêm unit test cho các module đó. Dữ liệu về thời gian thực thi giúp xác định các bài test chạy chậm cần được tối ưu hóa. Báo cáo cũng là một công cụ giao tiếp hiệu quả, giúp toàn bộ đội ngũ dự án có một cái nhìn chung về chất lượng sản phẩm và đưa ra quyết định phát hành một cách tự tin.

VI. Tương lai của test tự động website Tích hợp CI CD và hơn thế

Đóng góp của automation testing vào việc đảm bảo chất lượng phần mềm là không thể phủ nhận. Tuy nhiên, tiềm năng của nó chỉ được phát huy tối đa khi được tích hợp vào một quy trình phát triển hiện đại. Hướng phát triển trong tương lai cho các dự án test tự động website như hệ thống bán rau củ onlinetích hợp CI/CD (Continuous Integration/Continuous Delivery - Tích hợp liên tục/Chuyển giao liên tục). CI/CD là một phương pháp mà ở đó các bài kiểm thử tự động được kích hoạt để chạy mỗi khi có một thay đổi mới trong mã nguồn. Điều này tạo ra một vòng lặp phản hồi cực nhanh, giúp nhà phát triển biết được thay đổi của họ có gây ra lỗi hay không chỉ trong vài phút. Việc này giúp ngăn chặn lỗi tích tụ và đảm bảo rằng phiên bản trên nhánh chính luôn ở trạng thái ổn định và sẵn sàng để phát hành. Theo đề tài nghiên cứu, hướng phát triển tiếp theo bao gồm việc tối ưu hóa các test script để dễ bảo trì hơn và mở rộng phạm vi kiểm thử để bao phủ toàn bộ các chức năng, kể cả các kịch bản bảo mật. Nhìn xa hơn, việc ứng dụng trí tuệ nhân tạo (AI) và học máy (Machine Learning) vào kiểm thử đang mở ra những khả năng mới, như tự động tạo test case tự động hoặc tự sửa lỗi trong test script khi giao diện thay đổi.

6.1. Hướng phát triển Tối ưu test script và mở rộng phạm vi

Như đã nêu trong tài liệu gốc, một trong những hướng phát triển quan trọng là tối ưu hóa các đoạn mã kiểm thử. Điều này bao gồm việc tái cấu trúc code để giảm sự trùng lặp, sử dụng các cơ chế chờ đợi thông minh (explicit waits) thay vì chờ đợi cứng (hardcoded waits) để tăng tốc độ và độ ổn định của script. Bên cạnh đó, việc mở rộng phạm vi kiểm thử là cần thiết. Ngoài kiểm thử chức năng, cần bổ sung các kịch bản kiểm thử hiệu năng (performance testing) để đảm bảo website chịu tải tốt, và kiểm thử bảo mật (security testing) để phát hiện các lỗ hổng tiềm ẩn.

6.2. Lợi ích của việc tích hợp CI CD vào quy trình kiểm thử

Việc tích hợp CI/CD biến kiểm thử tự động từ một hoạt động riêng lẻ thành một phần không thể thiếu của vòng đời phát triển. Các lợi ích chính bao gồm: phát hiện lỗi sớm hơn, giảm rủi ro khi tích hợp mã nguồn, tăng tốc độ phát hành sản phẩm và tăng cường sự tự tin của đội ngũ. Khi các bài kiểm thử được chạy tự động trong pipeline CI/CD, chất lượng được đảm bảo một cách liên tục thay vì chỉ được kiểm tra ở cuối giai đoạn, giúp tạo ra một sản phẩm tốt hơn với chi phí thấp hơn.

6.3. Đóng góp của automation testing vào bảo đảm chất lượng phần mềm

Tựu trung lại, automation testing đóng vai trò là một trụ cột trong lĩnh vực Bảo đảm chất lượng phần mềm (Software Quality Assurance). Nó không thay thế hoàn toàn kiểm thử thủ công (vốn vẫn cần thiết cho kiểm thử khám phá và kiểm tra tính khả dụng), nhưng nó giải phóng con người khỏi các công việc lặp đi lặp lại và nhàm chán. Điều này cho phép các kỹ sư kiểm thử tập trung vào các tác vụ đòi hỏi tư duy phản biện và sáng tạo hơn. Cuối cùng, một chiến lược kiểm thử tự động được triển khai tốt sẽ giúp tạo ra các sản phẩm phần mềm chất lượng cao hơn, ổn định hơn và được đưa ra thị trường nhanh hơn.

11/09/2025

Trích đoạn nội dung tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGOẠI NGỮ – TIN HỌC THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC BẢO ĐẢM CHẤT LƯỢNG PHẦN MỀM ĐỀ TÀI: AUTOMATION TESTING WEBSITE BÁN RAU CỦ BẰNG SELENIUM/TESTCOMPLTE Giảng viên hướng dẫn : ThS.Đỗ Đức Bích Ngân Sinh viên thực hiện : 1. Huỳnh Triệu Quyễn Lam – 21DH110949 3. Nguyễn Thành Nhân – 21DH113932 4. Tô Thị Anh Thư – 21DH111881 5.

Văn Viết Tín – 21DH114207 TP. Hồ Chí Minh, ngày … tháng … năm 2024 Nhận xét của giảng viên hướng dẫn. LỜI CẢM ƠN Chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến tất cả thầy cô trường đại Đại Học Ngoại Ngữ - Tin Học TP. Hồ Chí Minh nói chung và các thầy cô trong khoa Công Nghệ Thông Tin nói riêng đã tận tình giảng dạy, truyền đạt những kiến thức và kinh nghiêm quý báu cho chúng em trong suốt quá trình học tập tại trường.

Trong suốt thời gian chúng em làm bài báo cáo môn Bảo đảm chất lượng phần mềm, chúng em xin gửi lời cảm ơn chân thành và sâu sắc đến cô Đỗ Đức Bích Ngân, cô đã hết lòng giúp đỡ và theo sát chúng em trong suốt quá trình thực hiện môn học này, chỉ ra cho hướng đi để chúng em có thể hoàn thành tốt nhất bài báo cáo này đúng thời hạn quy định. Trong quá trình thực hiện đề tài, dù chúng em đã cố gắng hoàn thiện đề tài một cách tốt nhất nhưng do thời gian và kiến thức còn hạn chế nên sẽ không tránh khỏi những thiếu sót nhất định, chúng em rất mong nhận được sự cảm thông, chia sẽ đến từ những đóng góp ý kiến chân thành từ quý thầy cô khoa Công Nghệ Thông Tin. Sau cùng chúng em xin gửi lời cảm ơn đến tất cả các bạn đã tham gia đóng góp ý kiến và giúp đỡ em trong suốt quá trình thực hiện báo cáo môn học. Em xin chân thành cảm ơn cô và tất cả mọi người.

Báo cáo đồ án “Bảo đảm chất lượng phần mềm” MỤC LỤC Trang 4 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” DANH MỤC HÌNH ẢNH Trang 5 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” DANH MỤC BẢNG BIỂU Trang 6 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” DANH MỤC TỪ VIẾT TẮT Trang 7 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” BẢNG PHÂN CÔNG CÔNG VIỆC STT Họ và tên Công việc Độ hoàn thành 1 Võ Văn Duy Viết tc + script (8 cái) 100% Huỳnh Triệu 100% 2 Viết tc + script (15 cái) Quyễn Lam Nguyễn Thành 100% 3 Viết tc + script (18 cái) Nhân 4 Tô Thị Anh Thư 5 Văn Viết Tín Viết tc + script (18 cái) 100% Trang 8 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” I. GIỚI THIỆU CHUNG Công nghệ 4.0 tập trung vào các từ khóa chính như: tính kết nối, khả năng tự động hóa (Automation), trí tuệ nhân tạo (AI), học máy (Machine Learning), Internet vạn vật (IOT), dữ liệu lớn (Big Data), thu thập dữ liệu theo thời gian thực real-time,. nhằm tạo ra một hệ sinh thái kết nối toàn diện giúp các doanh nghiệp quản lý quy trình làm việc, quy trình sản xuất và quản lý chuỗi cung ứng tốt hơn. Lúc này chúng ta cần có những công cụ là phần mềm đáp ứng dược những nhu cầu đó.

Và những phần mềm đó phải được đảm bảo là thực hiện đúng công việc, chức năng mà nguời dùng cần, hay việc được thiết kế và xây dụng có hoạt động đúng theo thông số kỹ thuật hay không? Để đảm bảo cho những điều đó thì chúng ta cần phải kiểm tra hay còn được gọi là kiểm thử phần mềm. Kiểm thử phần mềm là một hoạt động rất tốn kém, mất thời gian, và khó phát hiện được hết lỗi, cho nên nó đòi hỏi phải có chiến luợc phù hợp, một kế hoạch hợp lý và việc thực hiện được quản lý chặt chẽ. Hiện nay, một sản phẩm hoạt động trên nhiều nền tảng khác nhau phải tương thích với các sản phẩm khác là một yêu cầu bắt buộc và vì thế nên đã đặt ra nhiều thách thức cho các nhà sản xuất, phát triển phần mềm. Vì vậy vai trò của kiểm thử là thực sự vô cùng cần thiết giúp xác nhận yêu cầu, giúp đánh giá sản phẩm, tìm lỗi, sửa lỗi,.

Trang 9 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” II. Kiểm thử phần mềm với kiểm thử tự động 1. Kiểm thử phần mềm Kiểm thử phần mềm là quá trình kiểm tra, phát hiện và loại trừ các lỗi trong phần mềm trước khi ra mắt sản phaamr đến tay người dùng. Dưới đây là một tóm tắt về kiểm thử:  Mục tiêu chính: ₋ Mục đích của kiểm thử là đảm bảo phần mềm hoạt động đúng theo yêu cầu đề ra và loại trừ các lỗi phần mềm để nâng cao chất lượng sản phẩm.

₋ Thõa mãn người dùng và những bên liên quan đảm bảo phần cuộc sống của họ.  Loại kiểm thử: ₋ Kiểm thử chức năng: Tập trung vào kiểm tra tính năng và chức năng của sản phẩm. ₋ Kiểm thử phi chức năng: Kiểm tra các khía cạnh không liên quan đến tính năng, như hiệu suất, bảo mật và sự ổn định của hệ thống. ₋ Kiểm thử tự động: Sử dụng các công cụ và kịch bản kiểm thử để tự động hóa quá trình kiểm thử.

₋ Kiểm thử thủ công: Thực hiện kiểm thử bằng tay bằng cách thử nghiệm từng tính năng một.  Kiểm thử liên tục: ₋ Quá trình kiểm thử không nên chỉ diễn ra ở giai đoạn cuối của dự án. ₋ Kiểm thử nên được tích hợp và thực hiện liên tục trong quá trình phát triển để phát hiện và sửa lỗi sớm.  Tư duy kiểm thử: ₋ Kiểm thử đòi hỏi một tư duy chặt chẽ, sẵn sàng tìm kiếm lỗi và kiên nhẫn trong việc xác minh tính đúng đắn của sản phẩm.

 Quản lý lỗi: Trang 10 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” ₋ Các lỗi phát hiện được trong quá trình kiểm thử cần được ghi lại, theo dõi, và quản lý để đảm bảo rằng chúng được sửa và kiểm tra lại.  Các kỹ thuật phổ biến: ₋ Kiểm thử hộp trắng dựa trên mã nguồn; kiểm thử hộp đen dựa trên yêu cầu; kiểm thử chức năng, tải, hiệu năng, tích hợp.  Kết quả kiểm thử sẽ giúp đánh giá chất lượng phần mềm, phát hiện và khắc phục kịp thời các lỗi trước khi bàn giao sản phẩm. ₋ Kiểm thử là một phần quan trọng của quá trình phát triển và bảo trì phần mềm, đảm bảo rằng sản phẩm đáp ứng yêu cầu và đáng tin cậy trong hoạt động.

Kiểm thử tự động Kiểm thử tự động: Là xử lý một cách tự động các bước thực hiện các testcase, kiểm thử tự động bằng một công cụ nhằm rút ngắn thời gian kiểm thử. Kiểm thử tự động: là một kỹ thuật tự động trong đó người kiểm thử tự viết các tập lệnh và sử dụng phần mềm phù hợp để kiểm thử phần mềm. Nó về cơ bản là một quá trình tự động hóa của một quy trình kiểm thử thủ công. Giống như kiểm thử hồi quy, kiểm thử tự động cũng được sử dụng để kiểm thử ứng dụng theo quan điểm tải, hiệu năng và ứng suất.

Kiểm thử tự động giúp giảm chi phí kiểm thử bằng cách hỗ trợ quá trình kiểm thử thông qua các công cụ phần mềm. Kiểm thử tự động hay sử dụng phần mềm để kiểm thử với các ưu điểm:  Có thể thực hiện các kiểm thử một cách liên tục, lặp lại và giảm chi phí cho nhân lực kiểm thử.  Luôn đảm bảo hoạt động theo một kịch bản duy nhất – không bị ảnh hưởng như với kiểm thử viên. Giới thiệu framework auto  Selenium là bộ kiểm thử tự động miễn phí (mã nguồn mở) dành cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau.

Nó khá là giống với HP Quick Test Pro (QTP bây giờ là UFT) chỉ khác là Selenium thì tập trung vào việc tự động hoá các ứng dụng dựa trên nền tảng web. Kiểm thử được thực hiện Trang 11 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” bằng cách sử dụng công cụ Selenium thường được gọi là Kiểm thử Selenium. Selenium không chỉ là 1 công cụ độc lập mà là 1 bộ công cụ của phần mềm, mỗi bộ đều đáp ứng được nhu cầu kiểm thử khác nhau của 1 tổ chức.  • Selenium Integrated Development Environment (IDE)  • Selenium Remote Control (RC)  • WebDriver  • Selenium Grid  Hiện tại, Selenium RC và WebDriver được hợp nhất thành một framework duy nhất để tạo ra Selenium 2.

Còn Selenium 1 thì tham chiếu đến Selenium RC. Trang 12 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” III.KIỂM THỬ AUTOMATION HỆ THỐNG BÁN RAU CỦ 1. Đặc tả chức năng hệ thống (System Functions)  Khách hàng: ₋ Đăng ký tài khoản. ₋ Thay đổi thông tin cá nhân ₋ Thay đổi mật khẩu.

₋ Chọn danh mục sản phẩm và lọc sản phẩm ₋ Xem sảm phẩm ₋ Thêm vào giỏ hàng. ₋ Xem lịch sử đơn hàng. ₋ Xem tin tức. ₋ Xem trang thông tin.

₋ Xem trang thông tin khách hàng. ₋ Xem thông tin liên hệ.  Admin ₋ Thêm, xóa, sửa tài khoản quản trị. ₋ Thêm, xóa, sửa, tìm kiếm, lọc sản phẩm.

₋ Thêm, xóa, sửa, khách hàng. ₋ Thêm, xóa, sửa đơn hàng. ₋ Thêm, xóa, sửa danh mục sản phẩm. ₋ Thêm, xóa, sửa, phân quyền truy cập.

Trang 13 Báo cáo đồ án “Bảo đảm chất lượng phần mềm” ₋ Thêm, xóa, sửa trang thông tin. ₋ Thêm, xóa, sửa tin tức. ₋ Thêm, xóa, sửa tài khoản. ₋ Thêm, xóa, sửa danh mục.

Xác định mục tiêu, các chuẩn chất lượng cần đạt của hệ thống (ISO 9126) 2. Mục tiêu ₋ Dễ theo dõi đơn hàng, dễ tìm kiếm ₋ Đối với người QL: đối với lưu trữ lâu dài thì sao, còn trái cây tươi thì bán nhanh, quy tình bán hàng đơn giản hiệu quả nhanh chóng ₋ Xác định thông tin cơ bản về dự án và các thành phần chức năng được kiểm thử và không được kiểm thử. ₋ Liệt kê những yêu cầu cho việc kiểm thử (Test Requirements). ₋ Những chiến lược kiểm thử nên được sử dụng.

₋ Ước lượng những yêu cầu về tài nguyên và chi phí cho việc kiểm thử. ₋ Những tài liệu được lập sau khi hoàn thành việc kiểm thử. ₋ Đảm bảo mục tiêu test đúng đắn của chức năng, bao gồm định hướng, dữ liệu đầu vào và dữ liệu nhận được. ₋ Kiểm tra tính đúng đắn của các dữ liệu, quy trình và báo cáo cũng như việc thực hiện đúng những quy tắc nghiệp vụ.

Các chuẩn cần đạt của hệ thống: iso 9126 có 6 chuẩn.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ