Tải bản đầy đủ (.ppt) (19 trang)

bài giảng xác minh thẩm định phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (291.36 KB, 19 trang )

1

Ngày 28/06/1962, tàu Mariner I
bay đến sao Kim nhưng đã bị
phá hủy 293 giây sau khi phóng
do bay chệch hướng so với dự
kiến ban đầu. Những cuộc điều
tra sau đó đã xác định nguyên
nhân là phần mềm tính toán
đường đi của tên lửa bị lỗi.
Nguyên nhân sâu xa: việc xác minh/thẩm định
phần mềm tính toán đường đi của tên lửa chưa
được chú trọng đúng mức
2
XÁC MINH/THẨM ĐỊNH PHẦN MỀM
1. Giới thiệu chung
2. Kiểm thử phần mềm
3. Các kỹ thuật kiểm thử
Kiểm thử hộp đen
3
1. GIỚI THIỆU

Xác minh/thẩm định:

Xác minh (verification):

kiểm tra xem sản phẩm có đúng đặc tả không
 chú trọng phát hiện lỗi lập trình

Thẩm định (validation):


kiểm tra xem sản phẩm có đáp ứng nhu cầu người
dùng không

hoạt động hiệu quả không
 chú trọng phát hiện lỗi phân tích, lỗi thiết kế
4
1. GIỚI THIỆU

Xác minh/thẩm định là sự kiểm tra công 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

Mục đích:

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
 đảm bảo chất lượng phần mềm
5
1. GIỚI THIỆU

Xác minh /thẩm định tĩnh:

kiểm tra không thực hiện chương trình

xét duyệt yêu cầu, thiết kế, mã nguồn

tiến hành ở mọi công đoạn phát triển


có thể phát hiện được hầu hết các lỗi lập trình (lý
thuyết)

không đánh giá tính hiệu quả của sản phẩm

Xác minh/thẩm định động:

kiểm tra thông qua thực hiện chương trình

tiến hành sau khi có mã nguồn

kỹ thuật kiểm tra phần mềm chính hiện nay
Kết hợp cả 2 kỹ thuật
6
2. KIỂM THỬ PHẦN MỀM

Kiểm thử là gì ?

“Kiểm thử là tiến trình thực thi chương trình
với mục đích tìm thấy lỗi” (Myer)

Phân biệt kiểm thử với gỡ rối (debug) ?
7
2. KIỂM THỬ PHẦN MỀM

Theo nghiên cứu của Boris Beizer và Van
Nostrand Reinhold:

không có lập trình viên nào có thể lập trình
không có lỗi


trung bình một lập trình viên loại tốt có từ 1
đến 3 lỗi/ 100 dòng lệnh

tìm ra các lỗi chiếm 50% công việc phải làm để
có được một phần mềm hoạt động được
8
2. KIỂM THỬ PHẦN MỀM

Test case: dữ liệu kiểm tra

Mỗi testcase thường bao gồm:

dữ liệu đầu vào (input)

điều kiện

dữ liệu đầu ra kỳ vọng (expected output)

{input; điều kiện; expected output}

Thông dụng: xây dựng theo điều kiện
9
2. KIỂM THỬ PHẦN MỀM

Ví dụ: hàm tính trị tuyệt đối của số nguyên

Test case 1: {Input: a=5; Expected output: 5}

Test case 2: {Input: -5; Expected output: 5}

10
2. KIỂM THỬ PHẦN MỀM
Thí dụ:
chúng ta cần kiểm thử một thành phần phần
mềm “quản lý nguồn nhân lực” với đặc tả chức
năng như sau: mỗi lần nhận một hồ sơ xin việc,
thành phần phần mềm sẽ ra quyết định dựa vào
tuổi ứng viên theo bảng sau:

a
11
2. KIỂM THỬ PHẦN MỀM

1. Test case 1:

{Input : 2 tuổi, Output : không thuê}

2. Test case 2:

{Input : 17 tuổi, Output : thuê bán thời gian}

3. Test case 3:

{Input : 35 tuổi, Output : thuê toàn thời gian}

4. Test case 4:

{Input : 90 tuổi, Output : không thuê}
Ngày 25/06/2012
12

2. KIỂM THỬ PHẦN MỀM

Các bước kiểm thử:

Thiết kế các test case

Tạo dữ liệu kiểm thử

Thực thi chương trình trên dữ liệu thử

Quan sát kết quả kiểm thử

kết quả nhận được khác với kết quả mong đợi 
kiểm thử thành công
13
2.1 KIỂM THỬ HỘP ĐEN

Kiểm thử hộp đen (kiểm thử chức năng):

dựa trên đặc tả chức năng

phát hiện các sai sót về chức năng

không quan tâm đến cách cài đặt
14
2.1 KIỂM THỬ HỘP ĐEN

Các test case kiểm thử của Kiểm thử hộp đen
bao gồm:


các trường hợp bình thường và không bình thường (dữ
liệu không hợp lệ ) của module

chiến lược chung: phân hoạch (dữ liệu) tương đương

chia miền dữ liệu vào ra thành các vùng,

mỗi vùng chứa các dữ liệu có cùng hành vi

mỗi vùng dữ liệu chỉ cần xây dựng 1 test case

mỗi vùng biên có thể sử dụng 1 test case hoặc 3 test
case (1 cho giá trị biên, 1 ngay dưới biên và 1 trên
biên)
15
2.1 KIỂM THỬ HỘP ĐEN

Test case ở biên:
16
2.1 KIỂM THỬ HỘP ĐEN

Test case ở biên:

{-1,0,1},

{14,15,16},

{15,16,17},

{16,17,18},


{17,18,19},

{53,54,55},

{54,55,56},

{98,99,100}
17
2.1 KIỂM THỬ HỘP ĐEN
Và đoạn code hiện thực sau :
if (applicantAge < 15) kq ="NO";
if (16 < applicantAge && applicantAge <17) kq ="PART";
if (18 < applicantAge && applicantAge <54) kq ="FULL";
if (55 < applicantAge && applicantAge <99) kq ="NO";
18
2.1 KIỂM THỬ HỘP ĐEN

Chúng ta hãy kiểm thử 1 website với ₫ặc tả yêu cầu như sau :

1. Phải chạy tốt trên 8 trình duyệt khác nhau : Internet Explorer 5.0, 5.5,
and 6.0, Netscape 6.0, 6.1, and 7.0, Mozilla 1.1, and Opera 7.

Phải chạy tốt ở 3 chế độ plug-ins : RealPlayer, MediaPlayer, none.

Phải chạy tốt trên 6 HĐH máy client : Windows 95, 98, ME, NT, 2000,
and XP.

4. Phải chạy tốt trên 3 web server khác nhau : IIS, Apache, and
WebLogic.


5. Phải chạy tốt trên 3 HĐH máy server : Windows NT, 2000, and Linux.
19
2.1 KIỂM THỬ HỘP ĐEN

Ưu điểm:

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

Nhược điểm:

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.

không phát hiện được các đoạn mã yếu (có khả năng sinh lỗi với một
trạng thái đặc biệt nào đó của hệ thống

×