Chương 1: TỔNG QUAN VỀ ĐỀ TÀI1.1 Giới thiệu về Selenium 1.1.1 Khái niệm Selenium là một mã nguồn mở và là một công cụ kiểm thử phần mềm tự động hóa để thửnghiệm các ứng dụng web.. Seleni
TỔNG QUAN VỀ ĐỀ TÀI
Giới thiệu về Selenium
Selenium là một công cụ mã nguồn mở dùng để tự động hóa kiểm thử phần mềm cho các ứng dụng web, với khả năng hoạt động trên nhiều trình duyệt và hệ điều hành khác nhau Đây không chỉ là một công cụ đơn lẻ mà là một bộ công cụ giúp tối ưu hóa quá trình kiểm thử tự động cho các ứng dụng dựa trên web Bài viết này sẽ khám phá từng công cụ trong bộ công cụ Selenium và hướng dẫn cách sử dụng chúng hiệu quả.
Selenium IDE được phát triển dưới dạng một ứng dụng mở rộng (add-on) cho
Mozilla Firefox phiên bản 2.0 trở lên Công cụ cung cấp chức năng Record and Playback.
Selenium Remote Control (RC) cho phép nhận các Test script được thu bởi
Selenium IDE cho phép người dùng chỉnh sửa linh hoạt bằng nhiều ngôn ngữ lập trình khác nhau Sau đó, nó khởi động một trong các trình duyệt web đã chỉ định để thực hiện kiểm tra trực tiếp Bên cạnh đó, Selenium RC cũng cung cấp khả năng lưu trữ kết quả kiểm tra một cách hiệu quả.
Selenium Grid Thực hiện phương pháp kiểm tra phân bổ, phối hợp nhiều kết quả
Selenium RC để có thể thực thi trên nhiều trình duyệt web khác nhau trong cùng một lúc Selenium Grid cũng cho phép lưu lại kết quả kiểm tra.
Selenium Core, được tích hợp trong Selenium IDE, là công cụ giúp chạy các test script bằng Selenese Selenium cung cấp nhiều phương thức sử dụng khác nhau, bao gồm chế độ Test Runner (Bot mode) với Selenium Core, cho phép thực hiện các test case và test suite dưới dạng hàng trong file HTML Ngoài ra, Selenium RC hoạt động theo chế độ driven, cho phép viết test case bằng các ngôn ngữ như Java, C#, Python, Perl, và Ruby Cuối cùng, chế độ Record sử dụng Selenium IDE để ghi lại các thao tác và giao diện trên web.
Giới thiệu về Selenium IDE
Selenium IDE là công cụ giúp bạn phát triển ca kiểm thử dược xây dựng dưới dạng
Add-ons của trình duyệt web là công cụ tiện lợi để xây dựng các ca kiểm thử, giúp tiết kiệm thời gian và hiểu rõ hơn về kịch bản Selenium Bộ công cụ này cung cấp chức năng "thu và chạy lại" (Record and Playback), cho phép Tester nhanh chóng tạo kịch bản kiểm tra bằng cách ghi lại các thao tác trên đối tượng cần kiểm tra thành các câu lệnh "Selenese" Sau đó, các câu lệnh này có thể được chạy lại để thực hiện kiểm tra Chức năng này không chỉ hữu ích mà còn cho phép lưu kịch bản dưới nhiều loại ngôn ngữ lập trình khác nhau.
Truy cập địa chỉ: http://www.seleniumhq.org/download bằng trình duyệt web
Tìm đến mục Selenium IDE và click vào version mới nhất để tải
Tiến hành cài đặt, khởi động lại trình duyệt (Lúc này ở phần Tools của FireFox có hiện thêm Selenium IDE)
Trên thanh công cụ của Selenium IDE, có các tab như File, Edit, Action, Options và Help, mỗi tab cung cấp nhiều lựa chọn khác nhau giúp người dùng thao tác dễ dàng Người dùng có thể tạo nhiều test cases để chạy nối tiếp nhau, chạy tất cả test cases theo thứ tự, hoặc chỉ chạy test case đang được chọn Tab cũng cho phép chuyển đổi giữa giao diện tương tác mặc định và giao diện code, đồng thời hỗ trợ ghi lại các thao tác trên tab hiện tại để chuyển thành lệnh của Selenium Ngoài ra, người dùng có thể chỉnh sửa giá trị của các lệnh Khi gặp lỗi trong quá trình chạy nhiều test cases, Selenium sẽ bỏ qua test case lỗi và tiếp tục với các test cases còn lại, đồng thời ghi nhận thông tin lỗi và đánh dấu bằng màu đỏ.
Bên cạnh đó, trên Toolbar của Selenium có hỗ trợ bạn xuất file test cases ra các ngôn ngữ khác như Java, Python…
ÁP DỤNG TK TESTCASE BLACK BOX VÀ TK TESTCASE WHITE BOX
Khái niệm của Black Box Test và White Box Test
2.1.1 White Box Test Định nghĩa
Kiểm thử hộp trắng là một phương pháp thử nghiệm phần mềm, trong đó người kiểm thử có kiến thức về thiết kế, cấu trúc thuật toán và cách thức thực hiện của hệ thống Phương pháp này giúp đảm bảo tính chính xác và hiệu quả của phần mềm bằng cách kiểm tra các yếu tố nội bộ.
Hình 2.2 White Box Test Đối tượng kiểm thử
Là 1 thành phần của phần mềm (1 chức năng, 1 module chức năng, 1 phân hệ chức năng )
Kiểm thử hộp trắng sử dụng thuật giải cụ thể để phân tích cấu trúc dữ liệu bên trong của đơn vị phần mềm Mục tiêu là xác định xem đơn vị phần mềm đó có thực hiện đúng chức năng hay không.
Kiểm thử các TPPM lớn sẽ tiêu tốn nhiều thời gian và công sức nếu áp dụng kiểm thử tích hợp hoặc kiểm thử chức năng.
Kỹ thuật white box test thích hợp dùng để kiểm thử đơn vị (Unit test). Đặc điểm
Là chiến lược kiểm thử TPPM dựa vào giải thuật, cấu trúc bên trong chức năng của TPPM tương ứng.
Người kiểm thử phải có kiến thức nhất định về việc mã hoá, cấu trúc bên trong của chức năng, biết lâp trình phần mềm.
Việc kiểm thử được tiến hành dựa vào việc kiểm xem giải thuật, mã lệnh đã làm có đúng không.
Mức test này yêu cầu các tester viết test case bao quát tất cả các nhánh trong mã nguồn Trong quá trình kiểm thử, cần thiết lập điều kiện và dữ liệu để kiểm tra toàn bộ các nhánh trong thuật toán, nhằm đảm bảo rằng tất cả các tình huống đã được thực hiện đầy đủ.
Tạo testcase và thực hiện test
Khi viết test case: Dựa vào yêu cầu và nội dung Source Code (can thiệp vào bên trong Code của chương trình).
Khi thực hiện kiểm thử, bạn có thể thực thi các bài kiểm tra trực tiếp trong mã nguồn mà không cần chạy toàn bộ chương trình Việc kiểm thử kiểu white box thường sử dụng các framework hỗ trợ, chẳng hạn như chế độ debug.
Trong quá trình kiểm tra, người tester cần phải sở hữu kiến thức và kỹ năng vững vàng về ngôn ngữ lập trình được sử dụng, cũng như hiểu rõ thuật giải trong các thành phần phần mềm Điều này giúp họ nắm bắt chi tiết và chính xác đoạn code cần được kiểm thử.
2.1.2 Black Box Test Định nghĩa
Kiểm tra hộp đen (Black box testing) là một phương pháp kiểm thử phần mềm, tập trung vào việc kiểm tra các chức năng của ứng dụng mà không cần xem xét cấu trúc nội bộ hoặc cách thức hoạt động của nó.
Hình 2.3 Black Box Test Đối tượng kiểm thử
Là thành phần phần mền (TPPM) có thể là 1 hàm chức năng, 1 modul chức năng, 1 phân hệ chức năng
Dựa vào chức năng Kiểm thử hộp đen (Black box test) có thể được áp dụng hầu như đến mọi cấp độ của kiểm thử phần mềm:
•Kiểm thử đơn vị (Unit test)
•Kiểm thử tích hợp (Intergration test)
•Kiểm thử hệ thống (System test)
•Kiểm thử chấp nhận (Acceptance test).
Tuy nhiên, Black box test được sử dụng thích hợp nhất trong kiểm thử hệ thống (System test) và Kiểm thử chấp nhận (Acceptance test) Đặc điểm
Là chiến lược kiểm thử TPPM dựa vào thông tin duy nhất là các đặc tả về yêu cầu chức năng của TPPM tương ứng.
Người kiểm thử không nhất thiết phải có kiến thức về lập trình hay cấu trúc nội bộ của TPPM Điều này cho thấy rằng kỹ năng kiểm thử có thể được thực hiện mà không cần phải am hiểu sâu về mã hóa hay phát triển phần mềm.
Kiểm thử TPPM được thực hiện để đánh giá khả năng đáp ứng yêu cầu của người dùng Các tester sẽ nhập dữ liệu vào phần mềm và theo dõi kết quả cũng như các mục tiêu kiểm tra để đảm bảo tính chính xác và hiệu quả của phần mềm.
Mức test này yêu cầu các tester viết đầy đủ test case trước khi thực hiện Trong quá trình test, họ chỉ cần tuân theo các bước đã mô tả trong test case, nhập dữ liệu và quan sát kết quả hoặc hành vi của phần mềm, sau đó so sánh với kết quả mong đợi đã được ghi trong test case.
Tạo testcase và thực hiện test
Khi viết test case: Dựa vào yêu cầu và giao diện bên ngoài của chương trình (Không can thiệp vào bên trong code của chương trình).
Khi thực hiện test: Thực hiện trên giao diện của chương trình (yêu cầu chương trình phải chạy được mới test được, không can thiệp vào code).
Áp dụng các kỹ thuật test của black box và white box cho đồ án
2.2.1 Kỹ thuật test White Box
Chức năng đăng nhập user
Hình 2.4 Chức năng đăng nhập user
Sơ đồ luồng Độ phức tạp
Trường hợp test Đầu vào Kết quả
Chức năng thêm giỏ hàng
Hình 2.5 Chức năng thêm giỏ hàng
Sơ đồ luồng Độ phức tạp
Chức năng xóa giỏ hàng
Sơ đồ luồng Độ phức tạp
Chức năng cập nhật giỏ hàng
Hình 2.7 Chức năng cập nhật giỏ hàng
Sơ đồ luồng Độ phức tạp
Hình 2.8 Chức năng đăng ký
Sơ đồ luồng Độ phức tạp
2.2.2 Kỹ thuật test Black Box
Unit test cho các chức năng chính của đồ án
Hình 2.10 Unit test Đăng nhập
Hình 2.12 Unit test Thêm hàng
Hiện thực
Mô tả dự án
Web bán sách có địa chỉ domain là http://www.bookstore888.somee.com/
Giao diện đầu tiên khi người dùng truy cập vào có chức năng sau
Trở về trang chủ Đăng ký tài khoản Đăng nhập để mua hàng
Thực hiện chương trình
Hình 3.14 Đăng ký thành công
Hình 3.15 Bỏ trống tên khách hàng
Hình 3.16 Bỏ trống tên tài khoản
Hình 3.17 Bỏ trống nhập mật khẩu
Hình 3 18 Bỏ trống nhập lại mật khẩu
Hình 3.19 Bỏ trống ô nhập Email
Hình 3.20 Bỏ trống ô nhập địa chỉ
Hình 3.21 Bỏ trống ô nhập SDT
Hình 3.22 Nhập SDT không hợp lệ
Hình 3.23 Nhập sai định dạng Email
Hình 3.24 Đăng nhập thành công
Hình 3.26 Không nhập mật khẩu
Hình 3.27 Nhập sai tên đăng nhập
Hình 3.28 Nhập sai mật khẩu
Hình 3.30 Không nhập gì vào thanh tìm kiếm
Hình 3 31 Nhập linh tinh vào thanh tìm kiếm
Hình 3.32 Đặt hàng thành công
Hình 3.34 Không chọn ngày giao hàng
Kết quả thực hiện
- Tìm hiểu chi tiết cách cài đặt và sử dụng tiện ích Selenium IDE trên trình duyệt Google Chorme
- Tìm hiểu kiến thức về kiểm thử, các phần mềm hỗ trợ
- Test các chức năng cơ bản của một trang web: Đăng nhập, đăng ký, tìm kiếm, …
Sau khi áp dụng các kỹ thuật kiểm thử như black box và white box, chúng tôi nhận thấy rằng trang web vẫn còn nhiều lỗi ẩn Những lỗi này có thể được phát hiện nhanh chóng và cần được khắc phục kịp thời để cải thiện hiệu suất của trang web.
4.1.2 Kết quả chưa đạt được
Mặc dù đã kiểm tra các chức năng cơ bản của website, nhưng do kinh nghiệm và thời gian hạn chế, không thể tránh khỏi một số thiếu sót.
- Chỉ mới tìm hiểu về 1 công cụ nên chưa thể hiểu hết về các tools sử dụng trong testing
- Chưa sử dụng thành thạo hết các chức năng của Selenium
Hướng phát triển
- Test toàn bộ trang web để có thể đưa ra một trang web hoàn thiện nhất có thể tới khách hàng.
Trong thời đại công nghệ 4.0 hiện nay, việc sử dụng các chương trình và phần mềm quản lý là thiết yếu cho cả cá nhân và doanh nghiệp Để đảm bảo hiệu quả, quá trình kiểm thử (testing) là không thể thiếu nhằm phát hiện hạn chế và lỗi trong phần mềm Chúng tôi, với mong muốn trở thành tester, sẽ nghiên cứu sâu hơn về các công cụ kiểm thử để đưa ra quyết định chính xác, hỗ trợ các nhà phát triển (Dev) tạo ra những sản phẩm phần mềm hoàn thiện hơn.