Có hai dạng chính của kỹ thuật thiết kế kiểm thử: Kiểm thử tĩnh và Kiểm thử động.
1. Kiểm thử tĩnh
Kiểm thử tĩnh là việc kiểm tra từng phần của phần mềm bằng cách dựa vào các tài liệu hoặc kiểm tra cú pháp của code mà không cần chạy phần mềm trực tiếp. Điều này giúp xác định tính logic của phần mềm một cách hiệu quả và tiết kiệm thời gian. Các loại kiểm thử tĩnh bao gồm:
- Đánh giá không chính thức (Informal review)
Đây là quá trình đánh giá mà không cần hồ sơ cuộc họp, ghi chú và có thể thực hiện ở bất kỳ đâu. Phương pháp này nhanh chóng và tiết kiệm chi phí.
- Walkthroughs
Hình thức hướng dẫn và giải thích để chuyển giao kiến thức về logic của phần mềm cho những người tham gia kiểm thử.
- Đánh giá kỹ thuật (Technical review)
Tập trung vào việc đánh giá các khía cạnh kỹ thuật của phần mềm. Thường được dẫn dắt bởi người có kiến thức kỹ thuật và các chuyên gia khác.
- Kiểm tra (Inspection)
Mục đích là xác định vai trò của từng người trong quy trình và tối ưu hóa quy trình.
2. Kiểm thử động
Kỹ thuật kiểm thử dựa trên yêu cầu (Specification-based)
Kỹ thuật này tập trung vào việc kiểm thử các yếu tố bên ngoài của phần mềm, bao gồm các đặc điểm kỹ thuật, thiết kế và cách thức vận hành. Nhờ đó, tester có thể kiểm thử chất lượng bên ngoài mà không ảnh hưởng tới cấu trúc bên trong phần mềm. Các kỹ thuật trong nhóm này bao gồm:
- Phân vùng tương đương (Equivalence Partitioning)
Phương pháp chia miền đầu vào thành các vùng dữ liệu để suy ra các trường hợp kiểm thử. Có thể áp dụng thông qua hai bước cơ bản.
- Phân tích giá trị biên (Boundary Value Analysis)
Test các giá trị biên của các vùng dữ liệu vào và ra.
- Bảng quyết định (Decision Table Testing)
Kiểm thử trạng thái của phần mềm dựa trên bảng quyết định và các điều kiện.
- Chuyển đổi trạng thái (State Transition Testing)
Kiểm thử các thay đổi trạng thái trong phần mềm dựa trên thay đổi điều kiện đầu vào.
- Kiểm thử Use Case
Kiểm thử để tìm các liên kết còn thiếu sót và yêu cầu không hoàn chỉnh.
Kỹ thuật kiểm thử dựa trên cấu trúc (Structure-based)
Kỹ thuật này tập trung vào kiểm thử cấu trúc và cách vận hành bên trong của phần mềm. Cần có kiến thức lập trình để hiểu cấu trúc phần mềm. Các kỹ thuật của nhóm này bao gồm:
- Kiểm thử câu lệnh (Statement Testing)
Thực thi tất cả các câu lệnh trong cấu trúc code ít nhất một lần.
- Kiểm thử quyết định (Decision Testing)
Thực thi kiểm thử quyết định dựa trên kết quả quyết định của phần mềm.
- Kiểm thử điều kiện (Condition Testing)
Test các biểu thức Boolean có giá trị True hoặc False.
- Kiểm thử đa điều kiện (Multiple Condition Testing)
Kiểm thử mọi tổ hợp điều kiện có thể của quyết định.
Kỹ thuật dựa trên kinh nghiệm (Experience-based)
Nhóm kỹ thuật này phụ thuộc vào hiểu biết và kinh nghiệm của tester. Sử dụng kiến thức và kinh nghiệm để thiết kế test case. Các kỹ thuật trong nhóm này bao gồm:
- Kiểm thử thăm dò (Exploratory Testing)
Kiểm thử không cần chuẩn bị hoặc lịch trình cụ thể, tester vừa phân tích, vừa thiết kế và thực thi kiểm thử.
- Phỏng đoán lỗi (Error Guessing)
Dự đoán lỗi tiềm ẩn dựa trên kiến thức của tester.
Khi áp dụng các kỹ thuật thiết kế kiểm thử, tester có thể đảm bảo chất lượng kiểm thử và xác định phạm vi kiểm thử một cách hiệu quả. Hãy áp dụng những kỹ thuật này để cải thiện quy trình kiểm thử phần mềm của bạn.
Nguồn tham khảo: Khai quat ve ky thuat thiet ke test case trong kiem thu phan mem