Nội dung sẽ có trong bài thi ISTQB Foundation (CTFL)
- Viết test case (kịch bản kiểm thử) từ các mô hình phần mềm đã cho bằng kỹ thuật thiết kế kiểm thử sau: (K3)
a) phân vùng tương đương;
b) phân tích giá trị biên;
c) bảng quyết định;
d) thử nghiệm chuyển đổi trạng thái. - Hiểu mục đích chính của từng kỹ thuật trong bốn kỹ thuật, cấp độ và loại kiểm thử nào có thể sử dụng kỹ thuật này và cách thức phạm vi bao phủ có thể đo lường được. (K2)
- Hiểu khái niệm về kiểm thử theo kịch bản sử dụng và lợi ích của nó. (K2)
Trong phần này, chúng ta sẽ xem xét chi tiết bốn kỹ thuật dựa trên đặc điểm kỹ thuật hoặc kỹ thuật hộp đen. Bốn kỹ thuật này ở cấp độ K3 trong Giáo trình – điều này có nghĩa là cần có khả năng sử dụng các kỹ thuật này để thiết kế các kịch bản kiểm thử. Chúng ta cũng sẽ đề cập ngắn gọn (không ở cấp độ K3) kỹ thuật kiểm thử theo kịch bản sử dụng dựa trên đặc điểm kỹ thuật. Trong Phần 4.4, chúng ta sẽ xem xét các kỹ thuật dựa trên cấu trúc ở cấp độ K3.
Trong phần này, hãy tìm hiểu định nghĩa của các thuật ngữ: phân tích giá trị biên (boundary value analysis), kiểm thử bảng quyết định (decision table testing), phân vùng tương đương (equivalence partitioning), kiểm thử trạng thái chuyển đổi (state transition testing) và kiểm thử kịch bản sử dụng (use case testing).
Bốn kỹ thuật dựa trên đặc điểm kỹ thuật sẽ được trình bày chi tiết là:
- Phân vùng tương đương;
- Phân tích giá trị biên;
- Bảng quyết định;
- Kiểm thử chuyển trạng thái.
Lưu ý rằng chúng ta sẽ cùng nhau thảo luận về hai vấn đề đầu tiên, bởi vì chúng có liên quan chặt chẽ với nhau.
Phân vùng tương đương và phân tích giá trị biên
Phân vùng tương đương
Phân vùng tương đương (EP) là một kỹ thuật hộp đen dựa trên đặc tả toàn diện. Nó có thể được áp dụng ở bất kỳ cấp độ thử nghiệm nào và thường là một kỹ thuật tốt để sử dụng đầu tiên. Đây là một cách tiếp cận thông thường để kiểm tra, phổ biến đến mức hầu hết các kiểm thử viên thực hành nó một cách không chính thức mặc dù họ có thể không nhận ra điều đó. Tuy nhiên, mặc dù sử dụng kỹ thuật này một cách không chính thức vẫn tốt hơn là không sử dụng, nhưng tốt hơn hết là sử dụng kỹ thuật này một cách chính thức để đạt được toàn bộ lợi ích mà nó có thể mang lại.
Kỹ thuật này sẽ được tìm thấy trong hầu hết các cuốn sách về kiểm thử, bao gồm [Myers, 1979] và [Copeland, 2003].
Ý tưởng đằng sau kỹ thuật này là phân chia (tức phân vùng) một tập hợp các điều kiện kiểm thử thành các nhóm hoặc tập hợp có thể được coi là giống nhau (tức là hệ thống sẽ xử lý chúng một cách tương đương), gọi là “phân vùng tương đương”. Các phân vùng tương đương còn được gọi là các lớp tương đương – hai thuật ngữ này có nghĩa hoàn toàn giống nhau.
Kỹ thuật phân vùng tương đương yêu cầu ta chỉ cần kiểm thử một điều kiện từ mỗi phân vùng. Điều này là do chúng ta giả định rằng tất cả các điều kiện trong một phân vùng sẽ được phần mềm xử lý theo cùng một cách. Nếu một điều kiện trong một phân vùng hoạt động, chúng ta cho rằng tất cả các điều kiện trong phân vùng đó sẽ hoạt động và do đó, có rất ít điểm để kiểm thử bất kỳ điều kiện nào trong số những điều kiện khác.
Ngược lại, nếu một trong các điều kiện trong một phân vùng không hoạt động, thì chúng ta cho rằng không có điều kiện nào trong phân vùng đó sẽ hoạt động, nên một lần nữa sẽ không có ích gì trong việc kiểm thử thêm bất kỳ điều kiện nào trong phân vùng đó. Tất nhiên, đây là những giả định đơn giản hóa có thể không phải lúc nào cũng đúng nhưng nếu viết chúng ra, thì ít nhất nó cũng cho người khác cơ hội thách thức những giả định đã đưa ra và hi vọng sẽ giúp xác định các phân vùng tốt hơn. Nếu có thời gian, bạn có thể muốn thử nhiều hơn một giá trị từ một phân vùng, đặc biệt nếu bạn muốn xác nhận lựa chọn đầu vào thông thường của người dùng.
Ví dụ: tài khoản tiết kiệm trong ngân hàng kiếm được mức lãi suất khác nhau tùy thuộc vào số dư trong tài khoản. Để kiểm thử phần mềm tính toán tiền lãi đến hạn, chúng ta có thể xác định các phạm vi giá trị số dư kiếm được các mức lãi suất khác nhau. Ví dụ: nếu số dư trong khoảng từ $0 đến $100 thì lãi suất 3%, số dư trên $100 và tối đa $1000 thì lãi suất 5% và số dư từ $1000 trở lên có lãi suất 7%, chúng ta sẽ ban đầu xác định ba phân vùng tương đương hợp lệ và một phân vùng không hợp lệ như hình bên dưới.
Lưu ý rằng chúng ta đã xác định bốn phân vùng ở đây, mặc dù thông số kỹ thuật chỉ đề cập đến ba phân vùng. Điều này minh họa một nhiệm vụ rất quan trọng của người kiểm thử – không chỉ kiểm thử những gì có trong đặc tả kỹ thuật mà còn phải nghĩ về những thứ chưa được chỉ định. Trong trường hợp này, chúng ta đã nghĩ đến tình huống số dư nhỏ hơn 0. Chúng ta chưa xác định được phân vùng không hợp lệ ở bên phải, nhưng đây cũng là một điều nên xem xét. Để xác định nơi kết thúc phân vùng 7%, chúng ta cần biết số dư tối đa cho tài khoản này là bao nhiêu (điều này có thể không dễ tìm ra). Trong ví dụ, đã để ngỏ điều này ở thời điểm hiện tại. Lưu ý rằng đầu vào không phải là số cũng là một phân vùng không hợp lệ (ví dụ: chữ “a”) nhưng hiện tại ta chỉ thảo luận về các phân vùng số.
Ta đã đưa ra một giả định ở đây về sự khác biệt nhỏ nhất giữa hai giá trị. Giả định hai chữ số thập phân, tức là $100.00, nhưng cũng có thể giả định không có chữ số thập phân nào (tức là $100) hoặc nhiều hơn hai chữ số thập phân (ví dụ: $100.0000). Trong mọi trường hợp, bạn nên nêu rõ các giả định của mình – khi đó người khác có thể thấy chúng và cho bạn biết liệu chúng có đúng hay không.
Khi thiết kế các kịch bản kiểm thử cho phần mềm, ta sẽ đảm bảo rằng ba phân vùng tương đương hợp lệ được bao phủ một lần và cũng sẽ kiểm tra phân vùng không hợp lệ ít nhất một lần. Vì vậy, ví dụ: có thể chọn tính lãi trên số dư -$10.00, $50.00, $260.00 và $1348.00. Nếu không xác định cụ thể các phân vùng này, thì có thể có ít nhất một trong số chúng đã bị bỏ sót do phải kiểm thử lại một phân vùng khác nhiều lần. Lưu ý rằng chúng ta cũng có thể áp dụng phân vùng tương đương cho đầu ra.
Trong trường hợp này, có ba mức lãi suất: 3%, 5% và 7%, cộng với lỗi thông báo cho phân vùng không hợp lệ. Trong ví dụ này, các phân vùng đầu ra thẳng hàng chính xác với các phân vùng đầu vào.
Làm thế nào một người nào đó sẽ kiểm thử điều này mà không nghĩ về các phân vùng? Một người kiểm thửu ngây thơ (tạm gọi là Robbie) có thể đã nghĩ rằng một bộ kiểm thử tốt sẽ là kiểm tra mỗi $50. Điều đó sẽ đưa ra các bài kiểm thử sau: $50.00, $100.00, $150.00, $200.00, $250.00, … cho đến $800.00 (khi đó Robbie sẽ phát mệt với nó và nghĩ rằng đã thực hiện đủ bài kiểm thử). Nhưng hãy nhìn vào những gì Robbie đã kiểm thử: chỉ có hai trong số bốn phân vùng! Vì vậy, nếu hệ thống không xử lý chính xác số dư âm hoặc số dư từ $1000 trở lên, anh ta sẽ không tìm thấy những khiếm khuyết này – vì vậy phương pháp ngây thơ này kém hiệu quả hơn so với phân vùng tương đương. Đồng thời, Robbie có nhiều bài kiểm thử dài hơn gấp bốn lần (16 bài kiểm thử so với bốn bài kiểm thử sử dụng phân vùng tương đương), vì vậy anh ta cũng kém hiệu quả hơn nhiều! Đây là lý do tại sao nói rằng việc sử dụng các kỹ thuật như thế này giúp cho việc kiểm thử hiệu quả hơn.
Lưu ý rằng khi nói một phân vùng là “không hợp lệ”, điều đó không có nghĩa là nó đại diện cho một giá trị mà người dùng không thể nhập hoặc một giá trị mà người dùng không được phép nhập. Nó chỉ có nghĩa là nó không phải là một trong những đầu vào dự kiến cho trường cụ thể này. Phần mềm phải xử lý chính xác các giá trị từ phân vùng không hợp lệ, bằng cách trả ra thông báo lỗi, chẳng hạn như “Số dư ít nhất phải là $0.00”.
Cũng lưu ý rằng phân vùng không hợp lệ có thể không hợp lệ chỉ trong bối cảnh ghi có các khoản thanh toán lãi. Một tài khoản bị rút quá mức sẽ yêu cầu một số hành động khác.
Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây