Các định nghĩa và thuật ngữ trong kiểm thử phần mềm (Phần 1)
Tiếp theo bài viết “Tips luyện thi chứng chỉ ISTQB Foundation” ( Link bài viết: https://viblo.asia/nguyen.thu.phuong/posts/PjxMe62QG4YL ) Bài viết này sẽ cung cấp cho các bạn khái niệm của các thuật ngữ cơ bản được đề cập đến trong tài liệu ISTQB nói riêng và trong lĩnh vực ...
Tiếp theo bài viết “Tips luyện thi chứng chỉ ISTQB Foundation”
( Link bài viết: https://viblo.asia/nguyen.thu.phuong/posts/PjxMe62QG4YL )
Bài viết này sẽ cung cấp cho các bạn khái niệm của các thuật ngữ cơ bản được đề cập đến trong tài liệu ISTQB nói riêng và trong lĩnh vực software testing nói chung.
Thông thường để hiểu rõ được vấn đề và hiểu đúng vấn đề thì việc đầu tiên là phải biết rõ được nội dung chính và cơ bản của vấn đề đó là gì. Khi đó, bạn sẽ tránh được việc hiểu sai và việc nhầm lẫn giữa các khái niệm với nhau. Do đó, bạn không nên bỏ qua bước tìm hiểu các khái niệm cơ bản trước khi đi sâu vào các nội dung khác.
Bài viết này sẽ liệt kê các khái niệm theo thứ tự alphabet như dưới đây:
A
Acceptance - Sự chấp nhận: Thường là những phản hồi của khách hàng hoặc người sử dụng của hệ thống, hoặc từ các bên liên quan khác.
Acceptance criteria - Tiêu chí chấp nhận: Các tiêu chuẩn bàn giao mà một thành phần hoặc hệ thống phải đáp ứng để được chấp nhận bởi một người sử dụng, khách hàng, hoặc tổ chức có thẩm quyền khác.
[IEEE 610]
Acceptance testing - Kiểm thử chấp nhận: Thử nghiệm chính thức về các yêu cầu từ người sử dụng, yêu cầu đặc tả, quá trình tiến hành kinh doanh để xác định xem hệ thống đã đáp ứng được các yêu cầu đó hay chưa.
[After IEEE 610]
Actual result - Kết quả thực tế: Hành vi được tạo ra/ được quan sát thấy khi thử nghiệm một thành phần hoặc một hệ thống
Ad hoc testing - Kiểm thử Ad hoc: Một dạng kiểm thử không chính thức diễn ra quá trình chuẩn bị kiểm thử ( test preparation ), không sử dụng các kỹ thuật thiết kế kiểm thử đã được công nhận, không có kết quả mong đợi.
B
Beta testing - Kiểm thử Beta: Hoạt động kiểm thử bởi người sử dụng/ khách hàng hiện tại ở bên ngoài tổ chức để xác định xem thành phần hoặc một hệ thống đã thỏa mãn và phù hợp với quá trình kinh doanh của người sử dụng/ khách hàng hay chưa. Beta testing thường được sử dụng như một kiểm thử chấp nhận (acceptance test) từ một tổ chức bên ngoài cho chính phần mềm để có được những thông tin phản hồi từ thị trường.
Big-bang testing - Kiểm thử Big-bang (Kiểm thự theo cụm): Một kiểu của kiểm thử tích hợp với các thành phần phần mềm, thành phần phần cứng, hoặc kết hợp tất cả vào một thành phần hoặc một hệ thống tổng thể, chứ không phải là một giai đoạn (stage)
[After IEEE 610]
Black-box testing - Kiểm thử Black-box: Kiểm thử chức năng hoặc phi chức năng, không tham chiếu đến cấu trúc bên trong của thành phần hoặc hệ thống.
Black-box test design technique - Kỹ thuật thiết kế kiểm thử Black-box: Quy trình để tạo ra hoặc lựa chọn test case dựa trên một phân tích của yêu cầu đặc tả, gồm chức năng và phi chức năng, của một thành phần hoặc một hệ thống mà không tham chiếu đến cấu trúc bên trong.
Bottom-up testing - Kiểm thử Bottom-up (Kiểm thử từ dưới lên): Một cách tiếp cận tăng dần để kiểm thử tích hợp từ mức thấp nhất và sau đó sử dụng để tạo thuận lợi cho việc kiểm thử thành phần ở mức cao hơn. Quá trình này sẽ được lặp đi lặp lại cho đến thành phần phân cấp ở mức trên cùng.
Boundary value - Giá trị biên: Một giá trị đầu vào hoặc một giá trị đầu ra là một cận của vùng giá trị tương đương hoặc là khoảng cách tăng nhỏ nhất ở hai bên của một cận.
Ví dụ: Giá trị Max hoặc giá trị Min của một dãy.
Boundary value analysis - Phân tích giá trị biên: Kỹ thuật thiết kế kiểm thử black box bao gồm các test case tạo ra từ giá trị biên.
Boundary value coverage - Bao phủ của giá trị biên: Tỉ lệ phần trăm về giá trị biên được thực thi trong kiểm thử.
Branch - Nhánh: Một khối cơ bản có thể được lựa chọn để thực thi dựa trên một cấu trúc chương trình mà thay thế một trong hai hay nhiều đường dẫn có sẵn của chương trình.
Ví dụ: case, jump, go to, if-then-else.
Branch coverage - Bao phủ nhánh: Tỉ lệ phần trăm của nhánh mà đã được thực thi bởi một bộ kiểm thử (test suite). 100% bao phủ nhánh (branch coverage) bao gồm 100% bao phủ quyết định (decision coverage) và 100% bao phủ điểm (statement coverage).
Branch testing - Kiểm thử nhánh: Một kỹ thuật thiết kế kiểm thử white box, trong đó các test case được thiết kế để thực thi các nhánh.
Bug: Hay còn được gọi là defect, xảy ra do hàng loạt các sự cố trước đó.
(Errors → Faults → Failures →Bug/ Defect)
C
Capability Maturity Model (CMM) - Mô hình khả năng tăng trưởng: Năm mức khung giai đoạn mô tả các yếu tố chính của một quy trình phần mềm hiệu quả. Mô hình khả năng tăng trưởng (CMM) bao gồm các phương thức tốt nhất cho việc lập kế hoạch, kỹ thuật và quản lý phát triển phần mềm và bảo trì.
[CMM] Capability Maturity Model Integration (CMMI).
Capability Maturity Model Integration (CMMI) - Mô hình khả năng tăng trưởng tích hợp: Một khung mô tả yếu tố chính của quy trình phát triển và bảo trì sản phẩm hiệu quả. Mô hình khả năng tăng trưởng tích hợp (CMMMI) bao gồm các phương thức tốt nhất cho việc lập kế hoạch, kỹ thuật và quản lý phát triển và bảo trì sản phẩm. CMMI là sự kế thừa từ CMM.
[CMMI]Capability Maturity Model (CMM).
Component - Hoàn thành: Một mục phần mềm tối thiểu có thể được kiểm thử một cách độc lập.
Component integration testing - Kiểm thử tích hợp thành phần: Thực hiện kiểm thử để tìm lỗi trong giao diện và trong sự tương tác giữa các thành phần tích hợp.
Component specification - Đặc tả thành phần: Mô tả về chức năng của một thành phần với các giá trị đầu ra của nó từ các đặc tả của giá trị đầu vào quy định trong các điều kiện đặt tả và yêu cầu phi chức năng.
Component testing - Kiểm thử thành phần: Kiểm thử riêng biệt các thành phần của phần mềm.
[After IEEE 610]
Condition - Điều kiện: Một biểu thức logic có thể được đánh giá là Đúng hay Sai.
Condition coverage - Bao phủ điều kiện: Tỷ lệ của điều kiện đầu ra đã được thực thi bởi bộ kiểm thử. 100% điều kiện bao phủ (condition coverage) yêu cầu mỗi điều kiện đơn riêng lẻ trong mỗi câu quyết định (decision statement) phải được thực thi như là True hay False.
Condition determination coverage - Bao phủ điều kiện quyết định: Tỷ lệ phần trăm của tất cả điều kiện đầu ra riêng lẻ mà ảnh hưởng độc lập đến một đầu ra quyết định đã được thực thi bởi bộ test case. 100% bao phủ điều kiện quyết định (condition determination) bao gồm 100% bao phủ điều kiện (decision condition).
Condition testing - Kiểm thử điều kiện: Kỹ thuật thiết kế kiểm thử white box với các test case được thiết kế từ thực thi các điều kiện đầu ra (condition outcome).
Condition outcome - Điều kiện đầu ra: Việc đánh giá một điều kiện là True hay False.
Coverage - Bao phủ: Mức độ, biểu diễn dưới dạng phần trăm %, về độ bao phủ một cách đặc biệt các chi tiết đã được thực thi bởi bộ kiểm thử (test suite).
Coverage analysis - Phân tích bao phủ: Đo độ bao phủ đã đạt được để bao phủ một cách đặc biệt các chi tiết trong suốt quá trình thực thi kiểm thử để xác định tiêu chí xác định việc kiểm thử bổ sung là bắt buộc hay không, và test case nào là cần thiết.
Coverage item - Mục bao phủ: Một đơn vị hay tài sản được sử dụng như một cơ sở cho việc bao phủ kiểm thử.
Ví dụ: phân vùng tương đương (equivalence partitions) hoặc code statement.
D
Data flow - Luồng dữ liệu: Một hình ảnh trừu tượng về các trình tự và có thể thay đổi tình trạng của đối tượng dữ liệu, nơi các tình trạng của đối tượng là bất kỳ: tạo mới, sử dụng, hoặc tiêu hủy.
Data flow analysis - Phân tích luồng dữ liệu: Một hình thức phân tích tĩnh dựa trên định nghĩa và cách sử dụng của các biến.
Data flow coverage - Bao phủ luồng dữ liệu: Tỷ lệ về các cặp định nghĩa được thực thi bởi bộ kiểm thử (test suite).
Data flow testing - Kiểm thử luồng dữ liệu: Một kỹ thuật thiết kế kiểm thử white box với test case được thiết kế để thực thi định nghĩa và sử dụng các cặp biến.
Decision - Quyết định: Một điểm chương trình (point) mà luồng điều khiển có hai hay nhiều tuyến đường thay thế. Một nút (node) với hai hay nhiều liên kết đến các nhánh riêng biệt.
Decision condition coverage - Bao phủ điều kiện quyết định: Tỷ lệ phần trăm của tất cả đầu ra điều kiện (condition outcome) và đầu ra quyết định (decision outcome) mà được thực thi bởi bộ kiểm thử. 100% bao phủ điều kiện quyết định (decision condition coverage) bao gồm cả 100% bao phủ điều kiện (condition coverage) và 100% bao phủ quyết định (decision coverage).
Decision condition testing - Kiểm thử điều kiện quyết định: Một kỹ thuật thiết kế kiểm thử white box với các test case được thiết kế để thực thi đầu ra điều kiện (condition outcome) và đầu ra quyết định (decision outcome).
Decision coverage - Bao phủ quyết định: Tỷ lệ phần trăm của đầu ra quyết định mà đã được thực thi từ bộ kiểm thử (test suite). 100% bao phủ quyết định (decision coverage) bao gồm cả 100% bao phủ nhánh (branch coverage) và 100% bao phủ điểm (statement coverage).
Decision outcome - Đầu ra quyết định: Kết quả của một quyết định (từ đó xác định được nhánh cần thực hiện).
Decision table - Bảng quyết định: Một bảng kết hợp các đầu vào và/ hoặc kích thích (nguyên nhân) với sự liên quan của kết quả đầu ra và/ hoặc tác động (hiệu ứng) đến cái có thể được sử dụng để thiết kế test case.
Decision table testing - Kiểm thử bảng quyết định: Một kỹ thuật thiết kế kiểm thử black box với test case được thiết kế để thực thi việc kết hợp của đầu vào và/ hoặc kích thích (nguyên nhân) đưa ra bảng quyết định.
Decision testing - Kiểm thử quyết định: Một kỹ thuật thiết kế kiểm thử white box với test case được thiết kế để thực thi các đầu ra quyết định.
Design-based testing - Kiểm thử dựa trên thiết kế: Một cách tiếp cận để kiểm thử với test case được thiết kế dựa trên kiến trúc và/ hoặc chi tiết thiết kế của thành phần hoặc hệ thống.
Ví dụ: Kiểm thử của các giao diện giữa thành phần và hệ thống
Driver: Một thành phần của phần mềm hoặc công cụ kiểm thử thay thế cho một thành phần mà sẽ điều khiển và/ hoặc gọi đến một thành phần hoặc hệ thống khác.
( Đi kèm với khái niệm về Stub )
Dynamic analysis - Phân tích động: Quá trình đánh giá hành vi.
Ví dụ: Hiệu năng bộ nhớ, việc sử dụng CPU của một hệ thống hay một thành phần trong khi thực thi.
[After IEEE 610]
Dynamic testing - Kiểm thử động: Kiểm thử liên quan đến việc thực thi các thành phần hoặc hệ thống phần mềm.
E
Entry criteria - Tiêu chuẩn nhập: Tập hợp các điều kiện chung và cụ thể cho phép một quá trình chuyển tiếp với một task xác định.
Ví dụ: Giai đoạn test (test phase). Mục đích của tiêu chuẩn nhập là để ngăn chặn một task ngay từ khi bắt đầu thay vì việc lãng phí cố gắng (effort) so với cố gắng (effort) cần thiết để xóa bỏ tiêu chuẩn nhập thất bại.
[Gilb and Graham]
Equivalence partition - Phân vùng tương đương: Một phần gồm miền đầu vào và đầu ra với hành vi của một thành phần hoặc các hệ thống được giả định giống nhau, dựa trên đặc tả.
Equivalence partition coverage - Bao phủ phân vùng tương đương: Tỷ lệ phân vùng tương đương đã được thực thi từ bộ kiểm thử (test suite).
Equivalence partition testing - Kiểm thử phân vùng tương đương: Kỹ thuật thiết kế kiểm thử black box với test case được thiết kế để thực thi các phần đại diện cho phân vùng tương đương. Với nguyên tắt test case được bao phủ bởi mỗi phân vùng ít nhất một lần.
Error - Lỗi: Một hành động của con người mà tạo ra một kết quả không chính xác.
[After IEEE 610]
Error guessing - Đoán lỗi: Một kỹ thuật thiết kế kiểm thử với kinh nghiệm của tester được sử dụng để dự đoán trước những khiếm khuyết có thể có mặt trong thành phần hoặc hệ thống bên dưới kiểm thử như một kết quả của lỗi được tạo ra, và để thiết kế thực thi đặc biệt để tìm kiếm lỗi.
Exhaustive testing - Kiểm thử toàn diện: Một cách tiếp cận kiểm thử với bộ kiểm thử bao gồm kết hợp tất cả các giá trị đầu vào và điều kiện tiền đề.
Exit criteria - Tiêu chuẩn dừng: Tập hợp các điều kiện chung và điều kiện đặc biệt, thỏa thuận với các bên liên quan, cho phép một quá trình được chính thức hoàn thành. Mục đích của tiêu chuẩn dừng là để ngăn chặn một task được coi là đã hoàn thành khi có những phần lưu hành khác của task vẫn chưa được hoàn thiện. Tiêu chuẩn dừng được sử dụng để báo cáo chống lại và lên kế hoạch khi dừng kiểm thử.
[After Gilb and Graham]
Expected result - Kết quả mong đợi: Các hành vi dự đoán từ các đặc tả, hoặc nguồn khác của thành phần hoặc hệ thống theo điều kiện quy định.
Exploratory testing - Kiểm thử thăm dò: Một kỹ thuật thiết kế kiểm thử không chính thức như là việc các tester tích cực kiếm soát thiết kế của kiểm thử bằng những kiểm thử được thực hiện và sử dụng thông tin thu được trong quá trình kiểm thử để thiết kế mới và tốt hơn.
[After Bach]
F
Fail - Thất bại: Một thử nghiệm được coi là thất bại nếu kết quả thực tế không khớp với kết quả mong đợi.
Failure - Thất bại: Độ lệch của thành phần hoặc hệ thống so với bàn giao mong đợi, dịch vụ hoặc kết quả.
[After Fenton]
Fault: Một bước (step), quy trình (process) hoặc định nghĩa dữ liệu (data definition) không chính xác.
Feature - Tính năng: Một thuộc tính về một đặc tả thành phần hoặc hệ thống hoặc tài liệu yêu cầu.
Ví dụ: Độ tin cậy, tính khả dụng hoặc hạn chế thiết kế.
[After IEEE 1008]
Formal review - Xem xét chính thức: Một đánh giá đặc trưng từ các thủ tục tài liệu và các yêu cầu.
Ví dụ: Kiểm tra (inspection)
Functional integration - Tích hợp chức năng: Một cách tiếp cận tích hợp mà kết hợp thành phần hoặc hệ thống cho mục đích làm việc sớm với chức năng cơ bản.
Functional requirement - Yêu cầu chức năng: Một yêu cầu đặc tả một chức năng mà một thành phần hoặc hệ thống phải thực hiện.
[IEEE 610]
Functional test design technique - Kỹ thuật thiết kế kiểm thử chức năng: Thủ tục để lấy ra và/ hoặc lựa chọn test case dựa trên một phân tích đặc tả về chức năng của một thành phần hoặc hệ thống mà không tham chiếu đến cấu trúc bên trong của nó.
(Kỹ thuật thiết kế kiểm thử black box)
Functional testing: Kiểm thử dựa trên phân tích đặc tả về chức năng của thành phần hoặc hệ thống.
(Kiểm thử black box)
Functionality - Chức năng: Khả năng của sản phầm phần mềm để cung cấp các chức năng mà thỏa mãn quy định và mong muốn khi phần mềm được sử dụng theo các điều kiện đặc tả.
[ISO 9126]
Functionality testing - Kiểm thử chức năng: Quá trình kiểm thử để xác định các chức năng của một sản phầm phần mềm.
Các thuật ngữ khác sẽ được liệt kê trong bài viết tiếp theo.
Hi vọng bài viết này sẽ giúp ích cho các bạn dễ dàng tìm hiểu, học tập và tiếp cận với lĩnh vực software testing.
(Link phần 2: https://viblo.asia/nguyen.thu.phuong/posts/rQOvPKNAkYj)
_Nguồn tham khảo: _
http://www.softwaretestinghelp.com/software-testing-terms-complete-glossary/
http://www.istqb.org/downloads/category/20-istqb-glossary.html