Decision testing là gì
Tiếp tục series tóm tắt từ cuốn sách: FOUNDATIONS OF SOFTWARE TESTING ISTQB CERTIFICATION của tác giả Dorothy Graham, Erik van Veenendaal, Isabel Evans và Rex Black và một số kinh nghiệm của cá nhân trong quá trình làm việc nhằm cung cấp cho các bạn một cái nhìn tổng quan về kiểm thử phần mềm và các kiến thức cơ bản về kiểm thử, các kỹ thuật dùng trong kiểm thử và các công cụ hỗ trợ. Show
Tiếp nối bài viết trước Kiểm thử phần mềm: Các kỹ thuật thiết kế kiểm thử (Phần 1). bài viết lần này mình sẽ giới thiệu với các bạn Các loại kỹ thuật thiết kế kiểm thử - Kiểm thử hộp đen (Black box). 1. Giới thiệu.Có nhiều loại kỹ thuật kiểm thử phần mềm mỗi loại đều có điểm mạnh điểm yếu riêng. Mỗi kỹ thuật đều có điểm mạnh khi tìm ra các loại lỗi cụ thể và tương đối kém khi tìm ra một loại khác. Kiểm thử được thực hiện ở các giai đoạn khác nhau của 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 các lỗi logic trong việc mã hóa hơn so với các lỗi bên thiết kế hệ thống. Có 2 loại kỹ thuật chính là kiểm thử tĩnh và kiểm thử động, các kỹ thuật tĩnh đã giới thiệu ở chương 3 rồi còn các kỹ thuật động được chia thành 3 loại khác nhau: dựa trên chi tiết kỹ thuật-specification-based (Hộp đen còn được gọi là kỹ thuật hành vi), dựa trên cấu trúc- structure-based (Hộp trắng hoặc kỹ thuật thuộc về kiến trúc) và dựa trên kinh nghiệm- experience-based. 2. Kỹ thuật dựa trên các đặc tả kỹ thuật (kỹ thuật hộp đen-Blackbox).Kiểm tra hộp đen (Black box testing) là một phương pháp kiểm thử phần mềm mà việc kiểm tra các chức năng của một ứng dụng không cần quan tâm vào cấu trúc nội bộ hoặc hoạt động của nó. Mục đích chính của kiểm tra hộp đen chỉ là để xem phần mềm có hoạt động như dự kiến trong tài liệu yêu cầu và liệu nó có đáp ứng được sự mong đợi của người dùng hay không. Đặc điểm
Trong phần này, chúng ta sẽ làm quen với các thuật ngữ: phân tích giá trị biên(boundary value analysis) , kiểm thử bảng quyết định (decision table testing), phân vùng tương đương(equivalence partitioning), kiểm tra chuyển tiếp trạng thái(state transition testing) và kiểm tra ca sử dụnguse case testing.
2.1. Phân vùng tương đương(equivalence partitioning).Phân vùng tương đương: là phương pháp kiểm thử hộp đen chia miền đầu vào của một chương trình thành các lớp dữ liệu, từ đó suy dẫn ra các ca kiểm thử. Tất cả các giá trị trong một vùng tương đương sẽ cho một kết quả đầu ra giống nhau. Vì vậy chúng ta có thể test một giá trị đại diện trong vùng tương đương.
Ví dụ: Thiết kế test case nhập vào ô textbox số tiền chỉ cho nhập ký tự là số với độ dài trong khoảng [0-10] Dựa vào yêu cầu bài toán ta có thể có các lớp tương đương(phân vùng) sau: Sau khi áp dụng phân vùng tương đương có thể chọn được các ca kiểm thử (test case) sau:
2.2. Phân tích giá trị biên(Boundary value analysis (BVA)).Đây là phương pháp test mà chúng ta sẽ test tất cả các giá trị ở vùng biên của dữ liệu vào và dữ liệu ra. Nếu dữ liệu đầu vào được sử dụng là trong giới hạn giá trị biên, nó được cho là Positive testing. Nếu dữ liệu đầu vào được sử dụng là ngoài giới hạn giá trị biên, nó được cho là Negative testing. Phân tích giá trị biên sẽ chọn các giá trị:
2.3. Bảng quyết định (Decision tables )Bảng quyết định sử dụng mô hình các quan hệ logic giữa nguyên nhân và kết quả cho các thành phần. Mỗi nguyên nhân được biểu diễn như một điều kiện (đúng hoặc sai) của một đầu vào, hoặc kết hợp các đầu vào. Mỗi kết quả được biểu diễn như là một biểu thức Bool biểu diễn một kết quả tương ứng cho những thành phần vừa thực hiện.
Bảng 4.1. Xác định các điều kiện.
Bảng 4.2. Kết hợp các điều kiện
Bảng 4.3. Bảng quyết định với sự kết hợp của các điều kiện và kết quả.
Bảng 4.4. Bảng quyết định với kết quả bổ sung.
Bảng 4.5. Bảng quyết định với sự thay đổi kết quả.
Bảng 4.6. Bảng quyết định trên một hàng.
2.4. Kiểm thử chuyển đổi trạng thái(State transition testing)Kiểm thử chuyển đổi trạng thái được sử dụng khi một số khía cạnh của hệ thống được mô tả trong máy hữu hạn các trạng thái(finite state machine). Có thể hiểu là các hệ thống có thể nằm trong số (hữu hạn) các trạng thái và sự chuyển tiếp từ trạng thái này sang trạng thái khác được xác định bởi các quy tắc máy. Một hệ thống trạng thái hữu hạn thường được biểu diễn dưới dạng sơ đồ trạng thái (state diagram). Một mô hình chuyển đổi trạng thái có 4 phần cơ bản sau:
Chú ý rằng trong một trạng thái một sự kiện chỉ có thể gây ra một hành động duy nhất. Tuy nhiên cùng với sự kiện đó mà xảy ra ở trạng thái khác sẽ cho ra các hành động khác và trạng thái kết thúc khác nhau. Hình 4.1. Cho một ví dụ về nhập mã PIN ở cây ATM. Các trạng thái được thể hiện ở dạng hình tròn. Các phiên chuyển đổi là các mũi tên. Các event là dòng text cạnh mũi tên: Hình 4.1. Sơ đồ trạng thái của việc nhập mã PIN. Từ sơ đồ trạng thái, tiến hành tạo test case bắt đầu từ việc xác định các kịch bản (scenario).
Tiếp theo, Để xem có bao nhiêu tổng số kết hợp các trạng thái và quá trình chuyển đổi cả 2 trạng thái hợp lệ và không hợp lệ cần phải có một bảng trạng thái. Hình 4.2. Ví dụ bảng trạng thái của nhập mã PIN. Bảng 4.2 liệt kê các trạng thái trong cột thứ nhất, các đầu vào có thể ở hàng đầu. Nếu hệ thống đang ở trạng thái 1, inserting a card sẽ chuyển đổi sang trạng thái 2. Nếu đang ở trạng thái 2 và đã nhập Valid PIN sẽ chuyển sang trạng thái 6, Nếu đang ở trạng thái 2 và đã nhập Invalid PIN sẽ chuyển sang trạng thái 3. 2.5. Kiểm thử các trường hợp sử dụng(Use case testing).Use case testing là một kỹ thuật xác định các test case mô tả từ đầu đến cuối hành vi của hệ thống từ góc nhìn của người sử dụng. Use case mô tả sự tương tác đặc trưng giữa người dùng bên ngoài (Actor) và hệ thống. Mỗi Use case sẽ mô tả cách thức người dùng tương tác với hệ thống để đạt được mục tiêu nào đó. Ngoài ra, Use case cũng xác định trình tự các bước mô tả mọi tương tác giữa người dùng và hệ thống.
Trong ví dụ nêu trên mỗi use case là một kịch bản scenario và phần mở rộng (thể hiện các kịch bản có thể không thành công). Đối với kiểm thử use case, có một kịch bản của kiểm thử thành công và một kiểm thử cho mỗi phần mở rộng Hình 4.3. Một phần use case cho phần nhập mã PIN. Trên đây là một số kỹ thuật thường được sử dụng trong kiểm thử dựa trên các đặc tả kỹ thuật (Black box). Link bài viết tiếp theo Các kỹ thuật thiết kế kiểm thử (Phần 3). |