ISTQB – Chương 4 – Mục 4.3.1 – Kỹ thuật dựa trên đặc tả (hoặc hộp đen) – Phần 2/4

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

Phân tích giá trị biên (BVA) dựa trên việc kiểm thử tại các ranh giới giữa các phân vùng. Nếu bạn đã từng thực hiện “kiểm thử phạm vi”, thì có lẽ bạn đang sử dụng kỹ thuật phân tích giá trị biên, ngay cả khi bạn không biết về nó. Lưu ý rằng có cả ranh giới hợp lệ (trong phân vùng hợp lệ) và ranh giới không hợp lệ (trong phân vùng không hợp lệ).

Ví dụ, hãy xem xét một máy in có tùy chọn nhập số lượng

Để áp dụng phân tích giá trị biên, chúng ta sẽ lấy giá trị tối thiểu và tối đa (ranh giới) từ phân vùng hợp lệ (1 và 99 trong trường hợp này) cùng với các bản sao được tạo, từ 1 đến 99. Giá trị đầu tiên hoặc giá trị cuối cùng tương ứng trong mỗi phân vùng không hợp lệ liền kề với phân vùng hợp lệ (0 và 100 trong trường hợp này). Trong ví dụ này, chúng ta sẽ có ba phép thử phân vùng tương đương (một từ mỗi trong ba phân vùng) và bốn phép thử giá trị biên.

Hãy xem xét hệ thống ngân hàng được mô tả trong phần về phân vùng tương đương.

Bởi vì các giá trị ranh giới được xác định là các giá trị ở cạnh của phân vùng, các giá trị ranh giới sau được xác định: -$0.01 (giá trị ranh giới không hợp lệ vì nó nằm ở cạnh của phân vùng không hợp lệ), $0.00, $100.00, $100.01, $999.99 và $1000.00 là các giá trị ranh giới hợp lệ.

Vì vậy, bằng cách áp dụng phân tích giá trị biên, sẽ có sáu giá trị kiểm thử cho các giá trị biên. Hãy so sánh những gì người kiểm  thử ngây thơ Robbie đã làm: anh ấy thực sự đã thực hiện được một trong các giá trị ranh giới ($100) mặc dù đó là do tình cờ hơn là do thiết kế. Vì vậy, ngoài việc chỉ kiểm thử một nửa số phân vùng, Robbie chỉ kiểm tra 1/6 số ranh giới (vì vậy sẽ kém hiệu quả hơn trong việc tìm ra bất kỳ khiếm khuyết nào về ranh giới).

Nếu xem xét tất cả các kiểm thử cho cả phân vùng tương đương và phân tích giá trị biên, thì các kỹ thuật này cho tổng cộng chín bài kiểm thử (so với 16 mà Robbie đã thực hiện), vì vậy chúng vẫn hiệu quả hơn đáng kể cũng như hiệu quả hơn gấp ba lần (thử nghiệm bốn phân vùng và sáu ranh giới, do đó có tổng cộng 10 điều kiện so với ba điều kiện).

Lưu ý rằng trong ví dụ về lãi suất ngân hàng, có các phân vùng hợp lệ bên cạnh các phân vùng hợp lệ khác. Nếu xem xét một giá trị biên không hợp lệ cho lãi suất 3%, chúng ta có -$0.01, nhưng còn giá trị ngay trên $100.00 thì sao? Giá trị $100.01 không phải là một giá trị biên không hợp lệ; nó thực sự là một giá trị biên hợp lệ bởi vì nó rơi vào một phân vùng hợp lệ. Vì vậy, phân vùng cho 5% chẳng hạn, không có giá trị biên không hợp lệ được liên kết với các phân vùng bên cạnh nó.

Một cách hay để biểu diễn các phân vùng và giá trị biên hợp lệ và không hợp lệ là trong một bảng, chẳng hạn như Bảng 4.1:

