- vừa được xem lúc

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

0 0 31

Người đăng: Nguyen Trang

Theo Viblo Asia

1. Kỹ thuật kiểm thử phần mềm là gì?

Kỹ thuật kiểm thử phần mềm giúp bạn thiết kế các trường hợp kiểm thử tốt hơn. Vì kiểm thử toàn diện là không thể nên kỹ thuật kiểm tra thủ công sẽ giúp giảm số lượng các trường hợp kiểm thử được thực thi trong khi tăng phạm vi kiểm thử. Chúng giúp xác định các điều kiện kiểm tra khó nhận biết.

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)

2. 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 có các case:

  • 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

3. 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:

  • 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:

  • 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

4. 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.

5. Đ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ử

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ế testcase, vừa tiết kiệm thời gian vưa tăng độ bao phủ của testcase). Tùy vào spec của từng hệ thống để áp dụng các kỹ thuật phù hợp

Tài liệu tham khảo

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

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 500

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 374

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 335

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 421

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 414