Kiểm thử hộp đen

State Transition Testing là gì?

⭐ State transition testing là một kỹ thuật kiểm thử hộp đen. Kỹ thuật này giúp bạn thiết kế test case dựa vào mô hình (model) hoặc lược đồ (diagram) mô tả các trạng thái (state) và chuyển đổi (transition) của chúng.

Định nghĩa State Transition Testing theo ISTQB Glossary: https://glossary.istqb.org

State transition testing is a black-box test technique in which test cases are designed to exercise elements of a state transition model.
State transition testing

Áp dụng kỹ thuật state transition testing vào thực tế

Trong thực tế, không phải lúc nào dự án của bạn cũng có tài liệu mô tả state transition để bạn dựa vào đó mà thiết kế test case. Dựa vào tài liệu mô tả yêu cầu, bạn có thể tự vẽ lược đồ chuyển đổi trạng thái để từ đó xác định test case.

Khi áp dụng kỹ thuật kiểm thử dựa vào chuyển đổi trạng thái (state transition testing), bạn nên chú ý viết cho đủ 2 loại test case.

  1. Test case đi qua mọi trạng thái (state)
  2. Test case đi qua mọi chuyển đổi (transition)

Đây là một lược đồ do mình tự vẽ cho màn hình log in đơn giản mà mình hay sử dụng làm minh hoạ trong lớp Fresher Tester

Hoặc bạn có thể dựa vào mô tả luồng đi màn hình (screenflow) để áp dụng kỹ thuật state transition testing. Trong đó, state là màn hình, và transition là những di chuyển qua lại giữa các màn hình.

(Hình từ trang sketchappsources.com)

Áp dụng kỹ thuật kiểm thử dựa vào chuyển đổi trạng thái cho Screenflow như thế này, bạn nên chú ý viết cho đủ 2 loại test case.

  1. Test case đi qua mọi màn hình (mỗi màn hình xem như là 1 state)
  2. Test case đi qua mọi di chuyển màn hình (mỗi chuyển đổi qua lại giữa 2 màn hình là 1 transition, A qua B và B qua A được tính là 2 lần khác nhau)

Sau khi áp dụng kỹ thuật này thì giúp bạn tự tin rằng mỗi màn hình trong hệ thống (web application hoặc mobile app) đều được đi qua ít nhất 1 lần. Và mọi di chuyển qua lại giữa các màn hình đã được kiểm thử. Bạn không cần phải kiểm tra các test case này thường xuyên nhưng ít nhất phải thực hiện một lần cho lần đầu tiên web/mobile application được mang ra kiểm thử.

State transition coverage

Với một câu hỏi ISTQB như sau, bạn sẽ chọn câu nào?

Để trả lời câu này và những câu hỏi khác như “Kiểm tra đến lúc nào thì dừng?” là một câu hỏi thường gặp trong suốt quá trình dạy lớp ISTQB.

Với những sơ đồ có sự di chuyển lặp lại liên tục như hình dưới thì rất khó xác định điểm dừng. Trong trường hợp này các bạn cần áp dụng một hình thức kiểm thử khác, đó là N-Switch testing và N-Switch coverage (độ bao phủ N-Switch).

(Nguồn: trên mạng internet)

Câu hỏi trên thì mình chọn đáp án D. Vui lòng xem giải thích chi tiết từng bước trong video sau.

Xem cách giải thích chi tiết cho bài này ở đây nhé

N-Switch Testing là gì?

N-Switch testing là một dạng kiểm thử dựa vào chuyển đổi trạng thái. Nhưng ở đây bạn chỉ tập trung vào các thứ tự di chuyển khác nhau đi qua N+1 chuyển đổi (transition).

Với lược đồ mô tả chuyển đổi trạng thái cho TV ở trên, thì mình có thể áp dụng N-Switch testing như sau.

0-switch coverage (test case)

Viết test case cho mỗi chuyển đổi. Cứ MỘT (0+1) chuyển đổi là 1 test case. Mình sẽ có

  1. TC1: TV đang ở trạng thái tắt (Off – S1), bấm Power On, mong đợi TV chuyển sang trạng thái chờ (Stand by – S2)
  2. TC2: TV đang ở trạng thái chờ, bấm Power Off, mong đợi TV chuyển sang trạng thái tắt (S1)
  3. TC3:…

Vậy, mình sẽ có 5 test case để bao phủ 0-switch coverage

Đây là 5 test case bao phủ 0-switch của ví dụ TV ở trên.

1-switch coverage

Viết test case cho mỗi chuyển đổi. Viết các test case đi qua HAI (1+1) chuyển đổi. Mình sẽ có

  1. TC1: TV đang ở trạng thái tắt (Off – S1), bấm Power On rồi bấm RC On (nút On tren remote), mong đợi TV chuyển sang trạng thái Play (TV Play – S3)
  2. TC2: TV đang ở trạng thái chờ, bấm Power Off rồi bấm Power On, mong đợi TV chuyển sang trạng thái Chờ (S2)
  3. TC3:…

Vậy, mình cần phải có tổng cộng 7 test case để bao phủ 1-switch coverage.

Tương tự như vậy bạn có thể xác định tiếp test case để bao phủ 2-switch, 3-switch,…

Nếu bạn có thắc mắc về kiểm thử nói chung và ISTQB, vui lòng bình luận bên dưới, mình sẽ trả lời trong một bài khác.

Happy testing!

Leave a Reply

Your email address will not be published.