Bằng cách hiển thị các giá trị trong bảng, chúng ta có thể thấy rằng không có mức lãi suất tối đa nào được chỉ định cho mức lãi suất 7%. Muốn biết giá trị tối đa của số dư tài khoản là bao nhiêu để chúng ta có thể kiểm tra giá trị biên đó. Đây được gọi là “giá trị biên mở”, bởi vì một trong các mặt của phân vùng được để mở, tức là không được xác định. Nhưng điều đó không có nghĩa là có thể bỏ qua nó – ta vẫn nên thử kiểm thử nó, nhưng bằng cách nào?

Các giá trị biên mở khó kiểm thử hơn, nhưng có nhiều cách để tiếp cận chúng. Trên thực tế, giải pháp tốt nhất cho vấn đề là tìm ra giá trị biên nên được chỉ định là gì! Cách tiếp cận là quay trở lại đặc tả kỹ thuật để xem liệu mức tối đa đã được nêu ở đâu khác cho số dư hay chưa. Nếu vậy, thì chúng ta biết giá trị biên là gì. Một cách tiếp cận khác có thể là điều tra các khu vực liên quan khác của hệ thống. Ví dụ: trường chứa số dư tài khoản có thể chỉ có sáu chữ số cộng với hai chữ số thập phân. Điều này nghĩa là số dư tài khoản tối đa là $999999.99, ta có thể sử dụng số tiền đó làm giá trị biên tối đa. Nếu thực sự không thể tìm thấy bất cứ điều gì về giá trị biên này, thì có lẽ ta cần sử dụng cách tiếp cận trực quan hoặc dựa trên kinh nghiệm để thăm dò các giá trị lớn khác nhau đang cố gắng làm cho nó thất bại.

Chúng ta cũng có thể cố gắng tìm hiểu về giá trị biên mở thấp hơn (số dư âm thấp nhất là gì?). Mặc dù chúng ta đã bỏ qua điều này trong ví dụ của mình, nhưng việc đặt nó trong bảng cho thấy rằng  ta đã bỏ qua nó, vì vậy sẽ giúp ta kỹ lưỡng hơn nếu ta muốn.

Đại diện cho các phân vùng và giá trị biên trong một bảng như thế này cũng giúp dễ dàng xem liệu bạn đã kiểm tra từng cái hay chưa (nếu đó là mục tiêu của bạn).

Mở rộng phân vùng tương đương và phân tích giá trị biên bằng cách sử dụng phân vùng tương đương và phân tích giá trị biên, chúng ta đã xác định các điều kiện có thể được kiểm thử, tức là các phân vùng và giá trị biên. Các kỹ thuật được sử dụng để xác định các điều kiện kiểm thử, có thể ở mức khá cao (ví dụ: “tài khoản lãi suất thấp”) hoặc ở mức chi tiết (ví dụ: “giá trị $100.00”). Chúng ta đã xem xét việc áp dụng các kỹ thuật này cho các dãy số. Tuy nhiên, chúng ta cũng có thể áp dụng các kỹ thuật này cho những thứ khác.

Ví dụ: nếu bạn đang đặt chuyến bay, bạn có thể chọn vé Phổ thông/Phổ thông, Phổ thông cao cấp, Thương gia hoặc Hạng nhất. Mỗi trong số này là một phân vùng tương đương theo đúng nghĩa của nó và cần được kiểm thử, nhưng sẽ không có ý nghĩa gì khi nói về giá trị biên cho loại phân vùng này, là một tập hợp các thứ hợp lệ. Phân vùng không hợp lệ sẽ là một nỗ lực để nhập bất kỳ loại hạng chuyến bay nào khác (ví dụ: “Nhân viên”). Nếu trường này được triển khai bằng cách sử dụng danh sách thả xuống (drop list), thì bạn sẽ không thể nhập bất kỳ thứ gì khác vào, nhưng đây vẫn là một kiểm thử tốt để thử ít nhất một lần trong các trường thả xuống. Khi bạn đang phân tích cơ sở kiểm thử (ví dụ: đặc tả yêu cầu), phân vùng tương đương có thể giúp xác định nơi danh sách thả xuống sẽ phù hợp.

Khi cố gắng xác định một lỗi, bạn có thể thử một vài giá trị trong một phân vùng.

