Ths. Nguyễn Khắc Quốc
Email:
BÀI GIẢNG MÔN
CÔNG NGHỆ PHẦN MỀM
Chương 5
XÁC MINH VÀ THẨM ĐỊNH
Xác minh và thẩm định:
- Là sự kiểm tra việc phát triển phần mềm.
-Công việc xuyên suốt quá trình phát triển phần mềm.
- Kiểm tra xem sản phầm có đúng với đặc tả không,
- Có đáp ứng được nhu cầu của người dùng không,
- Có hoạt động hiệu quả không,
* Tức là chú trọng vào việc phát hiện lỗi phân tích,
lỗi thiết kế.
5.1 Đại cương
Tóm lại, mục đích của thẩm định và xác minh là:
• Phát hiện và sửa lỗi phần mềm
• Đánh giá tính dùng được của phần mềm
Có hai khái niệm là:
-Thẩm định/xác minh tĩnh
-Thẩm định/xác minh động.
5.1 Đại cương (tt)
Thẩm định và xác minh tĩnh:
- Là sự kiểm tra mà không thực hiện chương trình như:
+ Xét duyệt thiết kế,
+ Xét duyệt yêu cầu,
+ Nghiên cứu mã nguồn,
+ Sử dụng các biến đổi hình thức (suy luận)
Để kiểm tra tính đúng đắn của chương trình.
- Thẩm định và xác minh tĩnh được tiến hành ở mọi
khâu trong vòng đời phần mềm.
được thực hiện, kết quả như thế nào
5.1 Đại cương (tt)
Một phép thử được gọi là thành công nếu nó phát hiện
ra khiếm khuyết của phần mềm.
Phép thử chỉ chứng minh được sự tồn tại của lỗi trong
hệ thống chứ không chứng minh được hệ thống
không có lỗi.
Một phép thử (ca thử nghiệm) bao gồm:
- Tên của mô đun thử nghiệm
- Dữ liệu vào
- Dữ liệu ra mong muốn (đúng)
- Dữ liệu ra thực tế (khi đã tiến hành thử nghiệm)
Các ca thử nghiệm nên được thiết kế khi tạo các tài liệu
phân tích và thiết kế, không phải khi đã viết xong mã
nguồn.
5.2 Khái niệm về phép thử
Có hai kỹ thuật thử nghiệm tìm khuyết tật:
-Thử nghiệm chức năng
-Thử nghiệm cấu trúc.
5.3 Thử nghiệm chức năng
và thử nghiệm cấu trúc
Thử ngiệm chức năng (functional testing) còn gọi là
thử nghiệm hộp đen (black box testing)
- Là sự thử nghiệm sử dụng các ca thử nghiệm được
thiết kế dựa trên đặc tả yêu cầu,
- Tài liệu người dùng nhằm mục đích phát hiện ra các
khiếm khuyết.
- Thử nghiệm chức năng nhìn nhận mô đun được thử
nghiệm như là một hộp đen, và chỉ quan tâm đến
chức năng (hành vi) của mô đun, tức là kiểm tra
Ví dụ:
Để kiểm chứng chương trình giải phương trình bậc 2
theo phương pháp hộp đen, chúng ta chia không gian
thử nghiệm thành ba vùng như sau:
Vô nghiệm
Có 2 nghiệm
phân biệt
Có nghiệm kép
5.3.1 Hộp đen - Thử nghiệm chức năng (tt)
Ngoài các ca thử nghiệm trên, thông thường còn cần
kiểm tra với các dữ liệu đặc thù như:
- Biên của số trong máy tính (ví dụ -32768, 32767)
- Số 0, số âm, số thập phân
- Không có input
- Input ngẫu nhiên
- Input sai kiểu
5.3.1 Hộp đen - Thử nghiệm chức năng (tt)
Thử nghiệm chức năng có thể giúp chúng ta
- Phát hiện sự thiếu sót chức năng
- Phát hiện khiếm khuyết
- Sai sót về giao diện giữa các mô đun
- Sự không hiệu quả của chương trình
- Lỗi khởi tạo, lỗi kết thúc
5.3.1 Hộp đen - Thử nghiệm chức năng (tt)
-Thử nghiệm chức năng chỉ dựa trên đặc tả nên:
+ Không thể kiểm thử được các trường hợp
không được khai báo trong đặc tả,
+ Không đảm bảo thử hết được các khối mã
nguồn của mô đun.
- Thử nghiệm chức năng cũng không phát hiện được
Bước 2: Chọn các phần tử đại diện
5.3.1 Hộp đen - Thử nghiệm chức năng (tt)
5.3.2 Hộp trắng - Thử nghiệm cấu trúc
Theo phương pháp này chúng ta sẽ chia không gian thử
nghiệm dựa vào cấu trúc của đơn vị cần kiểm tra
Đơn vị cần
kiểm tra
- Giao tiếp
- Dữ liệu cục bộ
- Các điều kiện biên
- Các con đường thực hiện
- Các ngoại lệ
Bộ thử nghiệm
Thử nghiệm cấu trúc (structural testing)
- Là sự thử nghiệm dựa trên phân tích chương trình.
- Là xác định đường đi (path) của chương trình (điều
khiển) từ input đến output.
- Mục đích của thử nghiệm cấu trúc là kiểm tra tất cả
các đường đi có thể.
- Tức là đảm bảo mọi lệnh đều được thực hiện ít nhất
một lần trong một ca thử nghiệm nào đó.
-Thử nghiệm cấu trúc chú trọng vào phân tích các cấu
trúc rẽ nhánh và các vòng lặp.
5.3.2 Hộp trắng - Thử nghiệm cấu trúc (tt)
- Thử nghiệm cấu trúc xem xét chương trình ở mức
độ chi tiết và phù hợp khi kiểm tra các mô đun nhỏ.
- Thử nghiệm cấu trúc có thể không đầy đủ vì kiểm
thử hết các lệnh không chứng tỏ là chúng ta đã kiểm
thử hết các trường hợp có thể.
- Có khả năng tồn tại các tổ hợp lệnh khác nhau gây