HomeOur Team
Các kỹ thuật chia Test case
Testing
Các kỹ thuật chia Test case
son.le
son.le
September 17, 2020
4 min

Lời nói đầu

Như các bạn đã biết trong quy trình sản xuất phần mềm vị trí của tester đóng một vai trò hết sức quan trọng. Nhưng càng ngày vị trí tester trong các team phát triển càng giảm đi với sự góp sức của các công cụ và quy trình review kiểm soát chất lượng. Nhưng điều đó không đồng nghĩa với việc Testing ít đi và tầm quan trọng của testing giảm. Do vậy Developer cần kiêm thêm công việc của testing. Sau đây tôi xin được chia sẻ một số kỹ thuật chia testcase. Bài viết dựa trên kinh nghiệm bản thân và có tham khảo các nguồn trên internet. Ở bài viết này tôi không bàn sâu về vấn đề tầm quan trọng của testing trong quy trình sản xuất phần mềm và chú trọng vào các kỹ thuật và cách sử dụng với các bài toán thực tế.

Kỹ thuật kiểm thử hộp đen :

  • Định nghĩa : Kiểm thử hộp đen là à phương pháp test dựa trên đầu vào và đầu ra của chương trình để test mà không quan tâm tới code bên trong được viết ra sao. Tester xem phần mềm như là một hộp đen. Kiểm thử hộp đen không yêu cầu kỹ sư kiểm thử cần phải có bất kỳ kiến thức về mã hoặc thuật toán của chương trình. Nó kiểm tra các chức năng của hệ thống tức là những gì hệ thống được cho là cần phải làm dựa trên các Đặc tả yêu cầu. Các trường hợp kiểm thử thường được xây dựng xung quanh đó.

  • Tập trung vào kiểm tra hệ thống LÀM GÌ (what) chứ không kiểm tra hệ thống LÀM NHƯ THẾ NÀO (how).

  • Tập trung vào các chức năng của hệ thống.

  • Nó cũng được biết đến với tên functional testing (kiểm tra chức năng).

Kỹ thuật test hộp đen :

Có 5 kỹ thuật chính :

  • Phân vùng tương đương (Equivalence partition)
  • Giá trị biên (Boundary values Analysis)
  • Bảng quyết định (Decision table)
  • Sơ đồ chuyển trạng thái (State transition)
  • Cặp đôi thần kỳ (Pairwise testing)

Trong phạm vi bài viết này tôi sẽ bàn chính về 3 kỹ thuật đầu tiên. Mong các bạn có thể áp dụng vào công việc hằng ngày để có thể tự chia testcase và sefttest.

1. Phân vùng tương đương :

  • Định nghĩa: là kĩ thuật chia các miền của dữ liệu đầu vào thành từng phần nhỏ, sau đó sẽ viết kịch bản kiểm thử cho từng phần.

  • Bài toán : Update giỏ hàng . Điều kiện ràng buộc: Trường Qty (Quantity) chỉ cho phép nhập số nguyên từ 1 đến 100.

  • Cách làm: Tiến hành theo 2 bước:

    - B1: Xác định các lớp tương đương theo đầu vào hoặc đầu ra. Với mỗi điều kiện đầu vào hoặc đầu ra được mô tả trong đặc tả yêu cầu thì lấy ra ít nhất 2 lớp:
        * 1 lớp thoả mãn điều kiện
        * 1 lớp không thoả mãn điều kiện
    - B2: Thiết kế TC dựa vào các lớp tương đương trên.
    

    Từ bài toán trên ta phân ra các vùng tương đương cho trường hợp nhập vào giá trị của trường Qty như sau:

TCGiá trịKết qủa mong đợi
1Nhập giá trị < 1 (nhập 0)Hiển thị thông báo “Số lượng nhập phải lớn hơn hoặc bằng 1”
2Nhập giá trị trong khoảng từ 1 đến 100 (nhập 10)Hệ thống tính toán lại Sub total = Số lượng * Đơn giá
3Nhập giá trị > 100 (nhập 101)Hiển thị thông báo “Số lượng nhập phải nhỏ hơn hoặc bằng 100”
  • Ưu điểm:
    • Mỗi vùng tương đương chỉ cần test trên các phần tử đại diện nên số lượng TC giảm -> giảm thời gian viết TC -> giảm thời gian test.
  • Nhược điểm:
    • Không phải bài toán nào cũng áp dụng được PP này
    • Nếu chỉ chọn các giá trị ở khoảng giữa sẽ bị lỗi ở các giá trị biên

2. Phân tích giá trị biên

  • Định nghĩa :

    • Là tiến trình lựa chọn test case (hoặc test data) bằng cách tìm hiểu ranh giới giữa điều kiện hợp lệ và không hợp lệ.
    • Check cận trên và cận dưới ngoài các điểm ranh giới
  • Cách làm:

    • Xác định các điểm biên [a,b]

    • Thiết kế TC dựa vào các điểm biên

      TCGiá trịKết qủa mong đợi
      1a-1Không hợp lệ
      2aHợp lệ
      3bHợp lệ
      4b+1Không hợp lệ
  • Ví dụ:

    • Từ bài toán nhập giá trị vào trường Username, áp dụng vào Phân tích giá trị biên ta có bảng kết quả như sau:

      TCGiá trịKết quả mong đợi
      1Nhập 5 kí tựKhông hợp lệ
      2Nhập 6 kí tựHợp lệ
      3Nhập 20 kí tựHợp lệ
      4Nhập 21 kí tựKhông hợp lệ
  • Ưu điểm:

    • Phát hiện được lỗi tiềm ẩn của hệ thống tại các tập hợp biên.
    • Không phải test toàn bộ tập hợp trong vùng tương đương -> Tiết kiệm được thời gian.
  • Nhược điểm:

    • PP này chỉ hiệu quả trong trường hợp các đối số đầu vào độc lập với nhau và các đối số có miền hữu hạn giá trị.

P/S : Nên kết hợp 2 phương pháp trên vì :

- Khi test theo giá trị biên, thực chất bạn đã test cả giá trị trong Phân vùng tương đương.
- Tuy nhiên, việc test thêm giá trị trong phân vùng tương đương sẽ tăng độ tin cậy đối với khách hàng nhiều hơn.

3. Bảng quyết định (Decision Table)

  • Định nghĩa: Bảng quyết định là một kỹ thuật test được sử dụng để kiểm tra các hành vi hệ thống (system behavior) với các cách kết hợp input đầu vào khác nhau. Đây là một cách tiếp cận có hệ thống, kết quả của các kết hợp đó và hành vi hệ thống tương ứng của chúng (output) sẽ được ghi lại dưới dạng bảng. Đó cũng là lý do tại sao bảng quyết định còn được gọi là Bảng hiệu ứng nguyên nhân - Cause-Effect table.

  • Cách làm:

    - Liệt kê toàn bộ điều kiện đầu vào/Input
    - Tính toán số lượng các kết hợp (Rules)
    - Đặt toàn bộ các kết hợp vào bảng
    - Giảm số lượng các kết hợp và quyết định test case.
    
  • Ví dụ: Xác định test case cho bài toán khách hàng đến mở thẻ tín dụng với các điều kiện sau:

    • Nếu bạn là một khách hàng mới, đến mở thẻ tín dụng, bạn sẽ được giảm giá 15%.

    • Nếu bạn là khách hàng cũ, và có thẻ Vip, bạn sẽ được giảm giá 10%.

    • Nếu bạn có Coupon, bạn sẽ được giảm giá 20% (nhưng nó không được sử dụng giảm giá cùng với‘khách hàng mới.

    • Việc giảm giá có thể được cộng nếu như phù hợp.

    • Bước 1:

      • Liệt kê các điều kiện đầu vào

        Điều kiện
        Khách hàng mới (15%)
        Vip card (10%)
        Coupon (20%)
    • Bước 2:

      • Tính toán số lượng các kết hợp

        Điều kiệnR1R2R3R4R5R6R7R8
        Khách hàng mới (15%)
        Vip card (10%)
        Coupon (20%)
        Kết quả
        Giảm giá
    • Bước 3:

      • Đặt toàn bộ các kết hợp vào bảng

        Điều kiệnR1R2R3R4R5R6R7R8
        Khách hàng mới (15%)TTTTFFFF
        Vip card (10%)TTFFTTFF
        Coupon (20%)TFTFTFTF
        Kết quả
        Giảm giáXX20(?)153010200
    • Bước 4: Giảm số lượng các kết hợp và chọn Test case.

      • Nhìn vào Bảng ra quyết định ta có thể thấy: R1 và R2 có kết quả tương đương nhau với cùng điều kiện → Có thể giảm một trong hai TC này.
      • Như vậy, nhìn vào bảng ta có thể chọn các TC như sau: R1, R3, R4, R5, R6, R7.
  • Ưu điểm:

    • Mô tả các qui tắc nghiệp vụ phức tạp dưới dạng dễ đọc và dễ kiểm soát.
    • Xác định số test case tối thiểu với độ bao phủ tối đa.
  • Nhược điểm:

    • Nếu có quá nhiều kết hợp, chúng ta sẽ ko thể test tất cả các kết hợp đó.

Tags

#testcase#092020#blackbox testing
son.le

son.le

Developer

Related Posts

Những yếu tố để trờ thành một tester chuyên nghiệp
Những yếu tố để trờ thành một tester chuyên nghiệp
September 16, 2020
4 min
Sự khác biệt giữa Data Analyst, Data Engineer và Data Scientist
Others
Sự khác biệt giữa Data Analyst, Data Engineer và Data Scientist
September 28, 2020
1 min
Imperative và Declarative trong Swift
Articles
Imperative và Declarative trong Swift
September 28, 2020
2 min
iOS 14 SDK có gì mới
News
iOS 14 SDK có gì mới
September 25, 2020
5 min
© 2021, All Rights Reserved.

Quick Links

HomeOur Team

Social Media