Các kỹ thuật kiểm thử phần mềm : được phân loại gồm: kiểm thử hộp đen, kiểm thử hộp trắng, kiểm thử dựa trên kinh nghiệm. Ở bài viết này chúng ta sẽ đi tìm hiểu về các kỹ thuật kiểm thử trên và một số phương pháp kiểm thử hay sử dụng.
1.Tổng quan về kiểm thử hộp đen, kiểm thử hộp trắng, kiểm thử dựa trên kinh nghiệm
1.1 So sánh giữa Kiểm thử hộp đen và Kiểm thử hộp trắng
Kiểm thử hộp đen | Kiểm thử hộp trắng | |
Khái niệm | Kiểm thử hộp đen (Black box testing là một phương pháp kiểm thử phần mềm mà việc kiểm tra các chức năng của một ứng dụng không cần quan tâm vào cấu trúc nội bộ hoặc hoạt động của nó. | Kiểm thử hộp trắng (While box test) là phương pháp thử nghiệm phần mềm, trong đó các thiết kế, cấu trúc giải thuật bên trong, và việc thực hiện các công việc đều được biết đến |
Đặc điểm | – Không yêu cầu hiểu biết về lập trình – Không yêu cầu hiểu về cầu trúc bên trong chức năng. – Basis for Test Cases: dựa trên tài liệu yêu cầu,use case, use stories | – Yêu cầu hiểu biết nhất định về lập trình – Yêu cầu hiểu về cầu trúc bên trong chức năng được thực hiện như thế nào – Basis for Test Cases: dựa trên các tài liệu, thiết kế hệ thống |
Trách nhiệm | Được thực hiện bởi Tester | Được thực hiện bởi Developer |
Phạm vi áp dụng | Thường được áp dụng ở các levels test : Kiểm thử hệ thống (System test), kiểm thử chấp nhận (Acceptance test). | Thường được áp dụng ở các levels test : Kiểm thử tích hợp (Intergration test), kiểm thử đơn vị (Unit test) |
Các kỹ thuật kiểm thử | – Phân vùng tương đương(Equivalence Class Partitioning). – Phân tích giá trị biên (Boundary value analysis). – Bảng quyết định (Decision Tables) – Bảng chuyển đổi trạng thái (state transition) – Kỹ thuật dựa trên đặc tả use case | – Statement Testing and Coverage – Decision Testing and Coverage – Cyclomatic conplexity |
1.2 Kỹ thuật kiểm thử dựa trên kinh nghiệm (Experience-based Test Techniques)
Định nghĩa : Là kỹ thuật kiểm thử dựa trên những kinh nghiệm, kỹ năng của người kiểm thử từ những ứng dụng và công nghệ tương tự mà họ đã thực hiện kiểm thử. Tùy thuộc vào các tiếp cận và kinh nghiệm của người kiểm thử, các kỹ thuật này có thể đạt được độ bao phủ và hiệu quả khác nhau. Mức độ bao phủ khó có thể đánh giá và có thể đo lường được bằng kỹ thuật này.
Các phương pháp kiểm thử:
- Đoán lỗi (Error Guessing)
- Test khám phá (Exploratory Testing)
- Checklist-based testing
2. Các phương pháp kiểm thử hay sử dụng
2.1 Phân vùng tương đương
Là phương pháp của Kiểm thử hộp đen. Phương pháp này chia các điều kiện đầu vào thành các vùng tương đương nhau. Các giá trị thuộc cùng một lớp sẽ cho ra kết quả giống nhau.
Khi thực hiện test ta có thể test 1 giá trị đại diện trong phân vùng tương đương.Mỗi giá trị chỉ thuộc về 1 phân vùng tương đương
Thiết kế Test case bằng phương pháp phân vùng tương đương được tiến hành theo 2 bước:
Bước 1: Xác định các lớp tương đương
Bước 2: Xác định các ca kiểm thử
Ví dụ: Đề bài cho 1 ô textbox nhập tuổi, với tuổi hợp lệ từ 10-18 tuổi
Bước 1: Xác định các lớp tương đương. Sử dụng kỹ thuật phân vùng tương đương ta có các lớp phân vùng sau:
- Phân vùng 1: Nhập giá trị hợp lệ là tuổi từ 10=>18
- Phân vùng 2: Nhập giá trị không hợp lệ <10
- Phân vùng 3: Nhập giá trị không hợp lệ >18
Bước 2: Xác định các ca kiểm thử
- Case 1: Nhập tuổi =12=> Hợp lệ
- Case 2: Nhập tuổi =8 =>Không hợp lệ , báo lỗi
- Case 3: Nhập tuổi =30=> Không hợp lệ , báo lỗi
2.2 Phân tích giá trị biên
Phân tích giá trị biên là một trong những kỹ thuật trong phương pháp kiểm thử hộp đen, test các giá trị trở thành giá trị biên (các cạnh của lớp tương đương) và các giá trị gần kề biên.
Trong thực tế, lỗi thường sẽ phát sinh nhiều ở giá trị biên nhưng cũng sẽ tồn tại nhiều lỗi tại các giá trị gần kề biên.
Do đó, testcase thường sẽ được quyết định dựa theo quy tắc dưới đây
- Giá trị biên nhỏ nhất -1
- Giá trị biên nhỏ nhất
- Giá trị biên nhỏ nhất +1
- Giá trị biên lớn nhất -1
- Giá trị biên lớn nhất
- Giá trị biên lớn nhất +1
Trở lại ví dụ bên trên: Đề bài cho 1 ô textbox nhập tuổi, với tuổi hợp lệ từ 10-18 tuổi
Sử dụng phương pháp phân tích giá trị biên, ta sẽ có giá trị biên nhỏ nhất =10, giá trị biên lớn nhất=18
Từ các giá trị phát triển thành các case
- Case 1: Nhập tuổi=9 => Không hợp lệ, báo lỗi
- Case 2: Nhập tuổi=10 =>Hợp lệ
- Case 3: Nhập tuổi =11=> Không hợp lệ, báo lỗi
- Case 4: Nhập tuổi=17 => Không hợp lệ, báo lỗi
- Case 5: Nhập tuổi=18 =>Hợp lệ
- Case 6: Nhập tuổi=19 => Không hợp lệ, báo lỗi
2.3 Bảng quyết định
Kiểm thử bảng quyết định (Decision Table Testing) là một kỹ thuật kiểm thử phần mềm được sử dụng để kiểm thử hoạt động của hệ thống khi kết hợp các đầu vào khác nhau. Đây là một cách tiếp cận có hệ thống trong đó các kết hợp đầu vào khác nhau và hành vi hệ thống tương ứng của chúng (Đầu ra) được ghi lại dưới dạng bảng.
Các bước để tạo ra được Decision Table
- Liệt kê tất cả Conditions/Inputs.
- Tính số lượng kết hợp có thể (Rules).
- Đặt tất cả các kết hợp trong bảng.
- Rút gọn case trùng lặp
Số Rules cho 1 bảng quyết định đầy đủ được tính =2n . Trong đó n là
Ví dụ: Cho form insert thông tin khách hàng gồm các trường: Tên khách hàng, số điện thoại, email, button submit
Yêu cầu: Chỉ hiển hiển thị button submit khi tất cả các trường điền hợp lệ
Từ đề bài ta xác định được:
- Option: Blank (F), not Blank (T)
- Conditions: Tên khách hàng, email, số điện thoại
- Action: enable button submit, disable button submit
=> Số rules sẽ được tính= 2 3 =8
Ta có bảng quyết định :
Điều kiện | Quy tắc 1 | Quy tắc 2 | Quy tắc 3 | Quy tắc 4 | Quy tắc 5 | Quy tắc 6 | Quy tắc 7 | Quy tắc 8 |
Tên khách hàng | F | T | F | T | F | T | T | F |
Số điện thoại | F | T | F | F | T | T | F | T |
F | T | T | F | F | F | T | T | |
Kết quả | ||||||||
enable button submit | X | |||||||
disable button submit | X | X | X | X | X | X | X |
2.4 Đoán lỗi
Đoán lỗi là kỹ thuật sử dụng để dự đoán sự xuất hiện của defect, mistakes, failures dựa trên kiến thức của Tester, bao gồm:
- Ứng dụng đã hoạt động như thế nào trong quá khứ
- Những loại lỗi có xu hướng xảy ra
- Lỗi xảy ra trong các ứng dụng khác
Ví dụ :
- Case chia cho số 0
- Nhập khoảng trắng vào trường
- Nhập dữ liệu html, script.. vào trường textbox
- Search record đã bị xóa
Tài liệu tham khảo:
Tài liệu Foundation ISTQB
https://softwaretestingfundamentals.com/black-box-testing-vs-white-box-testing/