Tiêu chuẩn Quốc gia TCVN 12849-4:2020 ISO/IEC/IEEE 29119-4:2015 Kiểm thử phần mềm - Các kỹ thuật kiểm thử
- Thuộc tính
- Nội dung
- Tiêu chuẩn liên quan
- Lược đồ
- Tải về
Đây là tiện ích dành cho thành viên đăng ký phần mềm.
Quý khách vui lòng Đăng nhập tài khoản LuatVietnam và đăng ký sử dụng Phần mềm tra cứu văn bản.
Tiêu chuẩn Việt Nam TCVN 12849-4:2020
Số hiệu: | TCVN 12849-4:2020 | Loại văn bản: | Tiêu chuẩn Việt Nam |
Cơ quan ban hành: | Bộ Khoa học và Công nghệ | Lĩnh vực: | Khoa học-Công nghệ, Thông tin-Truyền thông |
Năm ban hành: | 2020 | Hiệu lực: | |
Người ký: | Tình trạng hiệu lực: | Đã biết Vui lòng đăng nhập tài khoản gói Tiêu chuẩn hoặc Nâng cao để xem Tình trạng hiệu lực. Nếu chưa có tài khoản Quý khách đăng ký tại đây! | |
TIÊU CHUẨN QUỐC GIA
TCVN 12849-4:2020
ISO/IEC/IEEE 29119-4:2015
KỸ THUẬT HỆ THỐNG VÀ PHẦN MỀM - KIỂM THỬ PHẦN MỀM - PHẦN 4: CÁC KỸ THUẬT KIỂM THỬ
Software and systems engineering - Software testing - Part 4: Test Techniques
Lời nói đầu
TCVN 12849-4:2020 hoàn toàn tương đương ISO/IEC/IEEE 29119-4:2015.
TCVN 12849-4:2020 do Viện Khoa học Kỹ thuật Bưu điện biên soạn, Bộ Thông tin và Truyền thông đề nghị, Tổng cục Tiêu chuẩn Đo lường Chất lượng thẩm định, Bộ Khoa học và Công nghệ công bố.
Lời giới thiệu
Mục đích của tiêu chuẩn này là đưa ra một chuẩn quốc tế định nghĩa các kỹ thuật thiết kế kiểm thử phần mềm (còn được gọi là kỹ thuật thiết kế ca kiểm thử hoặc các phương pháp kiểm thử) có thể được sử dụng trong quy trình Thiết kế và chuẩn bị kiểm thử được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013). Tiêu chuẩn này không mô tả cụ thể quy trình Thiết kế và chuẩn bị kiểm thử; thay vào đó, nó mô tả một tập các kỹ thuật kiểm thử phần mềm mà có thể được sử dụng trong tiêu chuẩn TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2). Mục đích là mô tả một loạt các kỹ thuật mà được chấp nhận rộng rãi trong ngành công nghiệp kiểm thử phần mềm.
Các kỹ thuật thiết kế kiểm thử được trình bày trong tiêu chuẩn này có thể được sử dụng để xây dựng các ca kiểm thử, cung cấp bằng chứng để chứng minh rằng các yêu cầu hạng mục kiểm thử đã được đáp ứng và /hoặc có xuất hiện lỗi trong một hạng mục kiểm thử (tức là các yêu cầu không được đáp ứng). Để xác định một tập các kỹ thuật kiểm thử mà có thể được áp dụng trong các tình huống cụ thể, có thể sử dụng kiểm thử dựa trên rủi ro (kiểm thử dựa trên rủi ro được trình bày trong TCVN 12849- 1:2020 (ISO/IEC/IEEE 29119-1) và TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013).
CHÚ THÍCH: "Hạng mục kiểm thử" là một sản phẩm công việc đang được kiểm thử (xem TCVN 12849-1:2020 (ISO/IEC/IEEE 29119-1)).
Ví dụ 1: "Các hạng mục kiểm thử" bao gồm các hệ thống, các hạng mục phần mềm, các đối tượng, các lớp, các yêu cầu tài liệu, các đặc tả thiết kế và hướng dẫn sử dụng.
Để thiết kế các ca kiểm thử, mỗi kỹ thuật kiểm thử đều tuân theo đầy đủ các bước trong quy trình Thiết kế và chuẩn bị kiểm thử được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) được trình bày trong Hình 1 dưới đây.
Tiêu chuẩn này không đưa ra hướng dẫn về toàn bộ các hoạt động trong quy trình Thiết kế và chuẩn bị kiểm thử, tiêu chuẩn này chỉ đưa ra hướng dẫn về cách thức thực hiện chi tiết ba hoạt động được mô tả dưới đây đối với từng kỹ thuật kiểm thử:
- Xác định các điều kiện kiểm thử (TD2);
- Xác định các hạng mục bao phủ kiểm thử (TD3);
- Xây dựng các ca kiểm thử (TD4).
Mỗi điều kiện kiểm thử là một khía cạnh có thể kiểm thử được của một hạng mục kiểm thử, chẳng hạn như một hàm, sự chuyển đổi trạng thái, tính năng, thuộc tính chất lượng, hoặc phần tử cấu trúc được xác định như một cơ sở kiểm thử. Việc này có thể đạt được bằng cách thỏa thuận với các bên liên quan về các thuộc tính được kiểm thử hoặc bằng cách áp dụng một hoặc nhiều kỹ thuật thiết kế kiểm thử.
Ví dụ 2: Nếu điều kiện kết thúc kiểm thử đối với kiểm thử chuyển đổi trạng thái xác định đã đạt được độ bao phủ tất cả các trạng thái thì các điều kiện kiểm thử có thể là các trạng thái mà bao phủ hạng mục kiểm thử. Ví dụ khác về điều kiện kiểm thử là các lớp tương đương và các giá trị biên giữa chúng.
Các hạng mục bao phủ kiểm thử là thuộc tính của mỗi điều kiện kiểm thử có thể được bao phủ trong quá trình kiểm thử. Một điều kiện kiểm thử có thể là cơ sở cho một hoặc nhiều hạng mục bao phủ kiểm thử.
Ví dụ 3: Nếu một biến cụ thể được xác định là một điều kiện kiểm thử thì các hạng mục bao phủ kiểm thử tương ứng có thể chính là biên và có thể là hai bên của biên.
Ca kiểm thử là một tập các điều kiện tiên quyết, đầu vào (bao gồm cả hành động nếu có) và kết quả mong đợi.
Điều 5 hoặc 6 của tiêu chuẩn này không đưa ra hướng dẫn cụ thể về cách thức thực hiện các hoạt động trong quy trình Thiết kế và chuẩn bị kiểm thử của TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) đó là hoạt động TD1 (Xác định các tập tính năng), TD5 (Tập hợp các bộ kiểm thử) và TD6 (Xác định các thủ tục kiểm thử) vì các hoạt động này tương tự đối với tất cả các kỹ thuật kiểm thử.
Hình 1 - Quy trình thiết kế và chuẩn bị kiểm thử được trình bày trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013)
ISO/IEC/TR 19759 (SWEBOK) định nghĩa hai kiểu yêu cầu: yêu cầu về chức năng và yêu cầu về chất lượng. ISO/IEC 25010 định nghĩa tám đặc tính chất lượng phần mềm (bao gồm cả tính năng) có thể được sử dụng để xác định các kiểu kiểm thử có thể được áp dụng để kiểm thử một hạng mục kiểm thử cụ thể. Phụ lục A ánh xạ các kỹ thuật thiết kế kiểm thử mà áp dụng cho các đặc tính chất lượng kiểm thử được định nghĩa trong ISO/IEC 25010.
Những thực hành về kỹ thuật kiểm thử dựa trên kinh nghiệm như kiểm thử thăm dò và những thực hành về các kỹ thuật kiểm thử khác như kiểm thử dựa trên mô hình không được trình bày trong tiêu chuẩn này, tiêu chuẩn này chỉ mô tả các kỹ thuật thiết kế ca kiểm thử. Những thực hành về kiểm thử như kiểm thử thăm dò được trình bày trong TCVN 12849-1:2020 (ISO/IEC/IEEE 29119-1:2013).
Các mẫu tải liệu kiểm thử và các ví dụ về tài liệu kiểm thử được tạo ra trong quá trình kiểm thử được quy định trong tiêu chuẩn TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 3: Tài liệu kiểm thử. Các kỹ thuật kiểm thử trong tiêu chuẩn này không mô tả cách thức xây dựng các ca kiểm thử (ví dụ: chúng không bao gồm các thông tin hoặc hướng dẫn về việc gán các ký hiệu nhận dạng (từ định danh), không bao gồm những mô tả về ca kiểm thử, những ưu tiên, truy xuất nguồn gốc, hoặc các điều kiện tiên quyết). Thông tin về cách thức xây dựng các ca kiểm thử có thể được trình bày trong TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3:2013).
Tiêu chuẩn này cung cấp cho các bên liên quan khả năng thiết kế các ca kiểm thử để kiểm thử phần mềm trong bất kỳ tổ chức nào.
KỸ THUẬT HỆ THỐNG VÀ PHẦN MỀM - KIỂM THỬ PHẦN MỀM - PHẦN 4: CÁC KỸ THUẬT KIỂM THỬ
Software and systems engineering - Software testing - Part 4: Test Techniques
1 Phạm vi áp dụng
Tiêu chuẩn này trình bày các kỹ thuật thiết kế kiểm thử có thể được sử dụng trong quy trình Thiết kế và chuẩn bị kiểm thử nêu trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử.
Tiêu chuẩn này là tài liệu sử dụng cho các kỹ sư kiểm thử, người quản lý kiểm thử, các nhà phát triển và người quản lý dự án, đặc biệt là những người chịu trách nhiệm quản lý và thực hiện kiểm thử phần mềm.
2 Đánh giá sự phù hợp
1.1 Mục đích sử dụng
Các yêu cầu trong tiêu chuẩn này được đưa ra trong Điều 5 và Điều 6. Các tổ chức hoặc các dự án cụ thể có thể không cần thiết phải sử dụng tất cả các kỹ thuật được định nghĩa trong tiêu chuẩn này. Do đó, các tổ chức hoặc các dự án chỉ cần lựa chọn một tập các kỹ thuật phù hợp với dự án hoặc tổ chức của họ. Có hai cách triển khai mà tổ chức hoặc cá nhân có thể xác nhận phù hợp với các điều khoản của tiêu chuẩn này - đó là phù hợp hoàn toàn và phù hợp có sửa đổi. Tổ chức hoặc cá nhân sẽ xác nhận xem liệu rằng sẽ phù hợp hoàn toàn hoặc phù hợp có sửa đối với tiêu chuẩn này.
1.2 Sự phù hợp hoàn toàn
Sự phù hợp hoàn toàn đạt được bằng cách chứng minh rằng tất cả các yêu cầu của tập các kỹ thuật được lựa chọn trong trong Điều 5 và/ hoặc tính độ bao phủ kiểm thử tương ứng trong Điều 6 được đáp ứng.
Ví dụ: Một tổ chức có thể lựa chọn chỉ phù hợp với một kỹ thuật được định nghĩa trong tiêu chuẩn này như kỹ thuật phân tích giá trị biên chẳng hạn. Trong kịch bản này, tổ chức sẽ chỉ phải yêu cầu cung cấp chứng cử rằng họ thỏa mãn các yêu cầu của kỹ thuật đó để xác nhận phù hợp với tiêu chuẩn này.
1.3 Sự phù hợp có sửa đổi
Sự phù hợp có sửa đổi đạt được bằng cách chứng minh rằng tập con các yêu cầu đã chọn từ một tập các kỹ các kỹ thuật được lựa chọn và/ hoặc các phương pháp tính độ bao phủ kiểm thử tương ứng đó đã được đáp ứng. Nếu cần phải sửa đổi, phải đưa ra được lý lẽ (hoặc trực tiếp hoặc tham chiếu) tại sao các yêu cầu của các kỹ thuật được nêu trong Điều 5 hoặc các phương pháp tính độ bao phủ kiểm thử được nêu trong Điều 6 của tiêu chuẩn này không được tuân theo. Tất cả những quyết định về việc sửa đổi phải được ghi lại cùng với lý do về việc sửa đổi, kể cả việc xem xét đến những rủi ro có thể áp dụng. Những quyết định về việc sửa đổi phải được các bên liên quan chấp thuận.
3 Tài liệu viện dẫn
Các tài liệu viện dẫn sau rất cần thiết cho việc áp dụng tiêu chuẩn này. Đối với các tài liệu viện dẫn ghi năm công bố thì áp dụng phiên bản được nêu. Đối với các tài liệu viện dẫn không ghi năm công bố thì áp dụng phiên bản mới nhất, bao gồm cả các sửa đổi, bổ sung (nếu có).
TCVN 12849-1:2020 (ISO/IEC/IEEE 29119-1:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 1: Khái niệm và định nghĩa)
TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 2: Quy trình kiểm thử
TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3:2013) Kỹ thuật hệ thống và phần mềm - Kiểm thử phần mềm - Phần 3: Tài liệu kiểm thử
ISO/IEC/IEEE 24765:2017 Systems and software engineering - Vocabulary (Kỹ thuật hệ thống và phần mềm - Từ vựng).
4 Thuật ngữ và định nghĩa
Tiêu chuẩn này sử dụng các thuật ngữ và định nghĩa nêu trong ISO/IEC/IEEE 24765 và các thuật ngữ, định nghĩa dưới đây:
CHÚ THÍCH: Việc sử dụng các thuật ngữ trong tiêu chuẩn này là để tiện tham khảo và không bắt buộc phải phù hợp với tiêu chuẩn này. Các thuật ngữ và định nghĩa dưới đây được đưa ra nhằm giúp người dùng nắm bắt và dễ đọc tiêu chuẩn này. Điều khoản này chỉ bao gồm các thuật ngữ then chốt liên quan đến tiêu chuẩn này. Điều khoản này không cung cấp danh sách đầy đủ các thuật ngữ kiểm thử. Tiêu chuẩn ISO/IEC/IEEE 24765 Kỹ thuật hệ thống và phần mềm - Từ vựng có thể được dùng tham chiếu cho các thuật ngữ không được định nghĩa tại Điều này.
4.1
Dạng Backus-Naur (Backus-Naur Form)
Siêu ngôn ngữ hình thức được sử dụng để định nghĩa cú pháp của một ngôn ngữ trong một định dạng văn bản.
4.2
Lựa chọn cơ sở (base choice)
Xem thuật ngữ giá trị cơ sở.
4.3
Giá trị cơ sở (base value)
Giá trị thạm số đầu vào được sử dụng trong “kiểm thử lựa chọn cơ sở”, các giá trị này thường được chọn là các giá trị tiêu biểu hoặc đại diện cho tham số đó. Do đó, nó cũng được gọi là lựa chọn cơ sở.
4.4
c-use
Xem thuật ngữ sử dụng dữ liệu để tính toán.
4.5
Sử dụng dữ liệu để tính toán (computation data use)
Sử dụng giá trị của một biến trong bất kỳ câu lệnh nào.
4.6
Điều kiện (Condition)
Biểu thức Boolean không chứa các toán tử Boolean.
Ví dụ: “A<B” là một biểu thức điều kiện nhưng “A và B” không phải là một biểu thức điều kiện.
4.7
Luồng điều khiển (Control flow)
Chuỗi các hoạt động được thực hiện trong khi thực thi một hạng mục kiểm thử.
4.8
Đường đi con của luồng điều khiển (control flow sub-path)
Chuỗi các câu lệnh có thể thực hiện trong một hạng mục kiểm thử.
4.9
Định nghĩa của dữ liệu (data definition)
Câu lệnh thực hiện gán một giá trị cho một biến. Định nghĩa của dữ liệu cũng được gọi là định nghĩa của một biến.
4.10
Cặp định nghĩa dữ liệu - sử dụng biến để tính toán (data definition c-use pair)
Cặp lệnh định nghĩa dữ liệu và lệnh sử dụng biến để tính toán, trong đó câu lệnh sử dụng biến để tính toán sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.11
Cặp định nghĩa dữ liệu- sử dụng biến để kiểm tra điều kiện (data definition p-use pair)
Cặp lệnh định nghĩa của dữ liệu và lệnh sử dụng biến để kiểm tra điều kiện, trong đó câu lệnh sử dụng biến để kiểm tra điều kiện sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.12
Cặp định nghĩa - sử dụng dữ liệu (data definition-use pair)
Cặp lệnh định nghĩa của dữ liệu và lệnh sử dụng dữ liệu, trong đó câu lệnh sử dụng dữ liệu sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.13
Sử dụng dữ liệu (data use)
Câu lệnh có thể thực thi sử dụng giá trị của một biến được truy cập.
4.14
Kết quả quyết định (decision outcome)
Kết quả của một quyết định (để xác định luồng điều khiển).
4.15
Quy tắc quyết định (decision rule)
Sự kết hợp của các điều kiện (hay còn gọi là các nguyên nhân) và các hành động (hay còn gọi là các kết quả) để tạo thành một kết quả cụ thể trong kỹ thuật kiểm thử bảng quyết định và đồ thị nguyên nhân - kết quả.
4.16
Cặp định nghĩa - sử dụng (definition-use pair)
Cặp lệnh định nghĩa của dữ liệu và lệnh sử dụng biến để kiểm tra điều kiện hoặc sử dụng biến để tính toán, trong đó lệnh sử dụng dữ liệu sử dụng giá trị được định nghĩa trong câu lệnh định nghĩa của dữ liệu.
4.17
Đường định nghĩa - sử dụng (definition-use path)
Đường đi con của luồng điều khiển xuất phát từ định nghĩa của một biến tới sử dụng biến để kiểm tra điều kiện (p-use) hoặc sử dụng biến để tính toán (c-use) của biến đó.
4.18
Điểm bắt đầu (entry point)
Điểm trong một hạng mục kiểm thử mà tại đó việc thực thi của hạng mục kiểm thử có thể bắt đầu.
CHÚ THÍCH 1 đối với điểm bắt đầu: Một điểm bắt đầu là một câu lệnh có thể thực thi được trong hạng mục kiểm thử mà có thể được lựa chọn bởi một quá trình bên ngoài như là điểm bắt đầu cho một hoặc nhiều đường qua hạng mục kiểm thử. Nó thường là câu lệnh có thể thực thi đầu tiên trong hạng mục kiểm thử.
4.19
Câu lệnh có thể thực thi được (executable statement)
Câu lệnh mà khi được viết, được dịch sang mã nguồn sẽ được thực thi theo thủ tục khi hạng mục kiểm thử đang chạy và có thể thực hiện một hành động trên dữ liệu chương trình.
4.20
Điểm kết thúc (exit point)
Câu lệnh có thể thực thi cuối cùng trong một hạng mục kiểm thử.
CHÚ THÍCH 1 đối với điểm kết thúc: Một điểm kết thúc là một điểm Cuối cùng của một đường đi qua một hạng mục kiểm thử, là một câu lệnh có thể thực thi được trong hạng mục kiểm thử mà hoặc là kết thúc hạng mục kiểm thử hoặc quay lại điều khiển một qui trình bên ngoài. Đây thường là câu lệnh có thể thực thi cuối cùng trong hạng mục kiểm thử.
4.21
p-use
Xem thuật ngữ sử dụng dữ liệu để kiểm tra các điều kiện.
4.22
Cặp P-V (P-V pair)
Kết hợp của một tham số hạng mục kiểm thử với một giá trị được gán cho tham số đó, được sử dụng như là một điều kiện kiểm thử và hạng mục bao phủ trong các kỹ thuật thiết kế kiểm thử tổ hợp.
4.23
Đường đi (Path)
Một chuỗi các câu lệnh thực thi trong một hạng mục kiểm thử.
4.24
Xác nhận (Predicate)
Biểu thức lô-gic trả về giá trị Đúng hoặc Sai, thông thường để đưa ra hướng đường thực thi trong mã nguồn.
4.25
Sử dụng dữ liệu để kiểm tra các điều kiện (predicate data use)
Sử dụng dữ liệu kết hợp với kết quả quyết định của predicate của một câu lệnh quyết định.
4.26
Đường đi con (sub-path)
Đường đi mà là một phần của một đường đi lớn hơn.
4.27
Mô hình kiểm thử (test model)
Đại diện của một hạng mục kiểm thử được sử dụng trong suốt quá trình thiết kế ca kiểm thử.
4.28
Định nghĩa của một biến (variable definition)
Xem phần thuật ngữ định nghĩa của dữ liệu.
5 Các kỹ thuật thiết kế kiểm thử
5.1 Tổng quan
Tiêu chuẩn này định nghĩa các kỹ thuật thiết kế kiểm thử dựa trên đặc tả (Điều 5.2), kiểm thử dựa trên cấu trúc (Điều 5.3) và kiểm thử dựa trên kinh nghiệm (Điều 5.4). Trong kiểm thử dựa trên đặc tả, cơ sở để kiểm thử (ví dụ: các yêu cầu, các đặc tả, các mô hình hoặc nhu cầu người dùng) được sử dụng làm nguồn thông tin chính để thiết kế các ca kiểm thử. Trong kiểm thử dựa trên cấu trúc, cấu trúc của một hạng mục kiểm thử (ví dụ: mã nguồn hoặc cấu trúc của một mô hình) được sử dụng làm nguồn thông tin chính để thiết kế các ca kiểm thử. Trong ca kiểm thử dựa trên kinh nghiệm, kiến thức và kinh nghiệm của kỹ sư kiểm thử được sử dụng làm nguồn thông tin chính khi thiết kế ca kiểm thử. Đối với kiểm thử dựa trên đặc tả, kiểm thử dựa trên cấu trúc và kiểm thử dựa trên kinh nghiệm, cơ sở kiểm thử được sử dụng để tạo ra các kết quả mong đợi. Các kỹ thuật thiết kế kiểm thử này được sử dụng kết hợp sẽ tăng thêm hiệu quả kiểm thử.
Mặc dù các kỹ thuật được trình bày trong tiêu chuẩn này được phân loại thành: Kỹ thuật kiểm thử dựa trên cấu trúc, kỹ thuật kiểm thử dựa trên đặc tả hay kỹ thuật kiểm thử dựa trên kinh nghiệm, nhưng trong thực tế một trong số các kỹ thuật này có thể được dùng thay thế cho nhau (ví dụ: kiểm thử nhánh có thể được sử dụng để thiết kế các ca kiểm thử để kiểm thử các đường lô-gic thông qua giao diện đồ họa người dùng của một hệ thống dựa trên Internet). Ví dụ này được minh họa trong phụ lục E. Mặc dù mỗi kỹ thuật được định nghĩa độc lập với các kỹ thuật khác, nhưng trong thực tế chúng có thể được sử dụng kết hợp với các kỹ thuật khác.
Ví dụ: Các hạng mục bao phủ kiểm thử được xác định khi áp dụng phương pháp phân vùng tương đương có thể được sử dụng làm các tham số đầu vào của các ca kiểm thử được xây dựng theo phương pháp kiểm thử kịch bản.
Tiêu chuẩn này dùng các thuật ngữ Kiểm thử dựa trên đặc tả và kiểm thử dựa trên cấu trúc; các kỹ thuật kiểm thử này còn được gọi là “kiểm thử hộp đen” và “kiểm thử hộp trắng” (hoặc kiểm thử tính rõ ràng của hộp). Các thuật ngữ “hộp đen” và “hộp trắng” được đề cập ở đây muốn nói đến việc thấy rõ hoặc không thấy rõ cấu trúc bên trong của hạng mục kiểm thử. Trong kỹ thuật kiểm thử hộp đen, không nhìn thấy được cấu trúc bên trong của hạng mục kiểm thử (do đó được gọi là hộp đen). Trong khi đó, đối với kiểm thử hộp trắng, thấy được cấu trúc mã nguồn bên trong của chương trình. Một kỹ thuật khác được áp dụng bằng cách kết hợp kiến thức của kiểm thử dựa trên đặc tả và kiểm thử dựa trên cấu trúc được m gọi “kiểm thử hộp xám”.
Tiêu chuẩn này xác định cách mà các bước chung của quy trình Thiết kế và chuẩn bị kiểm thử như TD2 (xác định các điều kiện kiểm thử), TD3 (xác định các hạng mục bao phủ kiểm thử), bước TD4 (xây dựng các ca kiểm thử) được định nghĩa trong TCVN 12849-2:2020 (ISO/IEC/IEEE 29119-2:2013) (xem phần giới thiệu) sẽ được áp dụng cho từng kỹ thuật. Tiêu chuẩn này không đưa ra các định nghĩa cụ thể của các kỹ thuật mà nó miêu tả cách thức từng kỹ thuật sẽ sử dụng trong tất cả tình huống. Người sử dụng tiêu chuẩn này có thể tham chiếu phụ lục B, phụ lục C, phụ lục D và phụ lục E để xem các ví dụ chi tiết minh họa cách thức áp dụng các kỹ thuật thiết kế kiểm thử.
Các kỹ thuật thiết kế kiểm thử được định nghĩa trong tiêu chuẩn này được trình bày trong Hình 2. Các kỹ thuật được sử dụng bởi các nhà nghiên cứu hoặc nhóm những người kiểm thử không được đề cập trong tiêu chuẩn này.
Hình 2 - Các kỹ thuật thiết kế kiểm thử được trình bày trong tiêu chuẩn này
Trong số 6 hoạt động trong quy trình Thiết kế và chuẩn bị kiểm thử (được trình bày trong Hình 1), các kỹ thuật thiết kế kiểm thử cung cấp hướng dẫn cụ thể việc Xác định các điều kiện kiểm thử (TD2), xác định các hạng mục bao phủ kiểm thử (TD3) và xây dựng các ca kiểm thử (TD4). Do đó, mỗi kỹ thuật kiểm thử được định nghĩa theo các thuật ngữ của ba hoạt động này.
Có nhiều mức trong các bước TD2 (xác định các điều kiện kiểm thử), TD3 (xác định các hạng mục bao phủ kiểm thử), TD4 (xây dựng các ca kiểm thử). Trong mỗi kỹ thuật kiểm thử, thuật ngữ “mô hình” được sử dụng để mô tả việc chuẩn bị một hạng mục kiểm thử để xác định các điều kiện kiểm thử trong bước TD2 (ví dụ: mô hình luồng điều khiển được yêu cầu để xác định các điều kiện kiểm thử cho tất cả các kỹ thuật kiểm thử dựa trên cấu trúc). Trong một số trường hợp, có thể đòi hỏi sử dụng toàn bộ mô hình làm điều kiện kiểm thử, ngược lại trong một số trường hợp khác, chỉ cần sử dụng một phần của mô hình làm điều kiện kiểm thử.
Ví dụ 1: Trong kiểm thử chuyển đổi trạng thái, nếu yêu cầu phải bao phủ tất cả các trạng thái thì có thể sử dụng môt mô hình trạng thái đầy đủ làm điều kiện kiểm thử. Ngoài ra, nếu yêu cầu phải bao phủ các quá trình chuyển đổi giữa các trạng thái thì mỗi một quá trình chuyển đổi có thể được coi như là một điều kiện kiểm thử.
Ngoài ra, do một số kỹ thuật kiểm thử dùng chung các khái niệm cơ bản nên các định nghĩa có thể có các đề mục giống nhau.
Ví dụ 2: Cả hai kỹ thuật phân vùng tương đương và phân tích giá trị biên đều đề cập đến khái niệm về phân lớp tương đương.
Trong bước xây dựng các ca kiểm thử (TD4) của mỗi một kỹ thuật thiết kế kiểm thử, các ca kiểm thử được xây dựng có thể “hợp lệ" (có nghĩa là chúng chứa các giá trị đầu vào mà hạng mục kiểm thử trả về kết quả là đúng) hoặc “không hợp lệ” (có nghĩa là chúng chứa ít nhất một giá trị đầu vào mà hạng mục kiểm thử tra về kết quả là sai bằng một thông báo lỗi). Trong một số kỹ thuật, chẳng hạn như kỹ thuật phân vùng tương đương và kỹ thuật phân tích giá trị biên, các ca kiểm thử không hợp lệ thường được xây dựng bằng phương pháp “một - một” để tránh việc che giấu lỗi để đảm bảo mỗi ca kiểm thử chỉ có một giá trị đầu vào không hợp lệ, trong khi đó các ca kiểm thử hợp lệ được xây dựng theo phương pháp “giảm tối thiểu” nhằm làm giảm tối số lượng các ca kiểm thử mà vẫn bao phủ hết các hạng mục bao phủ kiểm thử hợp lệ (xem Điều 5.2.1.3 và 5.2.3.3).
CHÚ THÍCH: Các ca kiểm thử không hợp lệ có thể được gọi là “các ca kiểm thử sai”.
Mặc dù các kỹ thuật kiểm thử định nghĩa trong tiêu chuẩn này được trình bày trong các điều khoản riêng (như thể chúng không liên quan với nhau) nhưng trong thực tế chúng lại có thể kết hợp với nhau khi áp dụng.
Ví dụ 3: Kỹ thuật phân tích giá trị biên có thể được sử dụng để lựa chọn các giá trị đầu vào kiểm thử, kỹ thuật kiểm thử từng cặp có thể được sử dụng để thiết kế các ca kiểm thử từ các giá trị đầu vào kiểm thử. Kỹ thuật phân vùng tương đương được có thể được sử dụng để lựa chọn các phân lớp và các lớp dùng cho phương pháp cây phân loại và kiểm thử được lựa chọn có thể được sử dụng để xây dựng các ca kiểm thử từ các lớp.
Các kỹ thuật kiểm thử được trình bày trong tiêu chuẩn này cũng có thể dược sử dụng kết hợp với các kiểu kiểm thử được trình bày trong phụ lục A. Ví dụ, kỹ thuật phân vùng tương đương có thể được sử dụng để xác định nhóm người dùng (các điều kiện kiểm thử) và người dùng đại diện (các hạng mục bao phủ kiểm thử) từ các nhóm trong các ca kiểm thử được kiểm thử trong khi kiểm thử tính khả dụng.
Điều 5 trình bày các định nghĩa về các kỹ thuật kiểm thử. Điều 6 trình bày các phương pháp tính độ bao phủ tương ứng với từng kỹ thuật kiểm thử. Các ví dụ minh họa cho mỗi kỹ thuật được trình bày cụ thể. trong các phụ lục B, C, D và E. Mặc dù các ví dụ của mỗi một kỹ thuật kiểm thử minh họa việc áp dụng các kỹ thuật theo phương pháp thủ công, tuy nhiên trong thực tế, có thể sử dụng kiểm thử tự động để hỗ trợ một vài kiểu thiết kế và thực thi kiểm thử (ví dụ các công cụ phân tích độ bao phủ câu lệnh có thể được sử dụng để hỗ trợ kỹ thuật kiểm thử dựa trên cấu trúc). Phụ lục A trình bày các ví dụ về cách thức áp dụng các kỹ thuật thiết kế kiểm thử định nghĩa trong chuẩn này có thể được áp dụng để kiểm thử các đặc tính chất lượng phần mềm định nghĩa trong tiêu chuẩn ISO/IEC 25010.
5.2 Các kỹ thuật kiểm thử dựa trên đặc tả
5.2.1 Phân vùng tương đương
5.2.1.1 Xác định các điều kiện kiểm thử (TD2)
Kỹ thuật phân vùng tương đương (BS 7925-2:1998, Myers đưa ra năm 1979) sử dụng một mô hình hạng mục kiểm thử để phân chia đầu vào và đầu ra thành các vùng tương đương (còn được gọi là “các phân vùng” hay “các lớp tương đương”), trong đó mỗi phân vùng tương đương sẽ được coi là một điều kiện kiểm thử. Những phân vùng tương đương này sẽ được xác định từ cơ sở kiểm thử, trong đó mỗi phân vùng được lựa chọn sao cho tất cả các giá trị nằm trong phân vùng tương đương có thể được xử lý như nhau bởi các hạng mục kiểm thử (tức là chúng có thể được coi là “tương đương”). Kỹ thuật phân vùng tương đương có thể tạo ra cho cả các giá trị đầu vào và đầu ra hợp lệ và không hợp lệ.
Ví dụ: Đối với một hạng mục kiểm thử coi các ký tự là chữ cái in thường là đầu vào (hợp lệ), có thể xác định được các phân vùng tương đương đầu vào không hợp lệ bao gồm các phân vùng tương đương chứa các số nguyên, số thực, các chữ cái in hoa, các biểu tượng và các ký tự điều khiển tùy thuộc vào yêu cầu mức độ chính xác trong quá trình kiểm thử.
CHÚ THÍCH 1: Đối với các phân vùng tương đương đầu ra, các phân vùng đầu vào tương ứng được tạo ra dựa trên quy trình được miêu tả trong đặc tả của các hạng mục kiểm thử. Các đầu vào kiểm thử sau đó được lựa chọn từ các phân vùng đầu vào.
CHÚ THÍCH 2: Các phân vùng đầu ra không hợp lệ tương ứng với bất kỳ đầu ra nào mà chưa được xác định rõ ràng. Do không xác định được nên việc nhận biết các phân vùng tương đương thường dựa trên tính chủ quan của kỹ sư kiểm thử. Dạng thiết kế kiểm thử mang tính chủ quan này có thể xuất hiện khi áp dụng các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm như đoán lỗi.
CHÚ THÍCH 3: Phân tích miền (Beizer 1995) được coi là sự kết hợp của kỹ thuật phân vùng tương đương và phân tích giá trị biên.
5.2.1.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi phân vùng tương đương được coi là một hạng mục bao phủ kiểm thử (tức là đối với kỹ thuật phân vùng tương đương thì các điều kiện kiểm thử và các hạng mục bao phủ kiểm thử chính là các phân vùng tương đương nhau).
5.2.1.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử (tức là các phân vùng tương đương). Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn một phương pháp dưới đây khi kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi các ca kiểm thử, có hai phương pháp phổ biến (được trình bày trong BS 7925-2: 1998; Myers 1979) là:
1) Phương pháp phân vùng tương đương một - một, trong đó xây dựng một ca kiểm thử bao phủ một vùng tương đương cụ thể;
2) Phương pháp phân vùng tương đương tối thiểu hóa, trong đó xây dựng một số lượng tối thiểu các ca kiểm thử bao phủ tất cả các phân vùng tương đương ít nhất một lần.
CHÚ THÍCH: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi ca kiểm thử được mô tả trong Điều 5.2.5 (các kỹ thuật thiết kế kiểm thử tổ hợp).
b) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có dựa trên phương pháp đã chọn ở bước a);
c) Xác định giá trị đầu vào để thực hiện các hạng mục bao phủ kiểm thử được bao phủ bởi ca kiểm thử và xác định giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác theo yêu cầu của các ca kiểm thử;
d) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sử kiểm thử;
e) Lặp lại các bước từ b) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.2 Phương pháp cây phân loại
5.2.2.1 Xác định các điều kiện kiểm thử (TD2)
Phương pháp cây phân loại (được Grochtmann và Grimm đưa ra năm 1993) sử dụng một mô hình các hạng mục kiểm thử để phân vùng các đầu vào của hạng mục kiểm thử và biểu diễn chúng dưới dạng sơ đồ cây được gọi là cây phân loại. Đầu vào của các hạng mục kiểm thử được phân chia thành "các phân lớp", trong đó mỗi phân lớp bao gồm một tập các "lớp" rời nhau (không chồng chéo nhau) và thường gọi là các lớp con, các phân lớp này phải đầy đủ (gồm tất cả các phân lớp của tất cả các đầu vào có liên quan đến miền hạng mục kiểm thư đã được mô hình hóa và đã được xác định). Đối với phương pháp cây phân loại, mỗi phân lớp sẽ là một điều kiện kiểm thử. "Các lớp" là kết quả của quá trình phân chia các phân lớp, các lớp này có thể được phân chia nhỏ thành các "lớp con" tùy thuộc vào mức độ chính xác yêu cầu trong khi kiểm thử. Các phân lớp và các lớp có thể được xây dựng cho cả dữ liệu đầu vào hợp lệ và không hợp lệ, tùy thuộc vào mức độ bao phủ kiểm thử quy định. Mối quan hệ thứ bậc giữa các phân lớp, các lớp và các lớp con được biểu diễn dưới dạng một mô hình cây, trong đó miễn đầu vào của các hạng mục kiểm thử là nút gốc, các phân lớp là các nút nhánh, và các lớp hoặc lớp con là các nút lá.
CHÚ THÍCH: Quá trình phân vùng trong phương pháp cây phân loại tương tự như phân vùng tương đương. Sự khác biệt chính là trong phương pháp cây phân loại, các phân vùng (là các phân lớp và các lớp) phải hoàn toàn tách rời nhau, trong khi đó ở phân vùng tương đương, các phân lớp và các lớp có thể chồng lấn nhau tùy thuộc vào cách kỹ thuật phân vùng được áp dụng. Ngoài ra, phương pháp cây phân loại phải thiết kế một cây phân loại mà mô tả trực quan về các điều kiện kiểm thử.
5.2.2.2 Xác định các hạng mục bao phủ kiểm thử(TD3)
Các hạng mục bao phủ kiểm thử được xác định bằng cách kết hợp các lớp bằng một phương pháp kết hợp được lựa chọn dưới đây.
Ví dụ: Có hai phương pháp dùng để kết hợp các lớp vào trong các hạng mục bao phủ kiểm thử, đó là:
- Phương pháp tối thiểu hóa, trong đó các lớp được đưa ra trong các hạng mục bao phủ kiểm thử để tạo ra một số lượng tối thiểu các hạng mục bao phủ kiểm thử mà bao phủ tất cả các lớp ít nhất một lần;
- Phương pháp tối đa hóa, trong đó các lớp được đưa ra trong các hạng mục bao phủ kiểm thử để mỗi kết hợp của các lớp được bao phủ bởi ít nhất một hạng mục bao phủ kiểm thử.
CHÚ THÍCH 1: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được mô tả trong Điều 5.2.5 (các kỹ thuật thiết kế kiểm thử tổ hợp).
CHÚ THÍCH 2: Các hạng mục bao phủ kiểm thử thường được minh họa bằng một bảng kết hợp (xem hình B.5 trong điều B.2.2.5).
CHÚ THÍCH 3: Bản xuất bản đầu tiên của phương pháp cây phân loại (được Grochtmann và Grimm đưa ra năm 1993) sử dụng các thuật ngữ "tối thiểu" và "tối đa" thay cho "tối thiểu hóa" và" tối đa hóa".
5.2.2.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử. Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Dựa trên phương pháp kết hợp các lớp được tạo ra trong bước TD3, kết hợp các ca kiểm thử hiện có vẫn chưa được bao phủ bởi một ca kiểm thử nào;
b) Xác định các giá trị đầu vào cho bất kỳ lớp nào mà chưa có một giá trị được gán;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.3 Phân tích giá trị biên
5.2.3.1 Xác định các điều kiện kiểm thử (TD2)
Phân tích giá trị biên (BS 7925-2: 1998; được Myers đưa ra năm 1979) sử dụng một mô hình hạng mục kiểm thử để phân chia các đầu vào và đầu ra của hạng mục kiểm thử thành cac tập và các tập con (phân vùng và phân vùng con) có các biên xác định, trong đó mỗi biên là một điều kiện kiểm thử. Các biên sẽ được xác định từ cơ sở kiểm thử.
Ví dụ: Đối với một phân vùng được xác định là các số nguyên từ 1 đến 10, có hai biên là 1 va 10. Trong đó biên dưới là 1 và biên trên là 10, đây chính là những điều kiện kiểm thử.
CHÚ THÍCH: Đối với các biên đầu ra, các phân vùng đầu vào tương ứng được xác định dựa trên phương thức được mô tả trong đặc tả của các hạng mục kiểm thử. Đầu vào kiểm thử sau đó được lựa chọn từ các phân vùng đầu vào.
5.2.3.2 Xác định các hạng mục bao phủ kiểm thử(TD3)
Áp dụng một trong hai tùy chọn dưới đây khi xác định các hạng mục bao phủ kiểm thử:
- Kiểm thử hai giá trị biên;
- Kiểm thử ba giá trị biên.
Đối kiểm thử hai giá trị biên, hai hạng mục bao phủ kiểm thử được xác định cho mỗi biên (điều kiện kiểm thử) tương ứng với các giá trị trên biên và cách phía ngoài biên của phân vùng tương đương một khoảng cách. Khoảng cách này sẽ được xác định là giá trị nhỏ nhất cho các kiểu dữ liệu được xem xét.
Đối với kiểm thử ba giá trị biên, ba hạng mục bao phủ kiểm thử được xác định cho mỗi biên (điều kiện kiểm thử) tương ứng với các giá trị trên biên và cách mỗi bên của biên của phân vùng tương đương một khoảng cách. Khoảng cách này sẽ được xác định là giá trị nhỏ nhất cho các kiểu dữ liệu được xem xét.
CHÚ THÍCH 1: Một số phân vùng có thể chỉ có một biên duy nhất được xác định trong cơ sở kiểm thử. Ví dụ, phân vùng thuộc dạng số "tuổi ≥ 70" có một biên dưới nhưng không có biên trên. Trong một vài trường hợp một giá trị được tạo ra khi thực thi thực tế có thể được sử dụng làm giá trị biên, chẳng hạn như giá trị lớn nhất được chấp nhận bởi các trường đầu vào (những quyết định như vậy cần phải được ghi vào văn bản, ví dụ như ghi vào trong tài liệu đặc tả kiểm thử).
CHÚ THÍCH 2: Kiểm thử hai giá trị biên thích hợp với hầu hết các tình huống; Tuy nhiên, kiểm thử ba giá trị biên có chỉ thể được dùng cho một số trường hợp (ví dụ như kiểm thử tính chính xác để kiểm tra xem liệu có lỗi nào xuất hiện khi kỹ sư kiểm thử và lập trình viên xác định các biên của các biến trong các hạng mục kiểm thử không).
CHÚ THÍCH 3: Trong cả kiểm thử hai giá trị biên và kiểm thứ ba giá trị biên, các phân vùng tiếp giáp nhau (tức là các phân vùng có chung một biên) sẽ có các hạng mục bao phủ kiểm thử giống hệt nhau, trong trường hợp này, thực tế chỉ thực hiện các giá trị giống nhau này một lần. Đối với ví dụ về các biên giống nhau, xem điều B.2.3.4.3.
5.2.3.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn một phương pháp dưới đây khi kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi các ca kiểm thử, có hai phương pháp phổ biến (BS 7925-2: 1998; Myers 1979) là:
1) Phương pháp phân tích giá trị biên một - một, tức là xây dựng một ca kiểm thử để thực hiện một và chỉ một giá trị biên cụ thể;
2) Phương pháp phân tích giá trị biên tối thiểu hóa, tức là xây dựng một số lượng tối thiểu các ca kiểm thư để bao phủ tất cả các giá trị biên ít nhất một lần.
CHÚ THÍCH 1: Đối với phương pháp phân tích giá trị biên tối thiểu hóa, mỗi ca kiểm thử có thể bao phủ nhiều hạng mục bao phủ kiểm thử.
CHÚ THÍCH 2: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi ca kiểm thử được mô tả trong 5.2.5 (kỹ thuật thiết kế kiểm thử tổ hợp).
b) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có dựa trên phương pháp lựa chọn trong bước a);
c) Xác định giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác theo yêu cầu bởi các trường hợp thử mà chưa được lựa chọn ở bước b);
d) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho các cơ sở kiểm thử;
e) Lặp lại các bước b) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.4 Kiểm thử cú pháp
5.2.4.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử cú pháp (Beizer 1995; Burnstein 2003) sử dụng một mô hình các đầu vào một hạng mục kiểm thử làm cơ sở để thiết kế kiểm thử. Mô hình cú pháp này được đại diện là một số quy tắc, trong đó mỗi quy tắc định nghĩa một định dạng của một tham số đầu vào bằng các thuật ngữ như “chuỗi”, "lặp đi lặp lại của", hoặc "những lựa chọn giữa" các thành phần trong cú pháp. Cú pháp này có thể được biểu diễn nguyên bản hoặc dưới dạng sơ đồ. Trong kiểm thử cú pháp, điều kiện kiểm thử sẽ là toàn bộ hoặc một phần mô hình của đầu vào các hạng mục kiểm thử.
Ví dụ 1: Backus Naur-form là siêu ngôn ngữ chính thức có thể được sử dụng để định nghĩa cú pháp cho một mục kiểm thử dưới một định dạng văn bản.
Ví dụ 2: Có thể sử dụng một cây cú pháp trừu tượng để biểu diễn cú pháp chính thức dưới dạng sơ đồ.
5.2.4.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử cú pháp, các hạng mục bao phủ kiểm thử được xác định dựa trên hai mục tiêu: kiểm thử những trường hợp đúng, trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ cú pháp hợp lệ, và kiểm thử những trường hợp không hợp lệ, trong đó các hạng mục bao phủ kiểm thử được xác định để cố ý vi phạm các quy tắc của cú pháp. Đối với kiểm thử những trường hợp đúng, các hạng mục bao phủ kiểm thử sẽ là "những tùy chọn" của cú pháp, còn đối với kiểm thử những trường hợp không hợp lệ, các hạng mục bao phủ kiểm thử sẽ là “những đột biến” của cú pháp.
Có thể sử dụng các hướng dẫn dưới đây để xác định "các tùy chọn" (có thể sử dụng những hướng dẫn thay thế nếu thích hợp):
- Khi mà lựa chọn được quy định bằng cú pháp, một "tùy chọn" được tạo ra cho mỗi trường hợp cung cấp cho sự lựa chọn đó;
Ví dụ 1: Đối với các tham số đầu vào "màu = xanh dương I đỏ I xanh lá" (trong đó dấu I đại diện cho toán tử Boolean "OR"), ba tùy chọn "xanh dương","đỏ" và "xanh lá" chính là các hạng mục bao phủ kiểm thử.
- Khi mà một lặp lại được quy định bằng cú pháp, ít nhất hai "tùy chọn" được tạo ra cho lặp lại đó; một với số lần lặp tối thiểu và một với nhiều hơn số lần lặp tối thiểu;
Ví dụ 2: Đối với tham số đầu vào là "chữ cái = [A - z I a - z] + "(trong đó dấu "+" đại diện cho "một hoặc nhiều"), hai tùy chọn "một chữ cái" và "nhiều hơn một chữ cái" chính là các hạng mục bao phủ kiểm thử.
Khi mà việc lặp lại được quy định với số lần lặp tối đa, ít nhất hai "tùy chọn" được tạo ra cho lặp lại đó; một với số lần lặp tối đa và một với nhiều hơn số lần lặp tối đa.
Ví dụ 3: Đối với các tham số đầu vào là "chữ cái = (A - z I a - z]100" (trong đó “100” đại diện cho một chữ cái có thể được lựa chọn lên đến 100 lần), hai tùy chọn đó là "100 chữ cái" và "trên 100 chữ cái" chính là các hạng mục bao phủ kiểm thử.
Có thể sử dụng các hướng dẫn dưới đây để tạo ra "những đột biến" (có thể sử dụng những hướng dẫn thay thế nếu thích hợp);
- Đối với bất kỳ đầu vào nào, cú pháp đã định nghĩa có thể đột biến gây ra các đầu vào không hợp lệ ("đột biến").
Ví dụ 4: Đối với các tham số đầu vào "màu = xanh dương I đỏ I xanh lá", nếu lựa chọn "màu vàng" sẽ là "đột biến" vì trong các tham số đầu vào không có "màu vàng". Đây được coi là một đột biến và đó chính là hạng mục bao phủ kiểm thử. Những đột biến khác được trình bày trong điều B.2.4.5.
5.2.4.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử cú pháp được xây dựng để bao phủ các tùy chọn và các đột biến. Sử dụng các bước dưới đây khi xây dựng cac ca kiểm thử:
a) Lựa chọn một phương pháp dưới đây khi kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi các ca kiểm thử, có đó hai phương pháp phổ biến là:
1) Phương pháp một - một, trong đó mỗi ca kiểm thử được tạo ra để thực hiện duy nhất một tùy chọn, một lần lặp và/ hoặc một đột biến cụ thể;
2) Phương pháp tối thiểu hóa, trong đó các tùy chọn, các lần lặp và/ hoặc các đột biến có trong các ca kiểm thử sao cho chỉ cần tạo ra một số lượng tối thiểu các ca kiểm thử mà bao phủ được tất cả các tùy chọn, các lần lặp và/ hoặc các đột biến ít nhất một lần.
CHÚ THÍCH: Các phương pháp khác dùng để kết hợp các hạng mục bao phủ kiểm thử được thực hiện bởi ca kiểm thử được mô tả trong Điều 5.2.5 (các kỹ thuật thiết kế kiểm thử tổ hợp).
b) Lựa chọn các hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có;
c) Xác định giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử và xác định giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác theo yêu cầu của ca kiểm thử;
d) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
e) Lặp lại các bước từ b) đến d) cho đến khi tạo ra tất cả các tùy chọn, những lặp đi lặp lại và / hoặc các đột biến cú pháp.
5.2.5 Các kỹ thuật thiết kế kiểm thử tổ hợp
5.2.5.1 Tổng quan
Các kỹ thuật thiết kế kiểm thử tổ hợp được sử dụng để xây dựng một tập con các ca kiểm thử có ý nghĩa và có thể quản lý được mà bao phủ các điều kiện kiểm thử và các hạng mục bao phủ kiểm thử có thể tạo ra trong khi kiểm thử. Các tổ hợp được xác định theo các tham số hạng mục kiểm thử và các giá trị mà các tham số này có thể có được. Nếu có nhiều tham số (mỗi tham số có nhiều giá trị rời rạc) ảnh hưởng lẫn nhau, kỹ thuật này cho phép giảm đáng kể số lượng các ca kiểm thử quy định mà không ảnh hưởng đến độ bao phủ chức năng.
5.2.5.2 Xác định các điều kiện kiểm thử (TD2)
Các tham số hạng mục kiểm thử biểu diễn các khía cạnh cụ thể của các hạng mục kiểm thử có liên quan đến kiểm thử, nó tương ứng với các tham số đầu vào đối với các hạng mục kiểm thử, cũng có thể sử dụng các khía cạnh khác của hạng mục kiểm thử.
Ví dụ 1: Trong kiểm thử cấu hình, tham số có thể là các yếu tố môi trường khác nhau, chẳng hạn như hệ điều hành và trình duyệt.
Mỗi tham số hạng mục kiểm thử có thể đưa ra các giá trị khác nhau. Để sử dụng trong kỹ thuật này thì tập các giá trị phải là hữu hạn và có thể quản lý được. Một số tham số hạng mục kiểm thử có thể bị hạn chế để chỉ đưa ra một tập nhỏ các giá trị trong khi các tham số hạng mục kiểm thử khác có thể ít bị hạn chế hơn khi đưa ra một tập nhỏ các giá trị.
Ví dụ 2: Một tham số hạng mục kiểm thử có thể hạn chế đến một số nhỏ các giá trị, đó là tham số "ngày trong tuần" chỉ có thể có bảy giá trị cụ thể đó là "[Thứ hai I Thứ ba I Thứ tư I Thứ năm I Thứ sáu I Thứ bảy I Chủ nhật]".
Ví dụ 3: Một tham số hạng mục kiểm thử ít bị hạn chế hơn là một tham số bao gồm bất kỳ số thực nào mà tồn tại một dãy số vô hạn.
Đối với các tham số hạng mục kiểm thử không bị hạn chế, cần phải áp dụng các kỹ thuật thiết kế kiểm thử khác, chẳng hạn như phân vùng tương đương hoặc phân tích giá trị biên để giảm một tập lớn các giá trị có thể đối với một tham số xuống một tập con có thể quản lý được.
Các điều kiện kiểm thử đối với kiểm thử tổ hợp tương tự với tất cả các kỹ thuật thiết kế kiểm thử tổ hợp; mỗi điều kiện thử sẽ là một tham số hạng mục kiểm thử được lựa chọn (P) với một giá trị cụ thể (V), sẽ tạo thành một cặp PV.
5.2.5.3 Kiểm thử tất cả các tổ hợp
5.2.5.3.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử “tất cả các tổ hợp” (Grindal, Offutt and Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử sẽ là các phần tử của một tập các tổ hợp khác nhau của các cặp PV sao cho mỗi tham số được bao phủ ít nhất một lần trong tập các tổ hợp này.
5.2.5.3.2 Xây dựng các ca kiểm thử (TD4)
Xây dựng các ca kiểm thử trong đó mỗi ca kiểm thử thực thi một tổ hợp duy nhất các cặp PV. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có chưa được bao phủ bởi một ca kiểm thử nào;
b) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho cơ sở kiểm thử;
c) Lặp lại các bước từ a) và b) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Số lượng tối thiểu các ca kiểm thử cần thiết để đạt được 100% độ bao kiểm thử tất cả các tổ hợp tương ứng với số cặp PV được kếi hợp cho từng tham số hạng mục kiểm thử.
5.2.5.4 Kiểm thử từng cặp
5.2.5.4.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử từng cặp (Grindal, Offutt và Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử là các cặp độc nhất của cặp PV, trong đó mỗi cặp PV trong một cặp dùng cho một tham số hạng mục kiểm thử khác nhau. Thay vì tất cả các tổ hợp có thể có của các tham số (như đã quy định đối với kiểm thử tất cả các hợp), kỹ thuật này bao gồm tất cả các cặp giá trị được chọn trong toàn bộ tập các giá trị, do đó việc thực hiện các hạng mục kiểm thử có ít ca kiểm thử hơn sẽ rất hiệu quả. Kiểm thử từng cặp cũng được gọi là là kiểm thử "tất cả các cặp".
5.2.5.4.2 Xây dựng các ca kiểm thử (TD4)
Trước tiên phải xác định các cặp PV, sau đó sẽ xây dựng các ca kiểm thử để thực hiện các cặp PV, trong đó mỗi ca kiểm thử thực thi một hoặc nhiều cặp PV. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có, trong đó mỗi cặp của các cặp PV bao gồm một cặp các giá trị tham số khác nhau mà chưa được bao gồm trong một ca kiểm thử nào;
b) Xác định các giá trị hợp lệ tùy ý cho bất kỳ tham số khác có mặt trong các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi tất cả các cặp khác nhau của cặp PV đã được thực hiện.
Không dễ để tính toán được số lượng tối thiểu các ca kiểm thử quy định để đạt được 100% độ bao phủ kiểm thử từng cặp. Một tập gần như tối ưu các trường hợp kiểm có thể được coi là chấp nhận được và có thể được tính toán bằng cách sử dụng một trong ba tùy chọn dưới đây:
- Xác định một tập gần như tối ưu các ca kiểm thử bằng cách sử dụng một thuật toán;
- Sử dụng một công cụ tự động (thực hiện một thuật toán) để xác định một tập gần như tối ưu các ca kiểm thử;
- Sử dụng các mảng trực giao (Mandl 1985) để xác định một tập gần như tối ưu các ca kiểm thử.
5.2.5.5 Kiểm thử từng lựa chọn
5.2.5.5.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử từng lựa chọn (hoặc kiểm thử 1-wise) (Grindal, offutt và Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử là các phần tử của một tập các cặp PV sao cho mỗi giá trị tham số có mặt ít nhất một lần trong tập này.
5.2.5.5.2 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các cặp PV, trong đó mỗi ca kiểm thử thực thi một hoặc nhiều cặp PV mà trước đó chưa có mặt trong một ca kiểm thử nào. Sử dụng các bước dưới đây để xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho các ca kiểm thử hiện có, trong đó ít nhất một hạng mục bao phủ kiểm thử được lựa chọn có mặt trong một ca kiểm thử trước đó;
b) Xác định các giá trị hợp lệ tùy ý cho bất kỳ tham số khác có mặt trong các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
Số lượng tối thiểu các ca kiểm thử cần thiết để đạt được 100% độ bao phủ kiểm thử từng lựa chọn tương ứng với số lượng tối đa các giá trị mà bất kỳ một trong những tham số hạng mục kiểm thử có thể có.
5.2.5.6 Kiểm thử lựa chọn cơ sở
5.2.5.6.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử lựa chọn cơ sở (Grindal, offutt và Andler đưa ra năm 2005), các hạng mục bao phủ kiểm thử la các tập chứa các cặp PV cho từng tham số đầu vào, trong đó tất cả các tham số, ngoại trừ một tham số được thiết lập làm giá trị “cơ sở” và tham số cuối cùng được thiết lập là một trong các giá trị hợp lệ khác.
CHÚ THÍCH: Có một số phương pháp lựa chọn các giá trị cơ sở cho từng tham số. Ví dụ, các giá trị cơ sở này có thể được lựa chọn từ hồ sơ hoạt động, từ các đường đi tiêu biểu trong kiểm thử kịch bản, từ các hạng mục bao phủ kiểm thử được xác định trong quá trình phân vùng tương đương hoặc từ các giá trị mặc định (được sử dụng thường xuyên nhất) cho các tham số.
5.2.5.6.2 Xây dựng các ca kiểm thử (TD4)
Trước tiên phải xác định được các cặp PV, tiếp đến lựa chọn những giá trị cơ sở cho mỗi tham số. Các ca kiểm thử sẽ được xây dựng bằng cách thiết lập tất cả các tham số đầu vào nhưng để lại hai tham số, trong đó một tham số thiết lập là giá trị cơ sở của nó và tham số còn lại thiết lập là một giá trị hợp lệ cho đến khi đạt được mức độ bao phủ kiểm thử các cặp PV. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xây dựng các ca kiểm thử cơ sở bằng cách thiết lập từng tham số là giá trị "cơ sở";
b) Tạo ra một ca kiểm thử mới bằng cách thiết lập một tham số là giá trị hợp lệ (không phải giá trị cơ sở trong khi vẫn giữ được một tập còn lại các tham số cho các giá trị lựa chọn cơ sở;
c) Xác định các kết quả mong đợi của các ca kiểm thử mới bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước b) và c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.6 Kiểm thử bảng quyết định
5.2.6.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử bảng quyết định (được nêu trong BS 7925-2:1998, Myers 1979) sử dụng một mô hình các mối quan hệ lô-gic (các quy tắc quyết định) giữa các điều kiện (các nguyên nhân) và các hành động (các kết quả) cho hạng mục kiểm thử dưới dạng bảng quyết định, trong đó:
Mỗi điều kiện Boolean xác định hai phân vùng tương đương đầu vào cho hạng mục kiểm thử, một tương ứng với các trường hợp "đúng", và một tương ứng với các trường hợp "sai";
- Mỗi hành động là một kết quả mong đợi hoặc là sự kết hợp các kết quả cho hạng mục kiểm thử được biểu diễn như một điều kiện Boolean;
- Một bộ các quy tắc quyết định xác định các mối quan hệ cần thiết giữa các điều kiện và các hành động.
Trong kiểm thử bảng quyết định, các điều kiện kiểm thử sẽ là các điều kiện và các hành động.
CHÚ THÍCH: Nếu các điều kiện bao gồm nhiều giá trị hơn là chỉ gồm các giá trị Boolean, sẽ tạo được bảng quyết định "mục vào mở rộng", việc kiểm thử có thể được thực hiện bằng kỹ thuật phân vùng tương đương.
5.2.6.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử bảng quyết định, mỗi quy tắc quyết định xác định mối quan hệ giữa các điều kiện và các hành động của các hạng mục kiểm thư. Mỗi quy tắc quyết định này được coi là một hạng mục bao phủ kiểm thử
5.2.6.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các quy tắc quyết định (các hạng mục bao phụ kiểm thử), trong đó mỗi ca kiểm thử xác định các mối quan hệ giữa đầu vào và đầu ra, và mỗi quy tắc quyết định tương ứng với một kết hợp khác nhau của các điều kiện Boolean. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử từ bảng quyết định để thực thi là một ca kiểm thử;
b) Xác định các giá trị đầu vào thỏa mãn (các) điều kiện đầu vào của (các) quy tắc quyết định được bao phủ bởi các ca kiểm thử và các giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác để thực hiện các ca kiểm thử;
c) Xác định các kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho bảng quyết định;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu bảng quyết định gồm các điều kiện đầu vào thì có thể tạo ra những sự kết hợp không khả thi (ví dụ như "tuổi nhỏ hơn 18" và "tuổi lớn hơn 65" đều cho kết quả đúng). Trong tình huống này các quy tắc quyết định không khả thi như vậy cần được xác định và ghi chép lại và không được sử dụng để xây dựng các ca kiểm thử.
5.2.7 Đồ thị nguyên nhân - kết quả
5.2.7.1 Xác định các điều kiện kiểm thử (TD2)
Đồ thị nguyên nhân - kết quả (BS 7925-2: 1998, Myers 1979, Nursimulu và Probert đưa ra năm 1995) sử dụng một mô hình các mối quan hệ lô-gic (các quy tắc quyết định) giữa các nguyên nhân (ví dụ như các đầu vào) và các kết quả (ví dụ như các đầu ra) cho cac hạng mục kiểm dưới dạng đồ thị nguyên nhân - kết quả, trong đó:
- Mỗi nguyên nhân kiểu Boolean xác định hai phân vùng tương đương đầu vào cho các hạng mục kiểm thử, một tương ứng với các trường hợp “đúng”, và một tương ứng với các trường hợp "sai":
- Mỗi kết quả xác định một điều kiện đầu ra mong đợi hoặc kết hợp các điều kiện đầu ra cho các hạng mục kiểm thử được biểu diễn như một kiểu Boolean.
Các điều kiện kiểm thử sẽ là các nguyên nhân và các kết quả.
Đồ thị nguyên nhân - kết quả minh họa mối quan hệ lô-gic giữa các nguyên nhân và các kết quả giống như một mạng lô-gic Boolean được tạo thành bởi các toán tử Boolean, có thể tạo ra những ràng buộc về mặt cú pháp và ngữ nghĩa thông qua các mối quan hệ giữa nguyên nhân và các mối quan hệ giữa các kết quả (xem hình B.11 và điều B. 12 trong phụ lục B.2.7.4).
5.2.7.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong đồ thị nguyên nhân - kết quả, mỗi quy tắc quyết định xác định mối quan hệ giữa các nguyên nhân và các kết quả của hạng mục kiểm thử được coi là một hạng mục bao phủ kiểm thử.
5.2.7.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử được xây dựng để thực hiện các hạng mục bao phủ kiểm thử. Một bảng quyết định tương ứng có thể được tạo ra từ đồ thị nguyên nhân - kết quả và được sử dụng để xây dựng các ca kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn các hạng mục bao phủ kiểm thử được thực thi trong ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử và các giá trị hợp lệ tùy ý cho bất kỳ biến đầu vào khác để thực hiện các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho đồ thị nguyên nhân - kết quả và/hoặc bảng quyết định.
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức độ bao phủ quy định.
5.2.8 Kiểm thử chuyển đổi trạng thái
5.2.8.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử chuyển đổi trạng thái (BS 7925-2:1998, Copeland đưa ra năm 2004) sử dụng một mô hình các trạng thái, các chuyển tiếp giữa các trạng thái, các sự kiện tạo ra các chuyển tiếp và các hành động do các chuyển tiếp tạo ra. Các trạng thái của mô hình phải rời rạc, dễ nhận biết và hữu hạn về số lượng. Một chuyển tiếp đơn lẻ có thể bị giới hạn bởi một bảo vệ sự kiện mà xác định một tập các điều kiện phải có kết quả đúng thì sự kiện đó mới xảy ra, để cho quá trình chuyển tiếp diễn ra. Trong kiểm thử chuyển đổi trạng thái, các điều kiện kiểm thử có thể là tất cả các trạng thái của mô hình trạng thái, tất cả sự chuyển tiếp của mô hình trạng thái hoặc toàn bộ mô hình trạng thái, tùy thuộc vào các yêu cầu bao phủ của kiểm thử. Mô hình này có thể được biểu diễn dưới dạng sơ đồ trạng thái hoặc bảng trạng thái (mặc dù cũng có thể sử dụng các đại diện khác).
5.2.8.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử chuyển đổi trạng thái, các hạng mục bao phủ kiểm thử sẽ thay đổi tùy thuộc vào điều kiện kết thúc kiểm thử và phương pháp thiết kế kiểm thử được lựa chọn. Điều kiện kết thúc kiểm thử bao gồm nhưng không giới hạn các mục sau:
- Các trạng thái, trong đó các hạng mục bao phủ kiểm thử được xác định để cho phép tất cả các trạng thái trong mô hình trạng thái được "đi qua";
- Các chuyển tiếp đơn (bao phủ 0-switch), trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ các trạng thái đơn hợp lệ trong mô hình trạng thái;
- Tất cả các chuyển tiếp, trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ cả các chuyển tiếp hợp lệ trong mô hình trạng thái và các chuyển tiếp "không hợp lệ" (các chuyển tiếp từ các trạng thái được bắt đầu bằng các sự kiện trong mô hình trạng thái mà không có quá trình chuyển đổi hợp lệ nào được xác định);
- Đa chuyển tiếp (bao phủ N-switch), trong đó các hạng mục bao phủ kiểm thử được xác định để bao phủ các chuỗi hợp lệ N + 1 trạng thái trong mô hình trạng thái.
CHÚ THÍCH: Độ bao phủ "1-switch" là một biến thể phổ biến của độ bao phủ “N-switch” mà đòi hỏi các cặp trạng thái phải được thực thi.
5.2.8.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử chuyển đổi trạng thái được tạo ra để thực hiện các hạng mục bao phủ kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm thử cho ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp (các) đầu vào cho các cơ sở kiểm thử (kết quả mong đợi có thể được xác định theo các đầu ra và các trạng thái được mô tả trong mô hình trạng thái);
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.9 Kiểm thử kịch bản
5.2.9.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử kịch bản (Desikan và Ramesh đưa ra năm 2007) sử dụng một mô hình các chuỗi tương tác giữa hạng mục kiểm thử và các hệ thống khác (trong ngữ cảnh này, người dùng thường được coi là các hệ thống khác) với mục đích kiểm thử các luồng sử dụng liên quan đến hạng mục kiểm thử. Các điều kiện kiểm thử là một chuỗi các tương tác (tức là một kịch bản) hoặc là tất cả các chuỗi tương tác (tức là tất cả các kịch bản).
Trong kiểm thử kịch bản, bước này sẽ bao gồm việc xác định:
- Kịch bản "chính" là một chuỗi tiêu biểu các hành động được mong đợi của các hạng mục kiểm thử hoặc một lựa chọn tùy ý khi chưa biết được chuỗi tiêu biểu các hành động;
- Các kịch bản "thay thế" đại diện cho các kịch bản thay thế (kịch bản phụ) có thể được xác định thông qua các hạng mục kiểm thử.
CHÚ THÍCH 1: Kịch bản thay thế có thể bao gồm các điều kiện sử dụng bình thường, các điều kiện bắt buộc hoặc các điều kiện khắc nghiệt và những ngoại lệ.
CHÚ THÍCH 2: Kiểm thử kịch bản thường được sử dụng để tiến hành "kiểm thử đầu - cuối" khi kiểm thử chức năng, chẳng hạn như trong quá trình kiểm thử hệ thống hoặc kiểm thử chấp nhận.
Một dạng phổ biến của kiểm thử kịch bản là kiểm thử trường hợp sử dụng (Bath 2008; Hass 2008) sử dụng một mô hình trường hợp sử dụng của các hạng mục kiểm thử mô tả cách thức các hạng mục kiểm thử tương tác với một hoặc nhiều nhân tố với mục đích kiểm thử các chuỗi tương tác (tức là các kịch bản) liên quan đến các hạng mục kiểm thử.
CHÚ THÍCH 3: Trong kiểm thử trường hợp sử dụng, mô hình trường hợp sử dụng sẽ là một kiểu mô hình mô tả cách thức các hành động khác nhau được thực hiện bởi các hạng mục kiểm thử là kết quả các thủ tục khác nhau do các nhân tố thực hiện. Nhân tố có thể là một người dùng hoặc một hệ thống khác.
CHÚ THÍCH 4: Kiểm thử luồng chuyển đổi (Beizer 1995) thường được phân loại là kiểm thử kịch bản.
5.2.9.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các hạng mục bao phủ kiểm thử là những kịch bản chính và kịch bản thay thế (tức là các hạng mục bao phủ kiểm thử cũng giống như các điều kiện kiểm thử). Do đó, không cần thực hiện thêm hành động nào đối với kỹ thuật này.
5.2.9.3 Xây dựng các ca kiểm thử (TD4)
Các ca kiểm thử đối với kiểm thử kịch bản được xây dựng bằng cách bao phủ từng kịch bản (hạng mục bao phủ kiểm thử) bằng ít nhất một ca kiểm thử. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) hạng mục bao phủ kiểm để thử thực hiện ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào để thực hiện (các) hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.2.10 Kiểm thử ngẫu nhiên
5.2.10.1 Xác định các điều kiện kiểm thử (TD2)
Kiểm thử ngẫu nhiên (BS 7925-2: 1998; Craig và Jaskiel 2002; Kaner 1988) sử dụng một mô hình miền đầu vào của các hạng mục kiểm thử mà xác định một tập các giá trị đầu vào có thể. Lựa chọn phân bố đầu vào để tạo ra các giá trị đầu vào ngẫu nhiên. Đối với kiểm thử ngẫu nhiên, toàn bộ miền vào sẽ là điều kiện kiểm thử.
Ví dụ: Các loại phân bố đầu vào bao gồm phân bổ thông thường, phân bố đồng đều và hồ sơ hoạt động.
5.2.10.2 Xác định các hạng mục bao phủ kiểm thử(TD3)
Không có các hạng mục bao phủ kiểm thử đối với kiểm thử ngẫu nhiên.
5.2.10.3 Xây dựng các ca kiểm thử (TD4)
Đối với kiểm thử ngẫu nhiên, các ca kiểm thử được chọn bằng cách lựa chọn ngẫu nhiên các giá trị đầu vào từ miền đầu vào của các hạng mục kiểm thử (hoặc giả ngẫu nhiên nếu sử dụng một công cụ kiểm thử) theo phân bố đầu vào đã chọn. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn một phân bố vào để lựa chọn các đầu vào kiểm thử;
b) Tạo ra các giá trị ngẫu nhiên cho các đầu vào kiểm thử dựa trên phân bố đầu vào được lựa chọn ở bước a);
c) Xác định kết quả mong đợi của ca kiểm thử bằng cách cung cấp (các) đầu vào cho cơ sở kiểm thử;
d) Lặp lại các bước b) và c) cho đến khi kết thúc kiểm thử.
CHÚ THÍCH 1: Việc kiểm thử đòi hỏi phải xác định số kiểm thử đã được thực hiện, thời gian dành để kiểm thử hoặc cách thức hoàn thành kiểm thử.
CHÚ THÍCH 2: Bước b) thường được thực hiện tự động.
5.3 Các kỹ thuật kiểm thử dựa trên cấu trúc
5.3.1 Kiểm thử câu lệnh
5.3.1.1 Xác định các điều kiện kiểm thử (TD2)
Tạo mã nguồn của các hạng mục kiểm thử mà xác định các câu lệnh có thể thực thi được hoặc không thể thực thi được (BS 7925-2:1998, Myers 1979). Mỗi câu lệnh có thể thực thi được sẽ là một điều kiện kiểm thử.
CHÚ THÍCH: Việc xác định các câu lệnh không thể thực thi được có thể được thực hiện trong bước TD4, sử dụng một công cụ tự động.
5.3.1.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi câu lệnh có thể thực thi được sẽ là một hạng mục bao phủ kiểm thử (tức là các hạng mục bao phủ kiểm thử cũng giống như các điều kiện kiểm thử). Do đó, không cần thực hiện thêm hành động nào đối với kỹ thuật này.
5.3.1.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực hiện;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp các đầu vào kiểm thử tương ứng cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.2 Kiểm thử nhánh
5.3.2.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình kiểm thử luồng điều khiển mà xác định các nhánh trong luồng điều khiển của các hạng mục kiểm thử (BS 7925-2: 1998; Điều 4.7.1). Mỗi nhánh trong mô hình luồng điều khiển sẽ là một điều kiện kiểm thử.
Một nhánh là:
- Sự di chuyển có điều kiện của luồng điều khiển từ một nút bất kỳ trong mô hình luồng điều khiển đến nút khác;
- Sự di chuyển không có điều kiện của luồng điều khiển từ một nút bất kỳ đến một nút khác trong mô hình luồng điều khiển;
- Sự di chuyển của luồng điều khiển đến một điểm bắt đầu của các hạng mục kiểm thử khi hạng mục kiểm thử có nhiều hơn một điểm bắt đầu.
CHÚ THÍCH 1: Để đủ bao phủ 100% tất cả các nhánh đòi hỏi tất cả các cung (các đường kết nối các nút hoặc các cạnh) trong đồ thị luồng điều khiển phải được kiểm thử, kể cả các câu lệnh tiếp theo giữa một điểm bắt đầu và điểm kết thúc mà không có các quyết định.
CHÚ THÍCH 2: Kiểm thử nhánh có thể đòi hỏi phải kiểm thử cả các nhánh có điều kiện và các nhánh không có điều kiện, bao gồm cả điểm bắt đầu và điểm kết thúc đối với một hạng mục kiểm thử, tùy thuộc vào mức độ hạng mục bao phủ kiểm thử quy định.
CHÚ THÍCH 3: Lời gọi hàm và lời gọi phương thức không được coi là các điều kiện kiểm thử riêng trong kiểm thử nhánh.
5.3.2.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi nhánh trong mô hình luồng điều khiển sẽ là một hạng mục bao phủ kiểm thử (tức là các hạng mục bao phủ kiểm thử cũng giống như các điều kiện kiểm thử). Do đó, không cần thực hiện thêm hành động nào đối với kỹ thuật này.
5.3.2.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mã sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH 1: Nếu không có nhánh nào trong hạng mục kiểm thử vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và các ca kiểm thử.
CHÚ THÍCH 2: Nếu có nhiều điểm bắt đầu hạng mục kiểm thử, sẽ đòi hỏi phải có đầy đủ ca kiểm thử để bao phủ mỗi điểm bắt đầu.
5.3.3 Kiểm thử quyết định
5.3.3.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển các hạng mục kiểm thử để đưa ra các quyết định. Các quyết định chính là các điểm trong hạng mục kiểm thử nơi hai hay nhiều đầu ra (các đường đi con) có thể được thực hiện bằng luồng điều khiển (BS 7925-2:1998, Myers 1979). Các quyết định tiêu biểu được sử dụng cho các lựa chọn đơn giản (ví dụ như lệnh if-then-else trong mã nguồn), để quyết định khi nào thoát khỏi các vòng lặp (ví dụ như lệnh while-loop trong mã nguồn) và trong các câu lệnh (case) switch (ví dụ như case-1-2-3-...-N trong mã nguồn). Trong kiểm thử quyết định, mỗi điều kiện kiểm thử trong mô hình luồng điều khiển sẽ là một quyết định.
5.3.3.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các kết quả quyết định từ mỗi quyết định sẽ được coi là các hạng mục bao phủ kiểm thử.
5.3.3.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực hiện;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.4 Kiểm thử điều kiện nhánh
5.3.4.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển của các hạng mục kiểm thử mà xác định các quyết định và các điều kiện trong các quyết định. Các quyết định là các điểm trong hạng mục kiểm thử nơi mà hai hay nhiều kết quả (các đường đi con) có thể được thực hiện bằng luồng điều khiển (BS 7925-2: 1998, Myers 1979). Các quyết định tiêu biểu được sử dụng cho các lựa chọn đơn giản (ví dụ như lệnh if-then-else trong mã nguồn), để quyết định khi nào thoát khỏi các vòng lặp (ví dụ như lệnh while-loop trong mã nguồn) và sử dụng trong các câu lệnh case (ví dụ như lệnh case-1-2-3-...-N trong mã nguồn, cũng được gọi là các lệnh switch). Trong kiểm thử điều kiện nhánh (BS 7925-2:1998), mỗi quyết định sẽ là một điều kiện kiểm thử.
Ví dụ: Trong mã nguồn chương trình, câu lệnh quyết định "if A OR B AND C then" là một điều kiện kiểm thử có chứa ba điều kiện liên quan đến các toán từ lô-gic.
5.3.4.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử điều kiện nhánh, tất cả các giá trị Boolean (giá trị đúng/sai) của (các) điều kiện trong các quyết định sẽ được coi là các hạng mục bao phủ kiểm thử. Các kết quả quyết định của mỗi quyết định cũng được coi là các hạng mục bao phủ kiểm thử.
5.3.4.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà bao gồm một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định một tập con các đầu vào kiểm thử từ bước b) bao gồm các giá trị Boolean của các điều kiện trong quyết định và kết quả quyết định;
d) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
e) Lặp lại các bước từ a) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.5 Kiểm thử kết hợp điều kiện nhánh
5.3.5.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển của các hạng mục kiểm thử để đưa ra các quyết định và các điều kiện. Trong kiểm thử kết hợp điều kiện nhánh (BS 7925-2:1998), mỗi quyết định sẽ là một điều kiện kiểm thử.
Ví dụ: Trong mã nguồn chương trình, câu lệnh quyết định "if A OR B AND C then" là một điều kiện kiểm thử có chứa ba điều kiện liên quan đến các toán tử lô-gic.
5.3.5.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi kết hợp khả thi các giá trị Boolean của các điều kiện trong mỗi quyết định được coi là một hạng mục bao phủ kiểm thử (BS 7925-2: 1998, Myers 1979). Hạng mục bao phủ này bao gồm các quyết định đơn giản, trong đó các kết hợp có hai đầu ra Boolean riêng biệt của một điều kiện trong một quyết định.
5.3.5.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định tập các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển đã xác định được thực thi;
c) Xác định một tập con của đầu vào kiểm thử từ bước b) bao gồm tổ hợp các giá trị Boolean của các điều kiện trong quyết định;
d) Xác định các kết quả mong đợi bằng cách cung cấp đầu vào kiểm thử đã được lựa chọn cho các cơ sở kiểm thử;
e) Lặp lại các bước từ a) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.6 Kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC)
5.3.6.1 Xác định các điều kiện kiểm thử (TD2)
Xây dựng một mô hình luồng điều khiển của các hạng mục kiểm thử đề đưa ra các quyết định và các điều kiện. Trong kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC) (BS 7925-2: 1998), mỗi quyết định sẽ là một điều kiện kiểm thử.
Ví dụ: Trong mã nguồn chương trình, câu lệnh quyết định "if A OR B AND C then" là một điều kiện kiểm thử có chứa ba điều kiện liên quan đến các toán tử lô-gic.
5.3.6.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Mỗi kết hợp khả thi các giá trị Boolean riêng biệt của các điều kiện trong một quyết định mà làm cho một điều kiện Boolean ảnh hưởng đến đầu ra của các quyết định sẽ được coi là một hạng mục bao phủ kiểm thử.. Nếu một điều kiện ảnh hưởng độc lập đến đầu ra của một quyết định thì sẽ chỉ làm thay đổi điều kiện đó mà không làm thay đổi các điều kiện khác.
CHÚ THÍCH: Hạng mục bao phủ kiểm thử bao gồm các quyết định đơn giản, trong đó các kết hợp gồm hai kết quả Boolean riêng biệt của một điều kiện trong một quyết định.
5.3.6.3 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển mà đến được một hoặc nhiều các hạng mục bao phủ kiểm thử chưa được thực thi trong khi kiểm thử;
b) Xác định tập các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển đã xác định được thực thi;
c) Xác định một tập con các đầu vào kiểm thử từ bước b) bao gồm các kết hợp của các giá trị Boolean riêng biệt của điều kiện trong các quyết định cho phép một điều kiện Boolean ảnh hưởng độc lập đến đầu ra;
d) Xác định các kết quả mong đợi bằng cách cung cấp đầu vào kiểm thử đã được lựa chọn cho các cơ sở kiểm thử;
e) Lặp lại các bước từ a) đến d) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Nếu không có các quyết định trong hạng mục kiểm thử thì vẫn phải có một điều kiện kiểm thử, một hạng mục bao phủ kiểm thử và một ca kiểm thử.
5.3.7 Kiểm thử luồng dữ liệu
5.3.7.1 Xác định các điều kiện kiểm thử (TD2)
Trong kiểm thử luồng dữ liệu (Burnstein 2003), một mô hình của các hạng mục kiểm thử sẽ được tạo ra để xác định các đường đi con của luồng điều khiển qua các hạng mục kiểm thử, trong đó mỗi định nghĩa của một biến đã cho được liên kết với (các) sử dụng tiếp theo của cùng một biến và không phải định nghĩa lại giá trị của biến.
"Những định nghĩa" ở đây chính là những câu lệnh định nghĩa của một biến, tức là câu lệnh gán một giá trị mới cho một biến (đôi khi một định nghĩa sẽ định nghĩa một biến có cùng giá trị với giá trị trước đó của nó). "Sử dụng" ở đây chính là câu lệnh sử dụng biến đã có, không phải là câu lệnh gán một giá trị mới cho một biến; "Các sử dụng" có thể được phân biệt thành “p-use” (sử dụng biến để kiểm tra điều kiện) hoặc “c-use” (sử dụng biến để tính toán). P-use có nghĩa là sử dụng một biến để xác định kết quả của một điều kiện trong một quyết định, chẳng hạn như lệnh while-loop, if-then-else, vv. C-use là câu lệnh sử dụng một biến làm đầu vào để tính toán bất kỳ biến nào hoặc của một đầu ra.
Trong kiểm thử luồng dữ liệu, mỗi cặp định nghĩa - sử dụng dành cho một biến trong các hạng mục kiểm thử là một điều kiện kiểm thử.
Có một số dạng kiểm thử luồng dữ liệu, tất cả các dạng này đều dựa trên các điều kiện kiểm thử giống nhau. Có năm dạng kiểm thử luồng dữ liệu được xác định trong tiêu chuẩn này, đó là: Kiểm thử tất cả các định nghĩa của biến, kiểm thử tất cả các c-uses, kiểm thử tất cả các p-uses, kiểm thử tất cả các sử dụng biến và kiểm thử tất cả các đường định nghĩa - sử dụng.
5.3.7.2 Kiểm thử tất cả các định nghĩa của biến
5.3.7.2.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Trong kiểm thử tất cả các định nghĩa của biến, các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến một vài sử dụng biến ((p-use) hoặc (c-use)) của định nghĩa đó sẽ được coi là các hạng mục bao phủ kiểm thử. Mỗi đường đi con được gọi là một đường "định nghĩa - sử dụng". Kiểm thử “tất cả các định nghĩa của biến” đòi hỏi phải có ít nhất một đường không định nghĩa (có liên quan đến một biến cụ thể) xuất phát từ định nghĩa của biến đến một trong những c-uses hoặc p-use của nó bao phủ tất cả các định nghĩa của biến.
5.3.7.2.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định các định nghĩa chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển xuất phát từ các định nghĩa của biến đã xác định được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
CHÚ THÍCH: Trong thực tế, các bước này có thể cần phải thực hiện tự động.
5.3.7.3 Kiểm thử tất cả các c-uses
5.3.7.3.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến từng c-use của định nghĩa đó sẽ được coi là các hạng mục bao phủ kiểm thử. Kiểm thử “tất cả sử dụng biến để tính toán” đòi hỏi phải có ít nhất một đường không định nghĩa (có liên quan đến một biến cụ thể) xuất phát từ một định nghĩa của biến đến một trong những c-use của nó bao phủ tất cả các định nghĩa của biến có liên quan.
5.3.7.3.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển từ các định nghĩa của biến đến một c-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.7.4 Kiểm thử tất cả các p-use
5.3.7.4.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biển đến từng p-use của định nghĩa đó được coi là các hạng mục bao phủ kiểm thử. Kiểm thử “tất cả các p-uses” đòi hỏi phải có ít nhất một đường không định nghĩa (có liên quan đến một biến cụ thể) xuất phát từ một định nghĩa đến một trong những p-use của nó bao phủ tất cả các định nghĩa của biến có liên quan.
5.3.7.4.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển xuất phát từ các định nghĩa của biển đến p-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định các kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.7.5 Kiểm thử tất cả các sử dụng biến
5.3.7.5.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến mỗi sử dụng của biến (cả (p-use) và (c-use)) của định nghĩa đó được coi là các hạng mục bao phủ kiểm thử. Kiểm thử "tất cả các sử dụng biến" đòi hỏi phải có ít nhất một đường đi con xuất phát từ mỗi định nghĩa của một biến đến một trong những sử dụng của nó (không định nghĩa của một biến) được bao phủ.
5.3.7.5.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển từ các định nghĩa của biến đến một p-use hoặc c-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi từ việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) cho đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.3.7.6 Kiểm thử tất cả các đường định nghĩa - sử dụng
5.3.7.6.1 Xác định các hạng mục bao phủ kiểm thử (TD3)
Các đường đi con của luồng điều khiển xuất phát từ mỗi định nghĩa của biến đến tất cả sử dụng của biến (cả (p-use) và (c-use)) của định nghĩa đó được coi là các hạng mục bao phủ kiểm thử. Kiểm thử "tất cả các đường định nghĩa - sử dụng" đòi hỏi tất cả các đường đi con xuất phát từ mỗi định nghĩa của biến đến mỗi sử dụng của nó (không có định nghĩa của một biến) được bao phủ.
CHÚ THÍCH: Kiểm thử tất cả các đường định nghĩa - sử dụng đòi hỏi tất cả các đường loop-free sub-paths xuất phát từ một định nghĩa của biến đến sử dụng của nó được kiểm thử để đạt được 100% độ bao phủ hạng mục kiểm thử. Điều này khác với kiểm thử tất cả các sử dụng, chỉ cần một đường đi từ mỗi định nghĩa của biến đến mỗi sử dụng của biến được kiểm thử để đạt được 100% độ bao phủ hạng mục kiểm thử.
5.3.7.6.2 Xây dựng các ca kiểm thử (TD4)
Phải tuân thủ các bước dưới đây khi xây dựng các ca kiểm thử:
a) Xác định (các) đường đi con của luồng điều khiển từ các định nghĩa của biến đến tất cả p-use và c-use tiếp theo của định nghĩa đó mà chưa được thực thi trong khi kiểm thử;
b) Xác định các đầu vào kiểm thử mà sẽ làm cho (các) đường đi con của luồng điều khiển được thực thi;
c) Xác định kết quả mong đợi của việc thực hiện (các) đường đi con của luồng điều khiển bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi đạt được mức bao phủ kiểm thử yêu cầu.
5.4 Các kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
5.4.1 Đoán lỗi
5.4.1.1 Xác định các điều kiện kiểm thử (TD2)
Đoán lỗi (BS 7925-2: 1998, Myers 1979) liên quan đến việc lập một danh sách kiểm tra các loại lỗi mà có thể tồn tại trong các hạng mục kiểm thử, kỹ thuật này cho phép kỹ sư kiểm thử xác định đầu vào cho các hạng mục kiểm thử mà có thể gây ra các lỗi, nếu những lỗi này tồn tại trong hạng mục kiểm thử. Trong đoán lỗi, mỗi loại lỗi sẽ là một điều kiện kiểm thử.
CHÚ THÍCH: Danh sách kiểm tra các loại lỗi có thể được tạo ra bằng các biện pháp khác nhau, chẳng hạn như phân loại các lỗi đã biết, lấy thông tin được lưu trong trong hệ thống quản lý sự cố dựa vào kiến thức, kinh nghiệm và / hoặc sự hiểu biết của kỹ sư kiểm thử về (các) hạng mục kiểm thử và / hoặc các hạng mục kiểm thử tương tự hoặc dựa vào những kiến thức của các bên liên quan khác (ví dụ như những người sử dụng hệ thống hoặc các lập trình viên).
5.4.1.2 Xác định các hạng mục bao phủ kiểm thử (TD3)
Không có hạng mục bao phủ kiểm thử nào đối với kỹ thuật đoán lỗi.
5.4.1.3 Xây dựng các ca kiểm thử (TD4)
Đối với đoán lỗi, các ca kiểm thử được xây dựng bằng cách lựa chọn một loại lỗi từ danh sách kiểm tra các loại lỗi mà được bao phủ và xây dựng các ca kiểm thử mà có thể phát hiện loại lỗi đó trong các hạng mục kiểm thử nếu nó tồn tại. Sử dụng các bước dưới đây khi xây dựng các ca kiểm thử:
a) Lựa chọn (các) loại lỗi bao phủ các ca kiểm thử hiện có;
b) Xác định các giá trị đầu vào có thể gây ra một lỗi tương ứng với (các) loại lỗi được lựa chọn;
c) Xác định kết quả mong đợi của các ca kiểm thử bằng cách cung cấp đầu vào cho các cơ sở kiểm thử;
d) Lặp lại các bước từ a) đến c) đến khi kết thúc kiểm thử.
6 Tính độ bao phủ kiểm thử
6.1 Tổng quan
Các phương pháp tính độ bao phủ kiểm thử được định nghĩa trong tiêu chuẩn này dựa trên độ bao phủ kiểm thử của các kỹ thuật thiết kế kiểm thử khác nhau. Các mức bao phủ kiểm thử có thể dao động từ 0% đến 100%. Trong mỗi phép tính độ bao phủ, một số hạng mục bao phủ kiểm thử có thể không khả thi. Một hạng mục bao phủ kiểm thử được coi là không khả thi nếu nó không thể thực thi được hoặc không thể được bao phủ bởi một ca kiểm thử. Việc tính toán độ bao phủ sẽ được thực hiện bằng việc có tính đến hoặc không tính đến các hạng mục bao phủ kiểm thử không khả thi; sự lựa chọn này thường sẽ được ghi lại trong bản kế hoạch kiểm thử (được định nghĩa trong TCVN 12849-3:2020 (ISO/IEC/IEEE 29119-3)). Nếu không tính đến một hạng mục bao phủ kiểm thử, việc chứng minh tính không khả thi của nó sẽ được ghi lại trong báo cáo kiểm thử. Trong mỗi phép tính độ bao phủ, nếu không có các hạng mục bao phủ kiểm thử, độ bao phủ 100% đối với kiểu bao phủ đó sẽ được coi là không thể áp dụng được cho hạng mục kiểm thử đó.
Khi tính toán độ bao phủ kiểm thử cho bất kỳ kỹ thuật nào, sẽ sử dụng công thức sau:
- Độ bao phủ là độ bao phủ kỹ thuật thiết kế kiểm thử cụ thể;
- N là số các hạng mục bao phủ kiểm thử được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các hạng mục bao phủ kiểm thử được xác định bởi các kỹ thuật thiết kế kiểm thử.
Giá trị N và T của từng kỹ thuật kiểm thử được xác định trong các điều khoản dưới đây. Các phép tính độ bao phủ kiểm thử được trình bày trong các điều khoản dưới đây được dùng cho các kỹ thuật thiết kế kiểm thử được trình bày trong tiêu chuẩn này. Có thể có các phương pháp tính độ bao phủ khác được các tổ chức sử dụng nhưng không được đề cập trong điều khoản này.
Ví dụ: Các phương pháp khác mà có thể được dùng để đánh giá mức độ hoàn thành kiểm thử gồm tính tỷ lệ phần trăm của các yêu cầu được bao phủ trong khi kiểm thử.
6.2 Tính độ bao phủ các kỹ thuật thiết kế kiểm thử dựa trên đặc tả
6.2.1 Độ bao phủ kỹ thuật phân vùng tương đương
Độ bao phủ kỹ thuật phân vùng tương đương được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số lượng các phân vùng được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số phân vùng được xác định.
6.2.2 Độ bao phủ phương pháp cây phân loại
Độ bao phủ phương pháp cây phân loại được tính như sau:
Độ bao phủ phương pháp tối thiểu hóa được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các lớp được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số lớp.
Độ bao phủ phương pháp tối đa hóa được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp các lớp bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số kết hợp của các lớp.
6.2.3 Độ bao phủ kỹ thuật phân tích giá trị biên
Độ bao phủ đổi của kỹ thuật phân tích giá trị biên được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các giá trị biên khác nhau bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các giá trị biên.
Việc quyết định áp dụng kiểm thử 2 giá trị biên hoặc ba giá trị phải được ghi lại trong hồ sơ kiểm thử.
6.2.4 Độ bao phủ kiểm thử cú pháp
Hiện nay chưa có phương pháp tính toán độ bao phủ cho kiểm thử cú pháp.
CHÚ THÍCH: Việc tính toán độ bao phủ kiểm thử cú pháp không thể thực hiện được đo số lượng các tùy chọn và số lượng các đột biến vỏ cùng lớn.
6.2.5 Độ bao phủ kỹ thuật thiết kế kiểm thử tổ hợp
6.2.5.1 Độ bao phủ kiểm thử tất cả các tổ hợp
Độ bao phủ kiểm thử tất cả các tổ hợp được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp của các cặp PV bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các kết hợp cặp PV.
CHÚ THÍCH: Đối với định nghĩa của cặp PV, tham khảo Điều 4.2.3
6.2.5.2 Độ bao phủ kiểm thử từng cặp
Độ bao phủ kiểm thử từng cặp sẽ được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các cặp PV khác nhau được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp PV.
6.2.5.3 Độ bao phủ kiểm thử từng lựa chọn
Độ bao phủ kiểm thử từng lựa chọn được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số cặp PV được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp PV.
6.2.5.4 Độ bao phủ kiểm thử lựa chọn cơ sở
Độ bao phủ kiểm thử lựa chọn cơ sở được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp lựa chọn cơ sở được bao phủ bởi các ca kiểm thử đã được thực thi (tất cả các kết hợp ngoại trừ hai tham số, một tham số hạng mục kiểm thử được thiết lập giá trị cơ bản và một tham số hạng mục kiểm thử còn lại được thiết lập giá trị hợp lệ), cộng thêm một (khi tất cả các tham số hạng mục kiểm thử thiết lập giá trị cơ sở) nếu được thực hiện;
- T là tổng số kết hợp lựa chọn cơ sở (tất cả các kết hợp nhưng ngoại trừ hai tham số, một tham số hạng mục kiểm thử được thiết lập giá trị cơ bản và một tham số hạng mục kiểm thử còn lại được thiết lập giá trị hợp lệ), cộng thêm một (khi tất cả các tham số hạng mục kiểm thử được thiết lập các giá trị cơ bản).
6.2.6 Độ bao phủ kiểm thử bằng quyết định
Độ bao phủ kiểm thử bảng quyết định được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số quy tắc quyết định khả thi được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các quy tắc quyết định khả thi.
6.2.7 Độ bao phủ kiểm thử đồ thị nguyên nhân - kết quả
Độ bao phủ đồ thị nguyên nhân - kết quả được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số quy tắc quyết định được bao phủ các ca kiểm thử đã được thực thi;
- T là tổng số các quy tắc quyết định khả thi.
6.2.8 Độ bao phủ kiểm thử chuyển đổi trạng thái
Độ bao phủ kiểm thử tất cả các trạng thái được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các trạng trái được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các trạng trái.
Độ bao phủ các chuyển tiếp đơn (độ bao phủ 0-switch) được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số chuyển tiếp hợp lệ được thực hiện bởi các ca kiểm thử;
- T là tổng số chuyển tiếp hợp lệ.
Độ bao phủ tất cả các chuyển tiếp sẽ được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số chuyển tiếp lệ và không hợp lệ được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số chuyển đổi hợp lệ và không hợp lệ giữa các trạng thái được xác định bắt đầu bằng các sự kiện hợp lệ.
Độ bao phủ N + 1 chuyển tiếp (độ bao phủ kiểm thử N - switch) được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số N + 1 chuyển tiếp hợp lệ được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số N + 1 các chuyển tiếp hợp lệ.
6.2.9 Độ bao phủ kiểm thử kịch bản
Độ bao phủ kiểm thử kịch bản (bao gồm cả kiểm thử trường hợp sử dụng) được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kịch bản được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các kịch bản.
6.2.10 Độ bao phủ kiểm thử ngẫu nhiên
Hiện nay chưa có phương pháp tính toán độ bao phủ kiểm thử ngẫu nhiên.
6.3 Tính độ bao phủ các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc
6.3.1 Độ bao phủ câu lệnh
Độ bao phủ câu lệnh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các câu lệnh có thể thực thi được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các câu lệnh có thể thực thi.
6.3.2 Độ bao phủ kiểm thử nhánh
Độ bao phủ kiểm thử nhánh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đo:
- N là số nhánh được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số nhánh.
CHÚ THÍCH: Đối với các trường hợp mà không có các nhánh trong các hạng mục kiểm thử, bắt buộc phải thực hiện một kiểm thử để đạt được 100% độ bao phủ nhánh.
6.3.3 Độ bao phủ kiểm thử quyết định
Độ bao phủ kiểm thử quyết định được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết quả quyết định được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số kết quả quyết định.
CHÚ THÍCH: Đối với các trường hợp mà không có quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ.
6.3.4 Độ bao phủ kiểm thử điều kiện nhánh
Độ bao phủ kiểm thử điều kiện nhánh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số các giá trị Boolean của các điều kiện trong các quyết định cộng với số kết quả quyết định được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các giá trị Boolean của các điều kiện trong các quyết định cộng với tổng số các kết quả quyết định.
CHÚ THÍCH: Đối với các trường hợp mà không có quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ điều kiện nhánh.
6.3.5 Độ bao phủ kiểm thử kết hợp điều kiện nhánh
Độ bao phủ kiểm thử kết hợp điều kiện nhánh được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp các giá trị Boolean của các điều kiện trong mỗi quyết định được bao phủ bởi các ca kiểm thử đã thực thi;
- T là tổng số kết hợp khác nhau của các giá trị Boolean của các điều kiện trong các quyết định.
CHÚ THÍCH: Đối với các trường hợp mà không có quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ kết hợp điều kiện nhánh.
6.3.6 Độ bao phủ kiểm thử bao phủ quyết định điều kiện thay đổi (kiểm thử MCDC)
Độ bao phủ kiểm thử bao phủ quyết định điều kiện thay đổi được tính toán bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số kết hợp khả thi khác nhau của các giá trị Boolean riêng biệt của điều kiện trong các quyết định cho phép một điều kiện Boolean ảnh hưởng đến kết qua quyết định được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số kết hợp khác nhau của các giá trị Boolean riêng biệt của điều kiện trong các quyết định cho phép một điều kiện Boolean khác nhau có ảnh hưởng đến kết quả.
CHÚ THÍCH: Đối với các trường hợp mà không cố quyết định trong các hạng mục kiểm thử, bắt buộc phải có một kiểm thử để đạt được 100% độ bao phủ quyết định điều kiện sửa đổi.
6.3.7 Độ bao phủ kiểm thử luồng dữ liệu
6.3.7.1 Độ bao phủ kiểm thử tất cả các định nghĩa của biến
Độ bao phủ kiểm thử tất cả các định nghĩa của biến được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
N là số các định nghĩa liên quan đến các cặp định nghĩa sử dụng dữ liệu được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp định nghĩa sử dụng có trong các định nghĩa.
6.3.7.2 Độ bao phủ kiểm thử tất cả các c-uses
Độ bao phủ kiểm thử tất cả các c-uses được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số cặp định nghĩa dữ liệu - sử dụng biến để tính toán được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số các cặp định nghĩa dữ liệu - sử dụng biến để tính toán.
6.3.7.3 Độ bao phủ kiểm thử tất cả các p-uses
Độ bao phủ kiểm thử tất cả các p-uses được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số cặp định nghĩa dữ liệu - sử dụng biến để kiểm tra điều kiện được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số cặp đjnh nghĩa dữ liệu - sử dụng biến để kiểm tra điều kiện.
6.3.7.4 Độ bao phủ kiểm thử tất cả các sử dụng biến
Độ bao phủ kiểm thử tất cả các sử dụng biến được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số lượng các cặp định nghĩa - sử dụng khác nhau được bao phủ bởi các ca kiểm thử được thực thi;
- T là tổng số các cặp định nghĩa - sử dụng từ mỗi định nghĩa đến cả p-use và c-use của các định nghĩa đó.
6.3.7.5 Độ bao phủ kiểm thử tất cả các đường định nghĩa - sử dụng
Độ bao phủ đối với kiểm thử tất cả các đường định nghĩa - sử dụng được tính bằng công thức tính độ bao phủ được nêu trong Điều 6.1. Trong đó:
- N là số lượng các đường đi con của luồng điều khiển từ mỗi định nghĩa của biến đến từng sử dụng của nó mà có thể đạt được (không có định nghĩa của biến) được bao phủ bởi các ca kiểm thử đã được thực thi;
- T là tổng số đường đi con của luồng điều khiển từ mỗi định nghĩa đến cả p-use và c-use của định nghĩa đó.
6.4 Tính độ bao phủ kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm
6.4.1 Độ bao phủ đoán lỗi
Hiện nay chưa có phương pháp tính toán độ bao phủ cho kỹ thuật đoán lỗi.
Phụ lục A
(Tham khảo)
Các đặc tính chất lượng kiểm thử
A.1 Các đặc tính chất lượng
A.1.1 Tổng quan
Kiểm thử phần mềm được thực hiện nhằm xác định xem liệu các tiêu chí chất lượng quy định có đáp ứng được hạng mục kiểm thử. Phụ lục này bao gồm các ví dụ về cách thức các đặc tính chất lượng của phần mềm được định nghĩa trong ISO/IEC 25010 (ISO/IEC 25010:20111 được ánh xạ tới các kỹ thuật thiết kế kiểm thử được định nghĩa trong tiêu chuẩn này. Các kỹ thuật thiết kế kiểm thử được định nghĩa trong tiêu chuẩn này có thể được sử dụng để kiểm thử các đạc tính chất lượng của phần mềm. Ngoài các đặc tính chất lượng phần mềm ra, cũng cần phải lưu ý đến những đặc tính chất lượng khác (ví dụ: tính riêng tư).
Tiêu chuẩn ISO/IEC 25010 trình bày một mô hình chất lượng của phần mềm, mô hình này được trình bày trong hình A.1 dưới đây, nó phân loại các thuộc tính hệ thống/sản phẩm phần mềm thành 8 đặc tính chính đó là: tính năng phù hợp, tính hiệu quả, tính tương thích, tính khả dụng, độ tin cậy, tính bảo mật, khả năng bảo trì và tính khả chuyển. Mỗi đặc tính chất lượng chính này lại bao gồm một tập các đặc tính chất lượng con. Trong một số trường hợp, đòi hỏi phải có những yêu cầu quy định (ví dụ như các chính sách của chính phủ hoặc các luật) để đánh giá các đặc tính chất lượng mà một hệ thống thỏa mãn. Các kỹ thuật thiết kế kiểm thử và các loại kiểm thử khác nhau có thể được sử dụng để kiểm thử từng đặc tính chất lượng (xem Điều A.3 và A.4)
Điều A.2 giới thiệu về các loại kiểm thử mà có thể được sử dụng để kiểm thử các đặc tính chất lượng phần mềm được trình bày trong Hình A.1. Ánh xạ của từng đặc tính chất lượng đến các kiểu kiểm thử được trình bày trong điều A.3. Mối quan hệ giữa các đặc tính chất lượng và các kỹ thuật thiết kế kiểm thử dựa trên đặc tả và các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc được nêu trong tiêu chuẩn này được trình bày trong điều A.4
CHÚ THÍCH: ISO/IEC 25030 (ISO/IEC 25030:2007) có thể được sử dụng để xác định và đưa ra những yêu cầu chất lượng phần mềm mà có thể áp dụng cho một hạng mục kiểm thử. Những yêu cầu này sau đó có thể được sử dụng để xác định các đặc tính chất lượng trong ISO/IEC 25010 (ISO/IEC 25010: 2011) và các loại kiểm thử tương ứng được áp dụng để kiểm thử từng yêu cầu chất lượng.
Hình A.1 - Mô hình chất lượng sản phẩm trong ISO/IEC 25010
A.2 Các loại kiểm thử liên quan đến chất lượng
A.2.1 Kiểm thử khả năng truy cập
Mục đích của kiểm thử khả năng truy cập là để xác định xem liệu người dùng có các yêu cầu truy cập đặc trưng (ví dụ như do tuổi tác, bị khiếm thị hoặc bị khiếm thính) có thể thực hiện được hạng mục kiểm thử với đủ các đặc tính và khả năng (ISO/IEC 25010:2011) không. Kiểm thử khả năng truy cập sử dụng một mô hình hạng mục kiểm thử mà quy định rõ các yêu cầu truy cập của nó, bao gồm các tiêu chuẩn thiết kế truy cập mà hạng mục kiểm thử phải phù hợp. Các yêu cầu truy cập có liên quan đến khả năng của người dùng có nhu cầu truy cập đặc trưng nhằm đạt được các mục tiêu truy cập. Ví dụ như yêu cầu về hạng mục kiểm thử để hỗ trợ những người dùng khiếm thị và/ hoặc khiếm thính.
CHÚ THÍCH: Trang web W3C định nghĩa các chuẩn về khả năng truy cập, bao gồm khả năng truy cập các ứng dụng web và các thiết bị. Để biết thêm chi tiết, tham khảo trang web http://www.w3.org/standards/
A.2.2 Kiểm thử khả năng sao lưu/phục hồi
Mục đích của kiểm thử khả năng sao lưu/phục hồi là để xác định xem nếu trong trường hợp bị lỗi. một hạng mục kiểm thử có thể được khôi phục từ bản sao lưu trạng thái trước khi bị lỗi không. Kiểm thử khả năng sao lưu/ phục hồi sử dụng một mô hình hạng mục kiểm thử quy định các yêu cầu sao lưu và phục hồi của nó, trong đó quy định sự cằn thiết phải sao lưu các trạng thái hoạt động của một hạng mục kiểm thử tại một mốc thời gian nào đó, bao gồm dữ liệu, cấu hình và/hoặc môi trường và khôi phục trạng thái của hạng mục kiểm thử từ bản sao lưu đó. Kiểm thử khả năng sao lưu/phục hồi sau đó tập trung vào kiểm thử tính chính xác của việc sao lưu các hạng mục kiểm thử và tính chính xác của trạng thái phục hồi của hạng mục kiểm thử dựa trên trạng thái lỗi trước đó của nó. Kiểm thử khả năng sao lưu/phục hồi cũng có thể được sử dụng để kiểm chứng xem liệu các thủ tục sao lưu và phục hồi đối với hạng mục kiểm thử có đạt được các mục tiêu phục hồi như quy định không. Kiểu kiểm thử này có thể được thực hiện như một phần của kiểm thử khả năng phục hồi sau khi có sự cố (xem điều A.2.5).
A.2.3 Kiểm thử tương thích
Mục đích của kiểm thử tương thích là để xác định xem liệu hạng mục kiểm thử có thể hoạt động tốt trên các môi trường khác nhau không (tức là các hạng mục kiểm thử này có khả năng cùng tồn tại (tương thích) trong các môi trường khác nhau không). Kiểm thử tương thích cũng có thể được dùng cho nhiều bản sao của cùng một hạng mục kiểm thử hoặc nhiều hạng mục kiểm thử khi chia sẻ một môi trường chung.
Các yêu cầu tương thích đối với các hạng mục kiểm thử bao gồm một trong các yêu cầu nhỏ sau:
- Trình tự cài đặt: (Các) trình tự cài đặt rõ ràng (giả sử tất cả các trình tự cài đặt là hợp lệ) tạo ra một cấu hình mà ở đó từng hạng mục kiểm thử sẽ thực hiện các chức năng quy định của nó một cách chính xác.
- Trình tự cài đặt: (Các) trình tự cài đặt rõ ràng (giả sử tất cả các trình tự cài đặt là hợp lệ) tạo ra môt cấu hình thời gian chạy mà ở đó từng hạng mục kiểm thử sẽ thực hiện các chức năng quy định của nó một cách chính xác.
- Sử dụng đồng thời: Khả năng hai hoặc nhiều hạng mục kiểm thử thực hiện các chức năng quy định trong cùng một môi trường.
- Những hạn chế về môi trường: Những đặc tính của môi trường như bộ nhớ, bộ vi xử lý, kiến trúc, hoặc cấu hình, có thể ảnh hưởng đến khả năng của hạng mục kiểm thử khi thực hiện các chức năng của nó một cách chính xác.
A.2.4 Kiểm thử chuyển đổi
Mục đích của kiểm thử chuyển đổi là để xác định xem liệu dữ liệu hoặc phần mềm có thể tiếp tục có những khả năng quy định sau khi thực hiện những sửa đổi đối về định dạng không, chẳng hạn như chuyển đổi một chương trình từ một ngôn ngữ lập trình này sang ngôn ngữ lập trình khác hoặc chuyển đổi một tập tin dữ liệu phẳng hoặc cơ sở dữ liệu từ một định dạng này sang một định dạng khác. Một dạng kiểm thử chuyển đổi phổ biến đó là kiểm thử sự di trú dữ liệu. Kiểm thử chuyển đổi sử dụng một mô hình các hạng mục kiểm thử mà quy định những yêu cầu chuyển đổi của nó, bao gồm cả những yêu cầu không được thay đổi trong quá trình chuyển đổi, những yêu cầu đó phải là mới, đã được sửa đổi hoặc đã không còn dùng nữa khi chuyển đổi và bất kỳ các chuẩn thiết kế chuyển đổi mà hạng mục kiểm thử phải phù hợp với.
A.2.5 Kiểm thử khả năng phục hồi sau khi có sự cố
Mục đích của kiểm thử khả năng phục hồi sau khi có sự cố là để xác định xem nếu trong trường hợp bị lỗi việc hoạt động của hạng mục kiểm thử có thể được chuyển đến một trang web khác đang hoạt động hay không và liệu nổ có thể bị chuyển trở lại một khi lỗi đã được khắc phục hay không. Kiểm thử khả năng phục hồi sau khi có sự cố sử dụng một mô hình hạng mục kiểm thử (thường là một kế hoạch phục hồi sau khi có sự cố) để xác định các yêu cầu phục hồi sau khi có sự cố, bao gồm các chuẩn thiết kế phục hồi sau khi có sự cố mà phù hợp với hạng mục kiểm thử. Trong kiểm thử khả năng phục hồi sau khi có sự cố, hạng mục kiểm thử có thể là toàn hệ thống vận hành, các thiết bị phụ trợ, con người và các thủ tục. Kiểm thử khả năng phục hồi sau khi có sự cố có thể bao gồm các yếu tố như: các thủ tục do đội ngũ nhân viên vận hành thực hiện, việc di chuyển dữ liệu, phần mềm, con người, văn phòng, các thiết bị khác hoặc dữ liệu được sao lưu đến một vị trí cách biệt.
A.2.6 Kiểm thử chức năng
Mục đích kiểm thử chức năng là để xác định xem liệu các yêu cầu chức năng của hạng mục kiểm thử có đáp ứng không. Ví dụ, kiểu kiểm thử này có thể bao gồm việc xác định xem liệu một chức năng đã được thực hiện theo những yêu cầu quy định chưa. Nó có thể được thực hiện bằng cách sử dụng các kỹ thuật thiết kế kiểm thử dựa trên đặc tả và các kỹ thuật thiết kế kiểm thử dựa trên cấu trúc được quy định tại Điều 5.
A.2.7 Kiểm thử cài đặt
Mục đích của kiểm thử cài đặt là để xác định xem liệu (các) hạng mục kiểm thử có thể được cài đặt, tháo gỡ /gỡ bỏ và/ hoặc nâng cấp như quy định trong tất cả các môi trường quy định không. Kiểm thử khả năng cài đặt sử dụng một mô hình các yêu cầu cài đặt của hạng mục kiểm thử, thường được quy định trong các điều khoản cài đặt, tháo gỡ hoặc nâng cấp các hạng mục (được mô tả trong tài liệu hoặc sách hướng dẫn cài đặt), người thực hiện cài đặt, gỡ bỏ hoặc nâng cấp phải cài đặt, tháo gỡ cài đặt hoặc nâng cấp các nền tảng mục tiêu và các hạng mục kiểm thử.
A.2.8 Kiểm thử khả năng tương tác
Mục đích của kiểm thử khả năng tương tác là để xác định xem liệu một hạng mục kiểm thử có thể tương tác một cách chính xác với các hạng mục kiểm thử khác hoặc hệ thống hoặc trong cùng một môi trường hoặc trong môi trường khác không, ngoài ra còn xác định xem liệu các hạng mục kiểm thử có thể sử dụng hiệu quả các thông tin nhận được từ các hệ thống khác không. Kiểm thử khả năng tương tác sử dụng một mô hình hạng mục kiểm thử mà quy định những yêu cầu về khả năng tương tác của nó, kể cả các chuẩn thiết kế tương tác mà phù hợp với hạng mục kiểm thử. Kiểu kiểm thử nay có thể bao gồm việc đánh giá xem liệu một hạng mục kiểm thử chạy trong một môi trường này có thể tương tác một cách chính xác với một hạng mục kiểm thử hoặc hệ thống trong môi trường riêng biệt khác không.
A.2.9 Kiểm thử khả năng nội địa hóa
Mục đích của kiểm thử khả năng nội địa hóa là để xác định xem liệu hạng mục kiểm thử có thể được người dùng trong các khu vực địa lý mà nó được sử dụng hiểu được không. Kiểm thử khả năng nội địa hóa có thể bao gồm (nhưng không giới hạn) việc phân tích xem liệu giao diện người dùng và tài liệu hỗ trợ của hạng mục kiểm thử có thể người dùng trong mỗi quốc gia hoặc khu vực sử dụng hiểu được không.
A.2.10 Kiểm thử khả năng bảo trì
Mục đích của kiểm thử khả năng bảo trì là để xác định xem liệu một hạng mục kiểm thử có thể được bảo trì bằng cách sử dụng. Kiểm thư khả năng bảo trì sử dụng một mô hình các yêu cầu bảo trì của hạng mục kiểm thử mà được quy định nhằm nỗ lực thực hiện những thay đổi đối với các hình thái bảo trì sau:
- Bảo trì để sửa chữa (tức là khắc phục các vấn đề có trong phần mềm);
- Bảo trì để hoàn hảo (tức là có những cải tiến phần mềm để làm cho hoàn thiện hơn, đầy đủ hơn);
- Bảo trì để thích hợp (tức là tu chỉnh phần mềm để thích hợp với những thay đổi của môi trường);
- Bảo trì để phòng ngừa (tức là có những hành động để giảm chi phí bảo trì trong tương lai)
Kiểm thử khả năng bảo trì có thể đo được bằng cách áp dụng những phân tích tĩnh.
A.2.11 Kiểm thử liên quan đến hiệu năng
Mục đích của họ các kỹ thuật kiểm thử này là để xác định xem liệu một hạng mục kiểm thử có thực hiện theo yêu cầu khi nó được đặt dưới mức "tải" khác nhau không. Họ kỹ thuật này bao gồm kiểm thử hiệu năng, kiểm thử tải, kiểm thử áp lực, kiểm thử sức bền, kiểm thử khối lượng, kiểm thử dung lượng và kiểm thử quản lý bộ nhớ. Mỗi loại kiểm thử sử dụng một mô hình các hạng mục kiểm thử mà quy định các yêu cầu về hiệu năng của nó, kể cả các tiêu chuẩn thiết thiết kế hiệu năng quy định mà phù hợp với các hạng mục kiểm thử. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá hiệu năng của các hạng mục kiểm thử, xác định số giao dịch trong một giây, thời gian phản hồi, thông lượng và việc sử dụng tài nguyên. Kiểm thử tải "tiêu biểu" của hạng mục kiểm thử dưới các điều kiện "bình thường" có thể được định nghĩa trong hồ sơ hoạt động của các hạng mục kiểm thử.
Có một số kỹ thuật kiểm thử đánh giá hiệu năng của hạng mục kiểm thử:
- Kiểm thử hiệu năng là nhằm đánh giá hiệu năng các hạng mục kiểm thử khi nó được đặt dưới một tải "điển hình".
- Kiểm thử tải nhằm mục đích đánh giá hành vi của các hạng mục kiểm thử (ví dụ như hiệu năng và độ tin cậy) khi nó được đặt dưới các điều kiện tải khác nhau, thường là giữa các điều kiện dự đoán sử dụng thấp, tiêu biểu và sử dụng cao.
- Kiểm thử áp lực nhằm đánh giá hiệu năng của các hạng mục kiểm thử khi nó bị đẩy vượt quá tải cao nhất dự kiến của nó hoặc khi các nguồn tài nguyên sẵn có (ví dụ như bộ nhớ, bộ xử lý, đĩa) bị giảm xuống dưới mức yêu cầu tối thiểu, để đánh giá cách thức nó hoạt động trong các điều kiện khắc nghiệt.
- Kiểm thử sức bền nhằm đánh giá xem liệu các hạng mục kiểm thử có thể duy trì tải theo yêu cầu trong một khoảng thời gian liên tục không.
- Kiểm thử khối lượng nhằm đánh giá hiệu năng của các hạng mục kiểm thử khi nó xử lý một lượng dữ liệu nhất định. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá hiệu năng hạng mục kiểm thử khi cơ sở dữ liệu của nó gần đạt dung lượng tối đa.
- Kiểm thử dung lượng (cũng được gọi là kiểm thử khả năng mở rộng) nhằm mục đích đánh giá cách thức các hạng mục kiểm thử thực hiện ở dưới các điều kiện mà có thể cần phải được hỗ trợ trong tương lai. Ví dụ, kiểu kiểm thử này có thể bao gồm việc đánh giá mức độ nguồn lực bổ sung (ví dụ như bộ nhớ, dung lượng ổ cứng, băng thông mạng) sẽ được yêu cầu để hỗ trợ tải dự kiến trong tương lai.
- Kiểm thử quản lý bộ nhớ nhằm mục đích đánh giá cách thức hạng mục kiểm thử thực hiện trong điều kiện có nhiều (tối đa) bộ nhớ được sử dụng (ví dụ như bộ nhớ đĩa cứng, bộ nhớ RAM và ROM), các loại bộ nhớ (ví dụ như động hoặc phân bổ/ hoặc tĩnh) và/hoặc mức độ rò rỉ bộ nhớ trong quá trình thử nghiệm. Các yêu cầu bộ nhớ thông thường sẽ được xác định theo điều kiện hoạt động cụ thể (ví dụ như yêu cầu bộ nhớ trong một thời gian vận hành cụ thể dưới các tải giao dịch có thể được quy định).
A.2.12 Kiểm thử tính khả chuyển
Mục đích của kiểm thử tính khả chuyển là để xác định mức độ dễ hay khó đối với một hạng mục kiểm thử khi được chuyển từ một phần cứng, phần mềm hoặc môi trường vận hành hoặc môi trường sử dụng này đến phần cứng, phần mềm hoặc các môi trường vận hành hoặc môi trường sử dụng khác. Kiểm thử tính khả chuyển sử dụng một mô hình các hạng mục kiểm thử mà xác định các yêu cầu về khà chuyển của nó, kể cả các tiêu chuẩn thiết kế khả chuyển quy định mà các hạng mục kiểm thử phải phù hợp. Các yêu cầu về tính khả chuyển có liên quan đến khả năng di chuyển các hạng mục kiểm thử từ một môi trường này đến một môi trường khác, hoặc liên quan đến khả năng thay đổi cấu hình của môi trường hiện có đến cấu hình khác theo yêu cầu. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá xem liệu các hạng mục kiểm thử có thể được hoạt động với một loạt các trình duyệt khác nhau không.
A.2.13 Kiểm thử thủ tục
Mục đích của kiểm thử thủ tục là để xác định xem liệu những hướng dẫn về thủ tục có đáp ứng yêu cầu của người sử dụng và hỗ trợ mục đích sử dụng của họ không. Kiểm thử thủ tục sử dụng một mô hình các yêu cầu thủ tục của hạng mục kiểm thử như một đơn vị hoàn chỉnh và đã được chuyển giao. Các yêu cầu thủ tục sẽ đưa ra dưới dạng tài liệu về thủ tục và được viết dưới hình thức các hướng dẫn về thủ tục. Thông thường những hướng dẫn về thủ tục sẽ là một trong các tài liệu sau:
- Tài liệu hướng dẫn người dùng;
- Sách hướng dẫn sử dụng;
- Sách tham khảo.
Thông tin này sẽ xác định cách người dùng dự định:
- Thiết lập hạng mục kiểm thử để sử dụng bình thường;
- Vận hành các hạng mục kiểm thử trong các điều kiện bình thường;
- Trở thành người dùng hệ thống thành thạo (các file tài liệu hướng dẫn thực hành);
- Khắc phục lại các hạng mục kiểm thử khi xuất hiện lỗi;
- Cấu hình lại các hạng mục kiểm thử.
A.2.14 Kiểm thử độ tin cậy
Mục đích của kiểm thử độ tin cậy là đề đánh giá khả năng của các hạng mục kiểm thử khi thực hiện các chức năng quy định của nó, bao gồm cả việc đánh giá tần suất xuất hiện lỗi khi nó được sử dụng trong các điều kiện quy định với một khoảng thời gian nhất định. Kiểm thử độ tin cậy sử dụng một mô hình của các hạng mục kiểm thử mà quy định mức độ tin cậy của nó (ví dụ như thời gian trung bình xuất hiện lỗi, thời gian trung bình giữa các lỗi). Mô hình này sẽ bao gồm định nghĩa về lỗi và hồ sơ hoạt động của các hạng mục kiểm thử hoặc phương pháp để tạo hồ sơ hoạt động.
A.2.15 Kiểm thử tính an toàn
Mục đích của kiểm thử tính an toàn là để đánh giá mức độ mà một hạng mục kiểm thử và các dữ liệu liên quan của nó được bảo vệ để người dùng trái phép hoặc các hệ thống trái phép không thể sử dụng, đọc hoặc sửa đổi được và chỉ những hệ thống hoặc người được ủy quyền mới được cấp yêu cầu truy cập chúng. Kiểm thử tính an toàn sử dụng một mô hình các hạng mục kiểm thử mà quy định các yêu cầu bảo mật, bao gồm tất cả tiêu chuẩn thiết kế bảo mật quy định mà phù hợp với hạng mục kiểm thử.Các yêu cầu an toàn liên quan đến khả năng bảo vệ dữ liệu và tính năng của một hạng mục kiểm thử khỏi những người sử dụng trái phép và sử dụng độc hại. Ví dụ, kiểm thử này có thể bao gồm việc đánh giá xem các hạng mục kiểm thử có ngăn cần được người dùng trái phép truy cập dữ liệu, hoặc đánh giá xem chức năng nào đó của một hạng mục kiểm thử chỉ có thể truy cập bởi những người dùng được quyền truy cập đề bảo vệ khỏi những người dùng trái phép.
Có một số kỹ thuật đánh giá tính an toàn của một hạng mục kiểm thử:
Kỹ thuật kiểm thử thâm nhập liên quan đến việc kỹ sư kiểm thử cố gắng truy cập đến một hạng mục kiểm thử (bao gồm cả tính năng và/ hoặc dữ liệu cá nhân của nó) đó là bắt chước những hành động của người dùng trái phép.
- Kiểm thử tính riêng tư liên quan đến việc cố gắng truy cập vào dữ liệu cá nhân và kiểm chứng dấu vết được bỏ lại sau khi người dùng truy cập dữ liệu cá nhân.
- Kiểm thử tính an toàn là một loại kiểm thử tĩnh trong đó kỹ sư kiểm thử thanh tra mã nguồn, xem xét tài liệu hoặc tổng duyệt các yêu cầu và mã nguồn của một hạng mục kiểm thử đề xác định xem có xuất hiện bất kỳ lỗ hổng bảo mật nào không?
- Kỹ thuật quét lỗ hổng bảo mật liên quan đến việc sử dụng các công cụ kiểm tra tự động để quét một hạng mục kiểm thử khi có dấu hiệu xuất hiện các lỗ hổng.