5 kỹ thuật kiểm thử phần mềm thường sử dụng

Để kiểm thử toàn diện theo một cách nào đó thì khó có thể cover hết được, nên các kỹ thuật trong kiểm thử thủ công sẽ giúp chúng ta giảm số lượng các trường hợp kiểm thử được thực thi khi tăng phạm vi quy mô kiểm thử.

Khi áp dụng đúng kỹ thuật kiểm thử thì nó giúp chúng ta xác định được các điều kiện kiểm tra mà mình khó nhận biết thông thường, tránh còn sót case trong quá trình kiểm thử phần mềm.

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.

Dưới đây là các loại kỹ thuật kiểm thử thông dụng:

  • Phân vùng tương đương (Equivalence Class Partitioning)
  • Phân tích giá trị biên (Boundary Value Analysis (BVA) )
  • Bảng quyết định (Decision Table based testing)
  • Đoán lỗi (Error Guessing)
  • Chuyển đổi trạng thái (State Transition)


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

Phân vùng lớp tương đương cho phép bạn phân chia tập hợp các điều kiện kiểm tra thành một phân vùng nên được coi là giống nhau.

Phương pháp kiểm thử phần mềm này chia miền đầu vào của chương trình thành các lớp dữ liệu mà từ đó các trường hợp kiểm thử nên được thiết kế.

Với các giá trị đầu vào chia thành các vùng tương đương:

  • Vùng tương đương hợp lệ: tập hợp các giá trị kiểm thử thỏa mãn điều kiện của hệ thống
  • Vùng tương đương không hợp lệ: Tập hợp các giá trị kiểm thử mô tả trạng thái khác của hệ thống: sai, thiếu, không đúng,...

Mục đích : Giảm đáng kể số lượng test case cần phải thiết kế vì với mỗi lớp tương đương ta chỉ cần test trên các phần tử đại diện.

Thiết kế Test-case bằng phân lớp tương đương tiến hành theo 2 bước:

  • Xác định các lớp tương đương
  • Xác định các ca kiểm thử

Nguyên tắc:

  • 1 lớp các giá trị lớn hơn
  • 1 lớp các giá trị nhỏ hơn
  • n lớp các giá trị hợp lệ


Ví dụ
: Thiết kế testcase cho ô text chỉ cho nhập số nguyên với độ dài ký tự thuộc [1-10] hoặc [20-30]

Với yêu cầu trên ta có các vùng:

  • nhỏ hơn 1 : vùng không hợp lệ
  • [1-10] : vùng hợp lệ
  • lớn hơn 10 và nhỏ hơn 20 : vùng không hợp lệ
  • [20-30] : vùng hợp lệ
  • lớn hơn 30: vùng không hợp lệ
  • Nhập các ký tự không phải số nguyên : vùng không hợp lệ


Vì vậy ta có các case sau:

  • Case hợp lệ:

    • Nhập 5 ký tự

    • Nhập 25 ký tự số

  • Case không hợp lệ:

    • Không nhập vào trường

    • Nhập 15 ký tự

    • Nhập số thập phân

    • Nhập 35 kí tự

    • Nhập ký tự chữ: Tiếng việt, Tiếng anh, Full-size, Half-size

    • Nhập ký tự đặc biệt, space, kí tự Enter

    • Nhập câu lệnh SQL injection, HTML, XSS


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

Phân tích giá trị biên dựa trên việc kiểm thử tại các ranh giới giữa các phân vùng, Chúng ta sẽ tập trung vào các giá trị biên chứ không test toàn bộ dữ liệu. Thay vì chọn nhiều giá trị trong lớp đương tương để làm đại diện, phân tích giá trị biên yêu cầu chọn một hoặc vài giá trị là các cạnh của lớp tương đương để làm điều kiện test.

Chúng ta thường thấy rằng một số lượng lớn lỗi xảy ra tại các ranh giới của các giá trị đầu vào được xác định thay vì các giá trị giữa, còn được gọi là các giá trị biên. Từ đó đưa ra lựa chọn các test cases thực hiện giá trị đầu vào các giá trị biên.