Nếu điều này dẫn đến hành vi khác mà bạn mong đợi là giống nhau, thì có thể có hai (hoặc nhiều) phân vùng mà ban đầu bạn nghĩ rằng chỉ có một.

Chúng ta có thể áp dụng phân vùng tương đương và phân tích giá trị biên cho tất cả các cấp độ kiểm thử. Các ví dụ ở đây ở mức khá chi tiết có lẽ phù hợp nhất cho kiểm thử thành phần hoặc trong kiểm thử chi tiết của một màn hình.

Ví dụ: ở cấp hệ thống, có thể có ba cấu hình cơ bản mà người dùng có thể chọn khi thiết lập hệ thống, với một số tùy chọn cho mỗi cấu hình. Các cấu hình cơ bản có thể là quản trị viên hệ thống, người quản lý và tổng đài viên. Chúng đại diện cho ba phân vùng tương đương có thể được kiểm thử. Chẳng hạn, chúng ta có thể gặp sự cố nghiêm trọng nếu quên kiểm thử cấu hình cho quản trị viên hệ thống.

Ta cũng có thể áp dụng phân vùng tương đương và phân tích giá trị biên nhiều lần cho cùng một mục đặc tả. Ví dụ: nếu hệ thống điện thoại nội bộ của một công ty có 200 điện thoại có số máy nhánh gồm 3 chữ số từ 100 đến 699, có thể xác định các phân vùng và ranh giới sau:

  • Chữ số (ký tự 0 đến 9) với phân vùng không hợp lệ chứa các chữ số không
  • Số chữ sốlà  3 (vì vậy các giá trị biên không hợp lệ là số có 2 chữ số và 4 chữ số)
  • Phạm vi của các số mở rộng là 100 đến 699 (vì vậy các giá trị biên không hợp lệ là 099 và 700)
  • Tiện ích mở rộng đang được sử dụng và tiện ích mở rộng không được sử dụng (hai phân vùng hợp lệ, không có giá trị biên)
  • Số mở rộng thấp nhất và cao nhất đang được sử dụng cũng có thể được sử dụng làm giá trị biên

Một trường hợp kiểm thử có thể kiểm thử nhiều hơn một trong các phân vùng/giá trị biên này. Ví dụ: Tiện ích mở rộng 409 đang được sử dụng sẽ kiểm thử bốn phân vùng hợp lệ: chữ số, số lượng chữ số, phạm vi hợp lệ và phân vùng “đang sử dụng”. Nó cũng kiểm thử các giá trị biên cho các chữ sốtừ 0 đến 9.

Chúng ta cần bao nhiêu trường hợp kiểm thử để kiểm tra tất cả các phân vùng này và ranh giới, cả hợp lệ và không hợp lệ? Sẽ cần một số không có chữ số, số có 2 chữ số và số có 4 chữ số, các giá trị 99, 100, 699 và 700, một phần mở rộng không được sử dụng và có thể là phần mở rộng thấp nhất và cao nhất được sử dụng. Đây là mười hoặc mười một trường hợp kiểm thử – con số chính xác sẽ phụ thuộc vào những gì chúng ta có thể kết hợp trong một trường hợp kiểm thử.

So sánh điều này với ví dụ về số có một chữ số trong Mục 1.1.6. Ở đây, ta thấy rằng cần 68 lần kiểm thử chỉ để kiểm tra trường một chữ số(nếu muốn kiểm tra kỹ lưỡng trường đó). Sử dụng phân vùng tương đương và phân tích giá trị biên giúp xác định các bài kiểm thử có nhiều khả năng tìm thấy lỗi nhất và sử dụng ít trường hợp kiểm thử hơn để tìm ra chúng. Điều này là do nội dung của một phân vùng đại diện cho tất cả các giá trị có thể. Thay vì kiểm thử tất cả mười chữ số riêng lẻ, ta kiểm tra một chữ số ở giữa (ví dụ: 4) và hai cạnh (0 và 9). Thay vì kiểm thử mọi ký tự không phải chữ số có thể có, người ta có thể đại diện cho tất cả chúng. Vì vậy, có bốn bài kiểm tra (thay vì 68) cho trường một chữ số.

Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây

Ezami

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *