Tổng quan về Test Design Technique

Tram Ho

TEST DESIGN TECHNIQUE

Test design là gì?
Kỹ thuật kiểm thử phần mềm giúp chúng ta thiết kế một cách đầy đủ nhất các trường hợp kiểm thử. Vì việc thử nghiệm toàn diện là không thể (EXHAUSTIVE testing is not possible); Kỹ thuật kiểm tra thủ công (Manual Testing Techniques) giúp làm giảm số lượng các trường hợp kiểm thử mà vẫn đảm bảo chất lượng test, giúp xác định các phạm vi và điều kiện test mà khó nhận biết.

Test design là tài liệu phác thảo những case cần có trong test case, nói cách khác, nó là dạng rút gọn của test case. Test design có một số đặc điểm sau:
Thể hiện rõ quan điểm test những case cần có để cover Spec
Ngắn gọn, dễ hiểu.

Các dạng test design technique:
Static Testing là việc kiểm tra từng phần của software theo các phương thức sau:

  • Document reviews: các review về tài liệu.

  • Informal review là quá trình đánh giá mà không cần hồ sơ cuộc họp đang lưu trữ, cũng không cần ghi chép lại nội dung cuộc họp. Nó được thực hiện ở bất cứ 1 tài liệu nào.

  • Informal review chủ yếu được thực hiện giữa 2 người ở bất kỳ đâu có thể là quán cà phê, căng-ten,…
    Lợi ích mà informal review mang lại:
    +Không tốn kém
    +Tiết kiệm thời gian
    +Không yêu cầu đào tạo người tham gia
    +Không cần tài liệu hay lưu trữ hồ sơ

  • Walkthroughs: Kiểm tra từ đầu đến cuối.

  • Inspection: kiểm duyệt.

  • Feasibility analysis or any other form of analysis to determine if the software is what it should be or not: Phân tích tính khả thi hay bất kỳ các phân tích khác để chỉ ra software cần cái gì hay không cần cái gì

  • Static analysis – Code review:

    • Mục tiêu của static analysis by tool là để tìm ra lỗi trong code và mô hình phát triển phần mềm
    • Static analysis được hiện bằng tool và không cần chạy code, chỉ ra các lỗi mà khó tìm được trong dynamic testing
      Giống nhw review , Static analysis tìm ra defects hơn là failures, dựa trên phân tích code (control flow, data flow)
      => Là kỹ thuật kiểm tra các tài liệu (review) và tự động phân tích cú pháp (static analyse) của code hoặc các tài liệu khác của dự án mà không cần chạy code.
  • Dynamic Testing là test thực tế và xảy ra trên chính sản phẩm và không phải trên 1 vật hoặc 1 đại diện của sản phẩm. Các kỹ thuật Dynamic Testing:

    • Unit Testing
    • Integration Testing
    • System Testing

– Structure-based (white box test)
– Specification-based(black box test) – Kiểm thử hộp đen:
Là phương pháp test mà người test không biết bên trong code có gì và có chức năng như thế nào. Các lỗi thường phát hiện khi dùng phương pháp kiểm thử hộp đen là:Chức năng không chính xác hoặc thiếu; Lỗi giao diện; Lỗi trong cấu trúc dữ liệu hoặc truy cập cơ sở dữ liệu bên ngoài; Hành vi hoặc hiệu suất lỗi; Khởi tạo và chấm dứt các lỗi.
Ưu điểm của phương pháp này là không cần người kiểm thử phải có trình độ cao, tuy nhiên, việc viết kịch bản test sẽ có nhiều khó khăn và khả năng lạc lối trong khi test là khá lớn, ngoài ra dữ liệu đầu vào cần cho việc test cần phải là một mẫu lớn.

  • Các kỹ thuật cần có:
    Phân vùng tương đương (Equivalence Partitioning): là phương pháp chia miền đầu vào của một chương trình thành các lớp dữ liệu, từ đó suy dẫn ra các ca kiểm thử, thường được tiến hành theo 2 bước sau:
    B1: phân các vùng dữ liệu thành các vùng điều kiện tương đương
    B2: xác định các ca kiểm thử

  • Lưu ý khi phân vùng điều kiện thường sẽ có các phần:

    • Điều kiện đầu vào: tập hợp các giá trị đúng sai
    • Lớp tương đương hợp lệ: là các mô tả đầu vào hợp lệ của chương trình
    • Lớp tương đương không hợp lệ: là các mô tả đầu vào không hợp lệ của chương trình
      Mục đích: giảm thiểu số lượng test case mà vẫn đảm bảo các case bao phủ các yêu cầu
  • Nguyên tắc xác định các lớp tương đương:

    • Nếu điều kiện đầu vào định rõ giới hạn của một mảng thì chia vùng tương đương thành 3 tình huống:
      Xác định một lớp tương đương hợp lệ.
      Xác định hai lớp tương đương không hợp lệ.
      VD: giá trị của mật khẩu phải từ 6-24 ký tự, vậy ta có 1 lớp giá trị tương đương hợp lệ là [6-24], 2 lớp tương đương không hợp lệ là: <6 và 24>

    • Nếu điều kiện đầu vào là một giá trị xác định thì chia vùng tương đương thành 3 tình huống:
      Một lớp tương đương hợp lệ.
      Hai lớp tương đương không hợp lệ.
      VD: test font chữ = 12, vậy ta có 1 lớp giá trị tương đương hợp lệ là 12, 2 lớp tương đương không hợp lệ là: <12 và 12>

    • Nếu điều kiện đầu vào chỉ định là một tập giá trị thì chia vùng tương đương thành 2 tình huống như sau:
      Một lớp tương đương hợp lệ.
      Một lớp tương đương không hợp lệ.
      VD:
      Nếu điều kiện đầu vào xác định là một kiểu đúng sai thì chia vùng tương đương thành 2 tình huống:
      Một lớp tương đương hợp lệ.
      Một lớp tương đương không hợp lệ.

Phân tích giá trị biên (Boundary Value Analysis): test các giá trị biên của các vùng dữ liệu vào và ra. Các giá trị biên có thể là: Giá trị nhỏ nhất; Giá trị ngay trên giá trị nhỏ nhất; Giá trị bình thường Giá trị ngay dưới giá trị lớn nhất; Giá trị lớn nhất
Ví dụ: a <= y1 <=b thì sẽ chọn a, a+1, a+b/2, b-1, b.

**Sử dụng bảng quyết định: **phương pháp này khắc phục được khuyết điểm của 2 phương pháp trên, đó là kiểm soát được sự kết hợp của của các giá trị đầu vào bằng cách sử dụng mô hình quan hệ logic nguyên nhân – kết quả cho các thành phần phần mềm

Experience-based: test dựa trên kinh nghiệm và kiến thức của QA

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo