Xem mẫu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

MỤC LỤC

BÀI TẬP LỚN
Kỹ thuật phần mềm
Đề tài:

Tìm hiểu các kỹ thuật kiểm thử phần mềm
ứng dụng trong lập trình Java.

Nhóm sinh viên thực hiện: FSE20
Trần Văn Bích
Nguyễn Chí Công
Nguyễn Khắc Hưng
Bùi Huy Thắng

20080215
20080316
20080070
20082449

Giảng viên hướng dẫn: Vũ Thị Hương Giang

Hà Nội, 2011
1

Mục Lục
Giới thiệu đề tài .................................................................................................................................. 3

I.

Kiểm thử phần mềm ........................................................................................................................ 4

II.
1.

Kiểm thử phần mềm là gì? .............................................................................................................. 4

2.

Quá trình kiểm thử phần mềm ......................................................................................................... 4

3.

Các cấp độ kiểm thử phần mềm ...................................................................................................... 5

4.

Các nguyên tắc kiểm thử phần mềm ............................................................................................... 7
Giới thiệu về JUnit .......................................................................................................................... 9

III.
1.

Giới thiệu về JUnit Framework ....................................................................................................... 9

2.

Các đặc điểm của JUnit ................................................................................................................... 9

3.

Cấu trúc lớp của JUnit..................................................................................................................... 9

4.

Sử dụng JUnit ............................................................................................................................... 10
Các kĩ thuật kiểm thử phần mềm ................................................................................................... 12

IV.

Kiểm thử hộp đen (Black Box Testing)......................................................................................... 12

1.
i.

Định nghĩa................................................................................................................................. 12

ii.

Nguyên lý hoạt động ................................................................................................................. 12

iii.

Trường hợp ứng dụng ........................................................................................................... 13

iv.

Ưu điểm/ Nhược điểm ........................................................................................................... 23

v.

Demo......................................................................................................................................... 23
Kiểm thử hộp trắng (White Box Testing). ..................................................................................... 25

2.
i.
ii.

Ưu điểm / Nhược điểm .......................................................................................................... 32

v.

VI.

Các kĩ thuật kiểm thử ............................................................................................................ 27

iv.

V.

Đặc điểm ................................................................................................................................... 26

iii.

3.

Định nghĩa................................................................................................................................. 25

Thiết kế trường hợp thử trên JUnit ............................................................................................ 33
Kiểm thử hộp xám (Gray Box Testing). ........................................................................................ 35

Tổng kết ............................................................................................................................................ 36
Phụ lục .......................................................................................................................................... 37

TÀI LIỆU THAM KHẢO ........................................................................................................................ 38

2

I.

Giới thiệu đề tài

“Lỗi phần mềm là chuyện hiển nhiên của cuộc sống. Chúng ta dù cố gắng đến mức nào thì
thực tế là ngay cả những lập trình viên xuất sắc nhất cũng không có thể lúc nào cũng viết được
những đoạn mã không có lỗi. Tính trung bình, ngay cả một lập trình viên loại tốt thì cũng có từ
1 đến 3 lỗi trên 100 dòng lệnh. Người ta ước lượng rằng việc kiểm tra để tìm ra các lỗi này
chiếm phân nửa khối lượng công việc phải làm để có được một phần mềm hoạt động được”.
(Software Testing Techniques, Second Edition, by Boris Beizer, Van Nostrand Reinhold, 1990,
ISBN 1850328803).
Thật vậy, ngày nay càng ngày các chương trình (các phần mềm) càng trở lên phức tạp và đồ
sộ. Việc tạo ra một sản phẩm có thể bán được trên thị trường đòi hỏi sự nổ lực của hàng chục,
hàng trăm thậm chí hàng ngàn nhân viên. Số lượng dòng mã lên đến hàng triệu. Và để tạo ra
một sản phẩm thì không phải chỉ do một tổ chức đứng ra làm từ đầu đến cuối, mà đòi hỏi sự
liên kết, tích hợp của rất nhiều sản phẩm, thư viện lập trình, … của nhiều tổ chức khác nhau…
Từ đó đòi hỏi việc kiểm nghiệm phần mềm càng ngày càng trở nên rất quan trọng và rất phức
tạp.
Song song với sự phát triển các công nghệ lập trình, các ngôn ngữ lập trình… thì các công
nghệ và kỹ thuật kiểm nghiệm phần mềm ngày càng phát triển và mang tính khoa học. Bài tiểu
luận này với mục đích là tập hợp, nghiên cứu, phân tích các kỹ thuật, các công nghệ kiểm
nghiệm phần mềm đang được sử dụng và phát triển hiện nay.

3

II.

Kiểm thử phần mềm
1. Kiểm thử phần mềm là gì?

Kiểm thử phần mềm có nhiều cách định nghĩa khác nhau. Tuy nhiên, chúng cùng bao
trùm hai nội dung cơ bản là phát hiện lỗi và đánh giá chất lượng của phần mềm. Định nghĩa sau
đây của Myers là đơn giản và có tính thực tế: “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”. Theo định nghĩa của Myers, kiểm thử mà không phát hiện được lỗi được
coi là không thành công.

Hình 1: Kiểm thử phần mềm
Mục đích của kiểm thử là phát hiện lỗi vì trong thực tế phần mềm hầu như không bao giờ
không chứa lỗi.

2. Quá trình kiểm thử phần mềm
Quát trình kiểm thử phần mềm nhằm đạt được 2 mục tiêu:
 Chứng minh cho người phát triển và khách hàng thấy các yêu cầu của phần mềm.
(Giải thích sự hoạt động chính xác – Paul Jorgensen)
 Phát hiện ra các lỗi và khiếm khuyết trong phần mềm: phần mềm thực hiện không
đúng, không như mong đợi hoặc không làm theo như đặc tả.

4

Hình 2:

Vòng đời của kiểm nghiệm

3. Các cấp độ kiểm thử phần mềm

5

nguon tai.lieu . vn