Kiểm thử là gì?Kiểm thử phần mềm là một quá trình xác minh và xác thực rằng phần mềm đáp ứng các yêu cầu được đặt ra và đảm bảo rằng không có lỗi hay khiếm khuyết.Các hoạt động chính của
Nêu các nội dung cơ bản của kiểm thử
Kiểm thử phần mềm là một quá trình xác minh và xác thực rằng phần mềm đáp ứng các yêu cầu được đặt ra và đảm bảo rằng không có lỗi hay khiếm khuyết.
Các hoạt động chính của kiểm thử phần mềm bao gồm:
Kiểm tra: Thực thi phần mềm với các đầu vào và điều kiện khác nhau để xác minh rằng phần mềm hoạt động như mong đợi.
Phân tích: Xác định các lỗi, khiếm khuyết hoặc các yêu cầu còn thiếu so với yêu cầu thực tế.
Quan sát: Ghi lại hành vi của phần mềm khi chạy.
Đánh giá: Xác định mức độ nghiêm trọng của các lỗi và khiếm khuyết.
Người kiểm thử phần mềm (Tester) sử dụng kết hợp các công cụ thủ công và tự động để thực hiện các hoạt động kiểm thử.
Tầm quan trọng của kiểm thử:
Phát hiện và sửa chữa các lỗi phần mềm, đảm bảo phần mềm hoạt động đúng như mong đợi.
Đảm bảo chất lượng phần mềm, ngăn ngừa các rủi ro liên quan đến phần mềm, chẳng hạn như mất dữ liệu, gián đoạn dịch vụ, thiệt hại tài chính,
Cải thiện trải nghiệm người dùng, mang lại sự hài lòng cho khách hàng.
Một số lý do cụ thể khiến việc kiểm thử ngày càng trở nên quan trọng:
Phần mềm ngày càng trở nên phức tạp và khó phát triển hơn.
Người dùng ngày càng đòi hỏi cao hơn về chất lượng phần mềm.
Các mối đe dọa bảo mật ngày càng gia tăng.
Thị trường cạnh tranh ngày càng gay gắt.
Một số phương pháp, kỹ thuật kiểm thử phổ biến:
1 Kiểm thử đơn vị (Unit Testing): Đây là quá trình kiểm thử từng phần code (đơn vị code) riêng lẻ để đảm bảo tính đúng đắn của chúng Các thư viện như JUnit, NUnit, và pytest thường được sử dụng cho kiểm thử đơn vị.
2 Kiểm thử tích hợp (Integration Testing): Quá trình kiểm tra cách các đơn vị code tương tác với nhau khi kết hợp lại để xem liệu chúng hoạt động cùng nhau đúng cách hay không Các kỹ thuật kiểm thử tích hợp bao gồm kiểm thử từ trên xuống (top-down) và kiểm thử từ dưới lên (bottom-up).
3 Kiểm thử hộp đen (Black Box Testing): Trong phương pháp này, kiểm thử được thực hiện mà không cần biết cách thức hoạt động nội bộ của phần mềm Tester chỉ quan tâm đến đầu vào và đầu ra.
4 Kiểm thử hộp trắng (White Box Testing): Tester kiểm tra phần mềm dựa trên kiến thức về cấu trúc nội bộ của nó Điều này thường đòi hỏi kiến thức về mã nguồn và cách hoạt động của mã.
5 Kiểm thử chức năng (Functional Testing): Kiểm tra các chức năng cụ thể của phần mềm để đảm bảo rằng chúng hoạt động theo yêu cầu Đây là loại kiểm thử phổ biến nhất và bao gồm kiểm thử hợp đồng (contract testing), kiểm thử giao diện (UI testing), và nhiều loại khác.
6 Kiểm thử hiệu suất (Performance Testing): Kiểm tra hiệu suất của phần mềm dưới các tải công việc khác nhau để đảm bảo rằng nó đáp ứng được yêu cầu về tốc độ và khả năng mở rộng.
7 Kiểm thử bảo mật (Security Testing): Đây là quá trình kiểm tra các lỗ hổng bảo mật trong phần mềm để đảm bảo rằng nó an toàn trước các cuộc tấn công.
8 Kiểm thử tự động (Automated Testing): Sử dụng công cụ và kịch bản kiểm thử tự động để thực hiện các kiểm thử một cách tự động Điều này giúp tiết kiệm thời gian và tăng tính nhất quán của kiểm thử.
9 Kiểm thử xám nhạt (Exploratory Testing): Kiểm thử người dùng thực hiện mà không có kịch bản kiểm thử cụ thể Tester sử dụng trí tưởng tượng để khám phá các khả năng của phần mềm.
10 Kiểm thử liên quan đến dữ liệu (Data-Driven Testing): Sử dụng dữ liệu đầu vào từ các nguồn khác nhau để kiểm tra phản ứng của phần mềm.
11 Kiểm thử phi chức năng (Non-Functional Testing): Kiểm tra các yếu tố phi chức năng của phần mềm như khả năng mở rộng, khả năng phục hồi sau lỗi (recovery testing), và khả năng tương thích (compatibility testing).
Trong đó công cụ Selenium thuộc nhóm kiểm thử tự động (Automated Testing).
Giới thiệu công cụ Selenium
Selenium là một công cụ tự động hóa việc kiểm thử ứng dụng web Nó cho phép người dùng tạo và thực thi các kịch bản kiểm thử trong nhiều ngôn ngữ lập trình khác nhau như Java, C#, Python, Ruby, JavaScript, v.v. Được sử dụng rộng rãi để kiểm thử chức năng của các ứng dụng web trong quá trình phát triển phần mềm Nó tự động thao tác trên trình duyệt web như người dung thực tế , chẳng hạn như điều hướng đến 1 trang web cụ thể, nhập liệu vào các trường đầu vào, nhấn nút, kiểm tra nội
Công cụ này được hỗ trợ các trình duyệt phổ biến như Chrome, Firefox, Safari và Internet Explorer Nó cung cấp các API phong phú để điều khiển các hoạt động của trình duyệt và truy cập vào các thành phần HTML của trang web như các phần tử form, các liên kết, các bảng, v.v. Được đánh giá cao về tính linh hoạt và dễ sử dụng Nó giúp tăng cường hiệu suất và độ chính xác của quy trình kiểm thử tự động, giúp nhóm phát triển phần mềm tiết kiệm thời gian và công sức.
Sử dụng trong quy trình kiểm thử liên tục (continuous integration) để tự động kiểm tra các chức năng quan trọng của ứng dụng web trong quá trình triển khai và đảm bảo rằng những thay đổi mới không gây ra vấn đề hoặc hư hỏng cho ứng dụng
Hướng dẫn sử dụng công cụ Selenium:
Tính năng của Selenium IDE
Menu bar được đặt ở trên đầu cửa sổ Selenium IDE và thường gồm 5 module sau:
File Menu khá là giống với tất cả file menu trong những ứng dụng khác Nó cho phép người dùng:
New Test Case: Tạo test case, mở các test case tạo trước đó, lưu thông tin các test case hiện tại.
Export Test Case As and Export Test Suite As: là tính năng hỗ trợ xuất ra các test case, bộ test case với các ngôn ngữ lập trình tương thích với Selenium RC và WebDriver Nó cũng cho phép người dùng tự do lựa chọn giữa các Framework test unit như jUnit, TestNG Do đó test case IDE có thể được export cho sự kết hợp của ngôn ngữ lập trình, framework test và tool trong gói Selenium.
Lựa chọn Export Test Case As sẽ chỉ xuất và chuyển đổi các test case Selenium IDE hiện đang mở.
Lựa chọn Export Test Suite As sẽ xuất và chuyển đổi tất cả test case liên quan đế bộ test hiện đang mở.
Test case Selenium IDE có thể lưu với các định dạng sau:
Test case Selenium IDE có thể xuất với các định dạng/ngôn ngữ lập trình sau:
Java (IDE xuất bằng Java).
rb (IDE xuất bằng Ruby).
py (IDE xuất bằng Python).
Lưu ý: các phiên bản mới sắp tới của Selenium IDE có thể sẽ hỗ trợ nhiều định dạng hơn.
Menu Edit cung cấp các lựa chọn: Undo (Hoàn tác), Redo (Làm lại), Cut, Copy, Paste, Delete, và Select All, tất cả đều giống như những menu Edit khác Trong đó, đáng chú ý:
Insert New Command - Cho phép người dùng thêm các câu lệnh mới/ các bước test mới ở bất cứ chỗ nào trong test case hiện tại.
Insert New Comment - Cho phép người dùng thêm các comment ở bất cứ chỗ nào trong test case hiện tại để mô tả các bước thực hiện tiếp theo.
Câu lệnh mới sẽ được thêm vào bên trên dòng lệnh/bước được chọn.
Người dùng có thể thêm action (hành động), taget (đích) và value (giá trị)
Cách thức thêm comment tương tự như thêm command.
Dòng text màu tím chính là nội dung comment.
Menu Actions bao gồm các tác vụ sau:
Record - Tùy chọn Record là để đưa Selenium IDE vào chế độ ghi Do đó, bất cứ hành động nào của user trên trình duyệt Firefox đều được ghi lại trong IDE.
Play entire test suite - Tùy chọn để chạy lại tất cả các testcase Selenium IDE có liên quan đến bộ kiểm thử hiện tại.
Play current test case - Tùy chọn chạy lại testcase Selenium IDe hiện tại đã được ghi lại/ tạo ra bởi người dùng.
Pause/ Resume - User có thể dừng/ khôi phục testcase ở bất kỳ thời điểm nào trong khi đang thực hiện.
Toggle Breakpoint - User có thể đặt 1 hoặc nhiều breakpoint để dừng thực thi ở bất cứ bước kiểm tra nào trong quá trình thực hiện.
Set/ Clear Start Point - User có thể đặt điểm bắt đầu thực thi ở bất cứ bước kiểm tra nào Nó cho phép người dùng thực hiện testcase từ điểm bắt đầu cho các lần chạy tiếp theo.
Để xử lý việc tải trang/ phần tử, người dùng cần đặt tốc độ thực thi từ nhanh nhất đến thấp nhất cho phù hợp với sự phản hồi của ứng dụng đang test.
Menu Options cho phép người dùng thiết đặt và thực hiện các cài đặt khác nhau của Selenium IDe Menu Options được gợi ý như một menu quan trọng nhất và hữu ích nhất của tool.
Menu Options chủ yếu gồm 4 phần sau:
Tùy chọn Formats cho phép người dùng chuyển đổi test case Selenium IDE sang định dạng mong muốn.
Thanh Base URL về cơ bản giống với thanh địa chỉ Nó ghi nhớ các trang web đã từng truy cập trước đây vì thế việc điều hướng trở nên dễ dàng hơn.
Hiện nay, bất cứ khi nào người dùng sử dụng lệnh "open" của Selenium IDE mà không có giá trị mục tiêu, URL cơ sở sẽ được chạy trên trình duyệt.
Toolbarr cung cấp các tùy chọn thích hợp để ghi và thực thi test case.
Playback Speed - Lựa chọn này cho phép người dùng quản lý tốc độ thực thi test case từ nhanh đến chậm.
Play test suite - Lựa chọn này cho phép người dùng thực hiện tất cả testcase thuộc bộ kiểm thử hiện tại.
Play test case - Lựa chọn này cho phép người dùng thực hiện các testcase hiện được chọn.
Pause - Lựa chọn này cho phép người dùng tạm dừng thực thi đang chạy.
Step - Lựa chọn này cho phép người dùng bước vào bước kiểm tra.
Rollup - Lựa chọn cho phép người dùng kết hợp nhiều bước kiểm thử để hoạt động giống như một câu lệnh duy nhất.
Record - Lựa chọn cho phép người dùng bắt đầu hoặc dừng thao tác ghi hành động của người dùng Nếu biểu tượng có màu hồng nhưng rỗng màu ở giữa: bắt đầu ghi, biểu tưởng được phủ kín màu đỏ: dừng ghi Selenium IDE mở ra luôn ở chế độ mặc định là record.
Editor là một phần nơi mà IDE ghi testcase Từng hành động của người dùng được ghi vào editor theo đúng thứ tự như khi họ thực hiện.
Editor có 2 cách để xem như sau:
Test case pane bao gồm tất cả test case được ghi lại bởi IDE Công cụ có khả năng mở nhiều hơn một test case vào cùng 1 thời điểm ở Test case pane và người dùng có thể dễ dàng trộn giữa các test case Các bước kiểm thử của Test cases được tổ chức trong phần biên tập - Editor.
Selenium IDE có thực hiện mã hóa màu sắc để phục vụ việc báo cáo Sau khi thực thi, test case được đánh dấu màu đỏ hoặc màu xanh.
Màu đỏ tượng trưng cho việc chạy không thành công, ví dụ: lỗi test case
Màu xanh tượng trưng cho việc chạy test case thành công. Để mở hộp Selenium IDE Options, thực hiện theo các bước:
Hộp chọn Selenium IDE Options xuất hiện.
Selenium IDE Options giúp người dùng thực hiện với các cài đặt chung, định dạng, plug- in, loại định vị sẵn có Cùng tập trung vào một số các tab quan trọng.
Default Timeout Value - Thể hiện bằng thời gian (tính theo mili giây) mà selenium sẽ đợi để thực hiện 1 bước kiểm tra trước khi nón tạo ra lỗi Thời gian timeout chuẩn là 30000 mili giây (30 giây) Người dùng có thể sử dụng tính năng này bằng cách thay đổi thời gian mặc định trong trường hợp các phần tử của web mất nhiều hơn/ ít hơn thời gian để load.
Chạy thực nghiệm với các ví dụ minh họa
Chạy thực nghiệm công cụ kiểm thử Selenium IDE với chức năng đăng nhập tại trang web https://nxbkimdong.com.vn/
Các kịch bản kiểm thử chức năng đăng nhập
STT Tên tài khoản Mật
1 Nguyenson16@gmail.com 123 Thông tin đăng nhập không hợp lệ
2 Nguyenson16gmail.com 29092003 Vui lòng bao gồm @ trong địa chỉ email
3 *&@# 29092003 Các ký tự sau @ không hợp lệ
4 Nguyenson16@gmail.com Mật khẩu không được bỏ trống
5 29092003 Tài khoản không được bỏ trống
6 Nguyenson16@gmail.com 29092003 Đăng nhập thành công
Chạy thử với testcase 1 : Thông tin đăng nhập không hợp lệ
- Nhập vào phần id=CustomerEmail trên cộng cụ Selenium IDE với giá trị
- Nhập vào phần id=CustomerPassword trên cộng cụ Selenium IDE với giá trị 123
*) Kết quả dưới hình minh họa :
Chạy thử với testcase 2 : Bao gồm @ trong địa chỉ email
- Nhập vào phần id=CustomerEmail trên cộng cụ Selenium IDE với giá trị
- Nhập vào phần id=CustomerPassword trên cộng cụ Selenium IDE với giá trị 29092003
*) Kết quả dưới hình minh họa :
Chạy thử với testcase 3 : Các ký tự sau @ không hợp lệ
- Nhập vào phần id=CustomerEmail trên cộng cụ Selenium IDE với giá trị *&@#
- Nhập vào phần id=CustomerPassword trên cộng cụ Selenium IDE với giá trị 29092003
*) Kết quả dưới hình minh họa :
Chạy thử với testcase 4 : Mật khẩu không được bỏ trống
- Nhập vào phần id=CustomerEmail trên cộng cụ Selenium IDE với giá trị Nguyenson16@gmail.com
- Để trống phần id=CustomerPassword trên cộng cụ Selenium IDE
*) Kết quả dưới hình minh họa :
Chạy thử với testcase 5 : Tài khoản không được bỏ trống
- Bỏ trống phần id=CustomerEmail trên cộng cụ Selenium IDE
- Nhập vào phần id=CustomerPassword trên cộng cụ Selenium IDE với giá trị 29092003
*) Kết quả dưới hình minh họa :
Chạy thử với testcase 6 : Đăng nhập thành công
- Nhập vào phần id=CustomerEmail trên cộng cụ Selenium IDE với giá trị
- Nhập vào phần id=CustomerPassword trên cộng cụ Selenium IDE với giá trị 29092003
*) Kết quả dưới hình minh họa :