Các nội dung xuất hiện trong bài thi ISTQB Foundation (CTFL)
- Nhớ lại các lý do mà cả phương pháp tiếp cận dựa trên đặc điểm kỹ thuật (black-box (hộp đen)) và phương pháp tiếp cận dựa vào cấu trúc (white-box (hộp trắng)) để thiết kế trường hợp kiểm thử rất hữu ích, và liệt kê các kỹ thuật phổ biến cho mỗi phương pháp. (K1)
- Giải thích các đặc điểm và sự khác biệt giữa 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. (K2)
Trong phần này, chúng ta sẽ xem xét các loại kỹ thuật thiết kế kiểm thử khác nhau, cách chúng được sử dụng và chúng khác nhau như thế nào. Ba loại hoặc danh mục được phân biệt bởi nguồn chính của chúng: thông số kỹ thuật, cấu trúc của hệ thống/thành phần hoặc kinh nghiệm của cá nhân. Tất cả các danh mục đều hữu ích và cả ba đều bổ sung cho nhau.
Các thuật ngữ sử dụng trong phần này: kỹ thuật thiết kế kiểm thử hộp đen (black-box test design techniques), kỹ thuật thiết kế kiểm thử dựa trên kinh nghiệm (experience-based test design techniques), kỹ thuật thiết kế kiểm thử dựa trên đặc tả (specification-based test design techniques), kiểm thử dựa trên cấu trúc kỹ thuật thiết kế (structure-based test design techniques) và kỹ thuật thiết kế kiểm thử hộp trắng (white-box test design techniques).
GIỚI THIỆU
Có nhiều loại kỹ thuật kiểm thử phần mềm khác nhau, mỗi loại có điểm mạnh và điểm yếu riêng. Mỗi kỹ thuật riêng lẻ đều tốt trong việc tìm ra các loại lỗi cụ thể và tương đối kém trong việc tìm kiếm các loại khác. Ví dụ: một kỹ thuật khám phá các giới hạn trên và dưới của một phạm vi đầu vào đơn lẻ có nhiều khả năng tìm thấy các lỗi giá trị biên hơn là các lỗi liên quan đến sự kết hợp của các đầu vào. Tương tự, kiểm thử được thực hiện ở các giai đoạn khác nhau trong vòng đời phát triển phần mềm sẽ tìm ra các loại lỗi khác nhau; kiểm thử thành phần có nhiều khả năng tìm thấy lỗi logic mã hóa hơn là lỗi thiết kế hệ thống.
Mỗi kỹ thuật kiểm thử rơi vào một trong một số loại khác nhau.
Nói chung, có hai loại chính là tĩnh và động. Các kỹ thuật tĩnh đã được thảo luận trong Chương 3. Các kỹ thuật động được chia thành ba loại: dựa trên đặc điểm kỹ thuật (hộp đen, còn được gọi là kỹ thuật hành vi), dựa trên cấu trúc (kỹ thuật hộp trắng hoặc cấu trúc) và dựa trên kinh nghiệm. Các kỹ thuật dựa trên đặc điểm kỹ thuật bao gồm cả kỹ thuật chức năng và phi chức năng (tức các đặc tính chất lượng). Các kỹ thuật đề cập được tóm tắt trong hình 4.1
Hình 4.1 Kĩ thuật kiểm thử
Kỹ thuật kiểm thử tĩnh
Như chúng ta đã thấy trong Chương 3, các kỹ thuật kiểm thử tĩnh không thực thi mã đang được kiểm thử và thường được sử dụng trước khi thực hiện bất kỳ kiểm thử phần mềm nào.
Chúng có thể được gọi là kỹ thuật không thực thi. Hầu hết các kỹ thuật kiểm thử tĩnh có thể được sử dụng để “kiểm thử” bất kỳ dạng tài liệu nào bao gồm mã nguồn, tài liệu thiết kế và mô hình, đặc tả chức năng và đặc tả yêu cầu.
Tuy nhiên, “phân tích tĩnh” là một loại kiểm thử tĩnh được công cụ hỗ trợ, tập trung vào kiểm thử các ngôn ngữ chính thức và do đó thường được sử dụng nhất để kiểm thử tĩnh mã nguồn.
Kỹ thuật kiểm thử dựa trên đặc tả (hộp đen)
Kỹ thuật kiểm thử động đầu tiên được xem xét là kỹ thuật kiểm thử dựa trên đặc điểm kỹ thuật. Kỹ thuật này còn được gọi là kỹ thuật kiểm thử “hộp đen” hoặc đầu vào/đầu ra vì phần mềm được xem như mộthộp đen có đầu vào và đầu ra, không biết hệ thống hoặc thành phần được cấu trúc bên trong hộp như thế nào. Về bản chất, người kiểm thử đang tập trung vào những gì phần mềm làm chứ không phải cách thức phần mềm làm.
Lưu ý rằng định nghĩa đề cập đến cả kiểm thử chức năng và phi chức năng. Kiểm thử chức năng liên quan đến những gì hệ thống làm, các tính năng hoặc chức năng của nó. Kiểm thử phi chức năng liên quan đến việc kiểm thử xem hệ thống làm điều gì đó tốt như thế nào, hơn là nó làm gì. Các khía cạnh phi chức năng (còn được gọi là đặc điểm chất lượng hoặc thuộc tính chất lượng) bao gồm hiệu suất, khả năng sử dụng, tính di động, khả năng bảo trì, v.v. Các kỹ thuật để kiểm thử các khía cạnh phi chức năng này ít thủ tục hơn và ít chính thức hóa hơn so với các loại khác vì kiểm thử thực tế cần nhiều hơn việc phụ thuộc vào loại hệ thống, chức năng của nó và các tài nguyên sẵn có cho việckiểm thử.
Kiểm thử phi chức năng cũng được trình bày trong Chương 2. Có các kỹ thuật để tạo ra các kiểm thử phi chức năng [Gilb, 1988], [Tiêu chuẩn kiểm thử], nhưng chúng không được đề cập ở cấp độ Cơ sở.
Việc phân loại các bài kiểm thử thành hộp đen hay hộp trắng được đề cập trong một số cuốn sách về kiểm thử, [Beizer, 1990] và [Copeland, 2003].
Kỹ thuật kiểm thử dựa trên cấu trúc (hộp trắng)
Kỹ thuật kiểm thử dựa trên cấu trúc (cũng là động thay vì là tĩnh) sử dụng cấu trúc bên trong của phần mềm để lấy các trường hợp kiểm thử. Chúng thường được gọi là các kỹ thuật “hộp trắng” hoặc “hộp kính” (ngụ ý rằng bạn có thể nhìn vào hệ thống) vì chúng yêu cầu kiến thức về cách triển khai phần mềm, nghĩa là cách thức hoạt động của phần mềm. Ví dụ, một kỹ thuật cấu trúc có thể liên quan đến việc thực hiện các vòng lặp trong phần mềm. Các trường hợp kiểm thử khác nhau có thể được bắt nguồn để thực hiện vòng lặp một lần, hai lần và nhiều lần. Điều này có thể được thực hiện bất kể chức năng của phần mềm.
Kỹ thuật kiểm thử dựa trên kinh nghiệm
Trong các kỹ thuật dựa trên kinh nghiệm, kiến thức, kỹ năng và nền tảng của con người là yếu tố đóng góp chính cho các điều kiện kiểm thử và kịch bản kiểm thử. Kinh nghiệm của cả kỹ thuật và người có nghiệp vụ đều quan trọng, vì họ mang đến những quan điểm khác nhau cho quy trình thiết kế và phân tích kiểm thử. Do kinh nghiệm trước đây với các hệ thống tương tự, họ có thể hiểu rõ những gì có thể xảy ra sai sót, điều này rất hữu ích cho việc kiểm thử.
Trường hợp áp dụng các loại kỹ thuật khác nhau
Các kỹ thuật dựa trên đặc tả thích hợp ở tất cả các cấp độ kiểm thử (kiểm thử thành phần cho đến kiểm thử chấp nhận) khi có đặc tả. Khi thực hiện kiểm thử hệ thống hoặc kiểm thử chấp nhận, đặc tả yêu cầu hoặc đặc tả chức năng có thể tạo cơ sở cho việc kiểm thử. Khi thực hiện kiểm thử thành phần hoặc tích hợp, tài liệu thiết kế hoặc thông số kỹ thuật cấp thấp sẽ tạo cơ sở cho việc kiểm thử.
Các kỹ thuật dựa trên cấu trúc cũng có thể được sử dụng ở mọi cấp độ kiểm thử.
Các nhà phát triển sử dụng các kỹ thuật dựa trên cấu trúc trong kiểm thử thành phần và kiểm thử tích hợp thành phần, đặc biệt khi có công cụ hỗ trợ tốt cho phạm vi mã. Các kỹ thuật dựa trên cấu trúc cũng được sử dụng trong kiểm thử hệ thống và chấp nhận, nhưng các cấu trúc thì khác. Ví dụ: phạm vi của các tùy chọn menu hoặc các giao dịch kinh doanh chính có thể là yếu tố cấu trúc trong hệ thống hoặc kiểm thử chấp nhận.
Các kỹ thuật dựa trên kinh nghiệm được sử dụng để bổ sung cho các kỹ thuật dựa trên đặc điểm kỹ thuật và dựa trên cấu trúc, đồng thời cũng được sử dụng khi không có đặc điểm kỹ thuật hoặc nếu đặc điểm kỹ thuật không đầy đủ hoặc lỗi thời. Đây có thể là loại kỹ thuật duy nhất được sử dụng cho các hệ thống có rủi ro thấp, nhưng cách tiếp cận này có thể đặc biệt hữu ích dưới áp lực thời gian khắc nghiệt – thực tế đây là một trong những yếu tố dẫn đến thử nghiệm khám phá.
Bản gốc Tiếng Anh các bạn có thể Tải về Tại đây