Kỹ thuật thiết kế test cases này bổ sung cho phân vùng tương đương. Kỹ thuật kiểm thử phần mềm này dựa trên nguyên tắc: Nếu một hệ thống hoạt động tốt với các giá trị biên thì nó sẽ hoạt động tốt cho tất cả các giá trị nằm giữa hai giá trị biên.

Phân tích giá trị biên sẽ chọn các giá trị:

  • Giá trị ngay dưới giá trị nhỏ nhất
  • Giá trị nhỏ nhất
  • Giá trị ngay trên giá trị nhỏ nhất
  • Giá trị ngay dưới giá trị lớn nhất
  • Giá trị lớn nhất
  • Giá trị ngay trên giá trị lớn nhất


Ví dụ
: Với ví dụ trên ta có các case test sau:

  • Không nhập ký tự nào (Giá trị ngay dưới giá trị nhỏ nhất vùng 1)
  • Nhập 1 ký tự (giá trị nhỏ nhất vùng 1)
  • Nhập 2 ký tự (giá trị ngay trên giá trị nhỏ nhất vùng 1)
  • Nhập 9 ký tự (giá trị ngay dưới giá trị lớn nhất vùng 1)
  • Nhập 10 ký tự(giá trị lớn nhất vùng 1)
  • Nhập 11 ký tự(giá trị ngay trên giá trị lớn nhất vùng 1)
  • Nhập 19 ký tự (giá trị ngay dưới giá trị nhỏ nhất vùng 2)
  • Nhập 20 ký tự(giá trị nhỏ nhất vùng 2)
  • Nhập 21 ký tự (giá trị ngay trên giá trị nhỏ nhất vùng 2)
  • Nhập 29 ký tự(giá trị ngay dưới giá trị lớn nhất vùng 2)
  • Nhập 30 ký tự(giá trị lớn nhất vùng 2)
  • Nhập 31 ký tự(giá trị ngay trên giá trị lớn nhất vùng 2)


=>
Kết hợp kỹ thuật phân vùng tương đương với phân tích giá trị biên ta có các case test sau:

  • Không nhập ký tự nào
  • Nhập 1 ký tự
  • Nhập 5 ký tự
  • Nhập 10 ký tự
  • Nhập 11 ký tự
  • Nhập 19 ký tự
  • Nhập 20 ký tự
  • Nhập 21 ký tự
  • Nhập 25 ký tự
  • Nhập 30 ký tự
  • Nhập 31 ký tự
  • Nhập số thập phân
  • Nhập ký tự chữ: Tiếng việt, Tiếng anh, Full-size, Half-size
  • Nhập ký tự đặc biệt, space, kí tự Enter
  • Nhập câu lệnh SQL injection, HTML, XSS


3. Bảng quyết định

Bảng quyết định còn được gọi là bảng Nguyên nhân – Kết quả (Cause-Effect).

Kỹ thuật kiểm thử phần mềm này được sử dụng cho các chức năng cần sự kết hợp của các yếu tố đầu vào các biến.

Ví dụ: Nút Submit phải được enable nếu người dùng đã nhập tất cả các trường bắt buộc.

Đầu tiên là xác định đấu ra của các chức năng có phụ thuộc vào sự kết hợp của các đầu vào. Nếu có tập hợp kết hợp đầu vào lớn, thì hãy chia nó thành các tập hợp nhỏ hơn hữu ích cho việc quản lý bảng quyết định.

Đối với mọi chức năng, cần tạo một bảng và liệt kê tất cả các loại kết hợp đầu vào và đầu ra tương ứng. Điều này giúp xác định các điều kiện bị tester bỏ qua.

Các bước để tạo bảng quyết định:

  • Nhập đầu vào theo hàng
  • Nhập tất cả các quy tắc trong cột
  • Điền vào bảng với sự kết hợp của đầu vào
  • Trong hàng cuối cùng, ghi chú đầu ra so với kết hợp đầu vào.


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

Các kỹ thuật kiểm thử phần mềm | Anh Tester


4. Đoán lỗi

Đoán lỗi là một kỹ thuật kiểm thử phần mềm dựa trên việc đoán lỗi có thể chiếm ưu thế trong code. Đây là một kỹ thuật dựa trên kinh nghiệm, trong đó nhà phân tích kiểm thử sử dụng kinh nghiệm của mình để đoán phần có vấn đề hoặc có lỗi của ứng dụng kiểm thử.

Kỹ thuật xác định danh sách các lỗi có thể xảy ra hoặc các tình huống dễ xảy ra lỗi. Sau đó, người kiểm thử viết test cases để tìm kiếm những lỗi đó. Để thiết kế các test cases dựa trên kỹ thuật kiểm thử phần mềm này, nhà phân tích có thể sử dụng các kinh nghiệm trong quá khứ để xác định các điều kiện.

Cách đoán lỗi:

  • Tester nên sử dụng kinh nghiệm trước đây để kiểm thử các ứng dụng tương tự
  • Hiểu biết về hệ thống đang kiểm thử
  • Kiến thức về các lỗi thực hiện điển hình
  • Nhớ những chức năng phức tạp trước đây
  • Đánh giá lịch sử dữ liệu và kết quả kiểm thử

5. Chuyển đổi trạng thái

Trong kỹ thuật Chuyển đổi trạng thái, các thay đổi trong điều kiện đầu vào sẽ thay đổi trạng thái của Ứng dụng đang được Kiểm thử (Application Under Test - AUT). Kỹ thuật kiểm thử này cho phép người kiểm thử kiểm thử những cách xử lý của AUT. Tester có thể thực hiện hành động này bằng cách nhập các điều kiện đầu vào khác nhau theo trình tự.

Nhóm kiểm thử cung cấp các giá trị kiểm thử đầu vào tích cực cũng như tiêu cực để đánh giá xử lý của hệ thống.

Cách thực hiện kỹ thuật chuyển đổi trạng thái:

  • Chuyển đổi trạng thái nên được sử dụng khi nhóm kiểm thử đang kiểm thử ứng dụng cho một bộ giá trị đầu vào giới hạn.
  • Kỹ thuật nên được sử dụng khi nhóm kiểm thử muốn kiểm thử chuỗi các sự kiện xảy ra trong ứng dụng đang kiểm thử.

Ví dụ:

Trong ví dụ sau, nếu người dùng nhập mật khẩu hợp lệ trong bất kỳ ba lần thử đầu tiên sẽ đăng nhập thành công. Nếu người dùng nhập mật khẩu không hợp lệ trong lần thử đầu tiên hoặc lần thứ hai, người dùng sẽ được nhắc nhập lại mật khẩu. Khi người dùng nhập mật khẩu không đúng lần thứ 3, tài khoản sẽ bị chặn.

Sơ đồ chuyển đổi trạng thái:

Sơ đồ chuyển đổi trạng thái (State Transition)

Trong sơ đồ này, khi người dùng cung cấp số PIN chính xác sẽ được chuyển sang trạng thái được cấp quyền truy cập. Bảng sau được tạo dựa trên sơ đồ trên:

Bảng chuyển đổi trạng thái:

Trạng thái Mã PIN chính xác PIN không chính xác
S1: Bắt đầu S5 S2
S2: Thử lại lần 1 S5 S3
S3: Thử lại lần 2 S5 S4
S4: Thử lại lần 3 S5 S6
S5: Quyền truy cập được cấp - -
S6: Tài khoản bị chặn - -

Trong bảng đã cho ở trên, khi người dùng nhập mã PIN chính xác, trạng thái được chuyển sang "Quyền truy cập được cấp". Nếu người dùng nhập mật khẩu không chính xác sẽ được chuyển sang trạng thái tiếp theo. Nếu người dùng nhập mật khẩu không chính xác lần thứ 3 sẽ đạt đến trạng thái bị chặn tài khoản.


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.

Tài liệu tham khảo

https://www.guru99.com/software-testing-techniques.html

  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu