Black box
test techniques là gì?
Kĩ thuật kiểm
thử hộp đen là kĩ thuật testing dựa trên tài liệu chứ không dựa trên cấu trúc
bên trong của software hay test object,
kĩ thuật này chỉ cần quan tâm đến input và output và dựa vào tài liệu để viết
nên các tài liệu test condition và testcases
Kỹ thuật kiểm thử phần mềm là gì?
Kỹ
thuật kiểm thử phần mềm là cách thức giúp bạn thiết kế các trường hợp kiểm thử
tốt hơn, kiểm soát được nhiều trường hợp hơn.
Trong nội
dung Blog này mình sẽ giới thiệu cho các bạn 3 loại kiểm thử thông dụng là: Phân
vùng tương đương, phân tích giá trị biên, bảng quyết định.
1.
Phân vùng tương đương (Equivalence Class Partitioning):
Các phân
vùng tương đương sẽ chia dữ liệu thành các vùng( hay còn gọi là các lớp tương
đương theo cái cách mà tất cả các thành phần cho vùng đấy được mong muôn là xử
lí theo cùng một cách giống nhau. Và phân vùng tương đương mình sẽ test cho cả
valid và invalid values
Ví dụ như
tuổi hợp lệ của người là từ 0->200 thì tất cả những giá trị từ 0-> 200 sẽ
cùng xử lí theo một cách, còn nếu mà không hợp lệ, ví dụ nhỏ hơn 0 và lớn hơn
200 thì sẽ xử lí khác ,
Những giá trị valid value là những giá trị được
chấp nhận bởi hệ thống và component đấy.
và một phân vùng mà chứa các valid value thì gọi là valid equivalence
partition “
Và invalid
value là những giá trị mà sẽ bị reject bởi các component và của hệ thống. và một
phân vùng tương đương chứa invalid value thì sẽ gọi là “ invalid equivalence
partition”. Mỗi một giá trị thì nó sẽ thuộc về một và chỉ một phân vùng tương
đương
Và để đạt
đươc 100% coverage của kĩ thuật này thì testcase phải cover hết tất cả các vùng
(bao gồm cả valid và invalid partition) bằng cách là sử dụng ít nhất một giá trị cho một partition. Và mức độ coverage thì sẽ
được đo bằng tổng số những phân vùng tương đương đã được test bởi ít nhất là một
giá trị chia cho tổng số phân vùng tương đương cần phải test. Và phân vùng
tương đương sẽ phù hợp cho tất cả test level
Ví dụ: một
người gửi tiền tiết kiệm vào ngân hàng A và có những lãi suất tương ứng như
sau: nếu bạn gửi tiền từ 0-100$ thì lãi suất sẽ là 3%, nếu từ 100-1000$ thì lãi suất sẽ là 5%, còn nếu
trên 1000$ thì sẽ là 7%
Invalid
partition Valid(3%) Valid(5%) Valid(7%)
-0.01$ 0$ -> 100$ 100.01$ 999.99$ 1000.00$
Testcase của mình phải có tối thiểu 4
testcases để cover được hếc những partition này và khi đó mới đạt được 100% coverage.
2. Phân tích giá trị biên:
Là một sư mở
rộng của phân vùng tương đương và chỉ sử dụng được khi các phân vùng của mình
được theo một thứ tự có thể là số hoặc chuỗi dữ liệu và những giá trị maximum
và minimum (giá trị đầu tiên và giá trị cuối cùng) của một partition thì sẽ được
gọi là boundary value
Ví dụ như
trong bài toán ở trên số -0.01 hoặc là số
0 nó chính là boundary value giữa vùng invalid và vùng 3%, giá trị 100,
100.01 cùng là một cặp boundary, giá trị
giao giữa các phân vùng valid và invalid value thì sẽ được gọi giá trị biên
Các hành vi
trong các đường biên của phân vùng tương đương thì thường hay bị lỗi chính vì
thế mình sẽ có những testcase cho những phân vùng tương đương ấy. Và các case của
mình thì phải cover hếc tất cả những phân vùng bao gồm cả phân vùng hợp lệ và
không hợp lệ để mình phát hiện ra những trường hợp xử lí không đúng hoặc là bị bỏ sót không xử lý những đường biên hoặc là có những bourdary được thêm vào không
mong muốn
Phân tích
giá trị biên sẽ kiểm tra được hết những
defect mà phân mềm có thể xử lí ở các vùng khác nhau, phân tích giá trị biên có thể kiểm tra được ở tất cả các
level, và các kĩ thuật này thường để
test những tài liệu requirement mà nó có những dải số (ngày tháng). Mức độ
coverage của phân vùng tương đương này được đo bằng số giá trị boundary được
test chia cho tổng số giá trị bourdary cần được test
Ví dụ : một
trường học chấp nhận những giá trị dương
và nếu như mà từ 1-5 là giá trị hợp lệ
Lúc này mình
sẽ chia thành 3 vùng
Vùng nhỏ hơn
1, vùng từ 1-5, và lớn hơn 5
Và giá trị
biên của nó là tại điểm 1 là : 0,1( một
giá trị hợp lệ và một giá trị không hợp lệ)
Tại điểm 5
là: có hai giá trị biên là 5,6 ( một giá
trị hợp lệ và một giá trị không hợp lệ)
3. Bảng quyết định
Là một kĩ
thuật rất tốt để test những trường hợp rules có nghiệp vụ phức tạp mà hệ thống
mình phải thực hiện, khi tạo ra một bảng quyết định thì tester sẽ xác định ra
các tình huống, điều kiện( đầu vào) và xác định những kết quả mong muốn (output) của hệ thống. và
thường sẽ viết thành bảng bao gồm các
hàng và ở trên bên sẽ là các condition còn ở bên dưới sẽ là các action
Mỗi một cột
sẽ tương ứng với một decision rule và nó sẽ define một trường hợp kết hợp duy
nhất và mình sẽ có kết quả tương ứng vơi
những rule đó.
Ví dụ:
Nút Submit chỉ được enable khi tất cả các đầu vào được nhập bởi người
dùng cuối
|
Role 1 |
Role 2 |
Role 3 |
Role 4 |
Role 5 |
Role 6 |
Role7 |
Role 8 |
Name |
T |
T |
T |
F |
T |
F |
F |
F |
Email |
T |
T |
F |
T |
F |
F |
T |
F |
Password |
T |
F |
T |
T |
F |
T |
F |
F |
Submit |
T |
F |
F |
F |
F |
F |
F |
F |
Kết luận:
Trên đây,
mình đã giới thiệu một số kỹ thuật thường sử dụng để thiết kế test cases, vừa
tiết kiệm thời gian vừa tăng độ bao phủ của test cases. Tùy vào yêu cầu của từng
hệ thống mà áp dụng các kỹ thuật cho phù hợp. Hi vọng bài viết đã có tính hữu dụng
gửi đến các bạn.
Nguồn tài liệu:
https://istqb-main-web-prod.s3.amazonaws.com/media/documents/ISTQB_CTFL_Syllabus-v4.0.pdf