Luận văn Một số kỹ thuật kiểm thử phần mềm

ĐẠI HỌC THÁI NGUYÊN  
KHOA CÔNG NGHỆ THÔNG TIN  
LUẬN VĂN THẠC SĨ  
MỘT SỐ KỸ THUẬT  
KIỂM THỬ PHẦN MỀM  
KHOA HỌC MÁY TÍNH  
PGS. TSKH. NGUYỄN XUÂN HUY  
CAO THỊ BÍCH LIÊN  
60 48 01  
:
Chuyên ngành  
:
Ngƣời hƣớng dẫn khoa học  
Học viên thực hiện :  
Mã số  
:
:
Thái Nguyên - Năm 2009  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
LỜI CAM ĐOAN  
Tôi xin cam đoan luận văn này là công trình nghiên cứu của riêng tôi. Các số liệu  
kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ  
ng trình nghiên cứu nào khác.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
i
 
MỤC LỤC  
LỜI CAM ĐOAN …………………………………………………………………..i  
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT …………………….……v  
DANH MỤC CÁC BẢNG ………………………………………………………..vi  
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ …………………………………..…….vii  
MỞ ĐẦU....................................................................................................... 1  
Chƣơng 1 VN ĐỀ CHT LƢỢNG PHẦN MM VÀ KIM THỬ  
PHẦN MỀM……………………………………….……………………..….4  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
ii  
2.2.2. Kiểm thử cấu trúc điều khiển ..............................................................22  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
iii  
3.5.2. Duyệt lại cấu hình ...............................................................................51  
4.2.1. Tổng quan về các phương pháp ...........................................................54  
4.2.3. Phân loại các kiểu kiểm th.................................................................55  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
iv  
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT  
BRO : Kiểm thử nhánh và toán tử quan hệ  
BVA : Phân tích giá trị biên  
DU  
E
: Một chuỗi khai báo - sử dụng  
: Là số cạnh của đồ thị lƣu trình  
: Là số đỉnh của đồ thị lƣu trình  
: Số đỉnh điều kiện có trong đồ thị lƣu trình  
: Số vùng của đồ thị lƣu trình  
N
P
R
V(G) : Xác định độ phức tạp Cyclomat  
V&V : Xác minh và thẩm định  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
v
DANH MỤC CÁC BẢNG  
Bảng 1.1: Tỉ lệ công thức của các giai đoạn phát triển phần mềm 4  
………….  
Bảng 2.1: Bảng  
đƣơng…………………………………..  
Bảng 2.2: Ví dụ các lớp  
…………………………………………  
Bảng 2.3: Các ký hiệu trong đồ  
………………………………...  
Bảng 2.4: Ví dụ bảng  
………………………………………………  
Bảng 3.1: So sánh kiểm thử Top-Down  
………………………  
liệt  
kê  
các  
lớp  
tƣơng 28  
đƣơng 29  
quả 32  
tƣơng  
thị  
nhân  
quyết  
định 33  
và  
Bottom-Up 49  
Bảng 4.1: Bảng các trƣờng hợp kiểm thử cho Module Merge 61  
………………  
Bảng 4.2: Các trƣờng hợp kiểm thử cho Module Split 62  
………………………  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
vi  
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ  
Hình 1.1: Sản  
phẩm  
phần  
mềm 5  
mềm 6  
lỗi 7  
………………………………………………………….  
Hình 1.2: Các  
………………………………………  
Hình 1.3: Chi phí sửa lỗi theo  
…………………………………  
Hình 1.4: Kiểm thử phần mềm  
…………………………………  
Hình 1.5: Giai đoạn kiểm thử  
…………………………………..  
Hình 1.6: Qui trình kiểm  
nguyên  
nhân  
gây  
ra  
lỗi  
phần  
hiện  
ngữ  
thời  
gian  
phát  
trong  
trong  
một  
số  
cảnh 8  
mềm 9  
mềm 11  
thử 13  
khiển 15  
trình 16  
xử  
lý  
phần  
thử  
phần  
………………………………………………..  
Hình 2.1: Luồng thông tin  
…………………………………………………….  
Hình 2.2: Ví dụ chu trình  
…………………………………………………….  
Hình 2.3: Ký hiệu đồ thị  
kiểm  
điều  
lƣu  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
vii  
……………………………………………………….  
Hình 2.4: Điều  
kiện  
phức 17  
trình 17  
…………………………………………………………………  
Hình 2.5: Lƣu  
………………………………………...  
Hình 2.6: Độ phức  
đồ  
thuật  
toán  
và  
đồ  
thị  
lƣu  
tạp  
Cyclomat 19  
…………………………………………………………  
Hình 2.7: Ví dụ minh họa phát sinh các trƣờng hợp kiểm thử theo đƣờng dẫn cơ 20  
sở...  
Hình 2.8: Các  
………………………………………………………………  
Hình 2.9: Ví dụ đồ thị nhân  
………………………………………………………….  
Hình 3.1: Chiến lƣợc kiểm  
…………………………………………………………...  
Hình 3.2: Các bƣớc kiểm  
…………………………………………………………….  
Hình 3.3: Mật độ lỗi là hàm thời gian  
………………………………………...  
kiểu  
vòng  
lặp 25  
quả 33  
thử 38  
thử 39  
hiện 41  
thực  
Hình 3.4: Quan hệ giữa chi phí kiểm thử và số lỗi chƣa đƣợc phát hiện 42  
………………  
Hình 3.5: (a) Kiểm thử đơn vị  
(b) Môi trƣờng kiểm thử đơn vị 44  
………………………  
Hình 3.6: Kiểm  
…………………………………………………………  
Hình 3.7: Tích hợp Bottom  
…………………………………………………………  
Hình 4.1: Giao diện kiểm thử  
thử  
Top  
Down 46  
Up 47  
nhúng 56  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
viii  
…………………………………………………….  
Hình 4.2: Minh họa thuật toán  
MergeSort……………………………………..  
Hình 4.3: Đồ thị lƣu trình của  
Merge………………………………………...  
sắp  
xếp 57  
năng 59  
chức  
Hình 4.4: Giao  
MergeSort……………………….  
Hình 4.5: Kết quả đƣợc  
diện  
điều  
khiển  
kiểm  
thử  
thuật  
toán 64  
ghi  
ra  
FileLog 64  
…………………………………………………..  
Hình 4.6: Giao diện điều khiển kiểm thử khả năng thực hiện của các thuật toán sắp 65  
xếp..  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
ix  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
x
MỞ ĐẦU  
1. Lý do chọn đề tài  
Với sự phát triển như vũ bão của công nghệ thông tin nói chung và công  
nghệ phần mềm nói riêng, việc phát triển phần mềm ngày càng được hỗ trợ bởi  
nhiều công cụ tiên tiến, giúp cho việc xây dựng phần mềm đỡ mệt nhọc và hiệu quả  
hơn. Tuy nhiên, vì độ phức tạp của phần mềm và những giới hạn về thời gian và chi  
phí, cho dù các hoạt động đảm bảo chất lượng phần mềm nói chung và kiểm thử nói  
riêng ngày càng chặt chẽ và khoa học, vẫn không đảm bảo được rằng các sản phẩm  
phần mềm đang được ứng dụng không có lỗi. Lỗi vẫn luôn tiềm ẩn trong mọi sản  
phẩm phần mềm và cũng có thể gây những thiệt hại khôn lường.  
Kiểm thử phần mềm là một quá trình liên tục, xuyên suốt mọi giai đoạn phát  
triển phần mềm để đảm bảo rằng phần mềm thoả mãn các yêu cầu thiết kế và các  
yêu cầu đó đáp ứng các nhu cầu của người dùng. Các kỹ thuật kiểm thử phần mềm  
đã, đang được nghiên cứu, và việc kiểm thử phần mềm đã trở thành qui trình bắt  
buộc trong các dự án phát triển phần mềm trên thế giới. Kiểm thử phần mềm là một  
hoạt động rất tốn kém, mất thời gian, và khó phát hiện được hết lỗi. Vì vậy, việc  
kiểm thử phần mềm đòi hỏi phải có chiến lược phù hợp, một kế hoạch hợp lý và  
việc thực hiện được quản lí chặt chẽ.  
Ở Việt Nam, trong thời gian qua việc kiểm thử phần mềm bị xem nhẹ, với  
công cụ lập trình hiện đại, người ta cảm tính cho rằng không kiểm thử cũng không  
sao, nên chưa có nhiều sự quan tâm, nghiên cứu. Những năm gần đây, một số tổ  
chức nghiên cứu và phát triển phần mềm đã bắt đầu có những quan tâm hơn đến vấn  
đề kiểm thử phần mềm. Tuy nhiên, vấn đề kiểm thử phần mềm hầu như vẫn chưa  
được đầu tư và quan tâm đúng mức. Nước ta đang trong quá trình xây dựng một  
ngành công nghiệp phần mềm thì không thể xem nhẹ việc kiểm thử phần mềm vì  
xác suất thất bại sẽ rất cao, hơn nữa, hầu hết các công ty phần mm có uy tín đều  
đặt ra yêu cầu nghiêm ngt là nếu một phần mm không có tài liệu kiểm thử đi kèm  
thì sẽ không được chấp nhận.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
1
2. Mục tiêu và nhiệm vnghiên cứu  
- Luận văn tập trung nghiên cứu, tìm hiểu, đánh giá các nguyên lý, chiến lược  
và kthut kiểm thử phần mềm.  
- Thiết kế các trường hợp kim tháp dụng cho một vài chương trình cth.  
3. Đối tƣợng và phạm vi nghiên cứu  
Qui trình và bản cht của các kthut kim thhộp đen và kim thhp  
trắng.  
Chiến lược kim thphần mm.  
Đặc tthiết kế kim th.  
4. Phƣơng pháp nghiên cu  
- Nghiên cứu, tìm hiểu các kthut, chiến lược kim thphần mềm.  
- Sdụng các phương pháp kim thử đã nghiên cứu, thiết kế btest cho  
chương trình cth. Đưa ra tài liệu kế hoạch kim thđặc tkim th;  
xây dựng chương trình thc thi kim th.  
5. Dkiến kết quả  
- Thiết kế các trường hợp kim thcho một schương trình cth.  
- Tạo các tài liệu kim th(đặc ttrường hợp kim thvà kết qukim th.)  
- Xây dựng chương trình kim th.  
6. Ý nghĩa khoa học và thc tiễn của Luận văn  
Kết quả nghiên cứu có thể làm tài liệu tham khảo cho các cơ sở đang tiến tới  
đưa qui trình kiểm thử phần mềm thành một qui trình bắt buộc trong dự án phát  
triển phần mềm của họ.  
7. Đặt tên đề tài  
“Một số kỹ thuật kiểm thử phần mềm.”  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
2
8. Bcc của Luận văn  
Toàn bộ nội dung của Luận văn được chia thành 4 chương như sau:  
Chƣơng 1: Vấn đề cht lượng phần mềm và kiểm thử phần mềm.  
Chƣơng 2: Các kỹ thuật kiểm thử phần mềm  
Chƣơng 3: Chiến lược kiểm thử phần mềm  
Chƣơng 4: Một số ứng dụng cth(của qui trình kim th)  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
3
CHƢƠNG 1  
VẤN ĐỀ CHẤT LƢỢNG PHẦN MỀM  
VÀ KIỂM THỬ PHẦN MỀM  
1.1. Sản phẩm phần mềm và vấn đề kiểm thử phần mềm  
1.1.1. Sản phẩm phần mềm là gì?  
Phn mm là một (b) chương trình được cài đặt trên máy tính nhằm thực hiện  
một nhiệm vtương đối độc lập nhằm phc vcho một ứng dụng cthviệc qun  
lý họat động của máy tính hoặc áp dụng máy tính trong các họat động kinh tế, quốc  
phòng, văn hóa, giáo dục, giải trí,…  
Việc tạo ra một sản phm phần mm phải trải qua nhiều giai đoạn, người ta gọi  
là qui trình phát trin phn mm, bt đầu tkhi bắt đầu có ý tưởng cho đến khi đưa  
ra sản phẩm phần mm thực thi. Khối lượng công việc trong từng giai đoạn của quá  
trình sản xut phần mm cũng thay đổi theo thi gian. Bảng 1.1 minh họa cthhơn  
về điu này.  
Bảng 1.1 - Tỉ lệ công việc của các giai đoạn phát triển phần mềm  
Phân  
tích  
yêu cầu  
Thiết  
kế  
sơ bộ  
Lập trình và  
kiểm thử đơn  
vị  
Tích hợp và  
kiểm thử tích  
hợp  
Kiểm  
thử  
hệ thống  
Thiết kế  
chi tiết  
Giai đoạn  
Hai thập kỉ 1960 - 1970  
Thập kỉ 1980  
10%  
80%  
60%  
10%  
20%  
20%  
Thập kỉ 1990  
40%  
30%  
30%  
Theo một tài liệu khác [5], chi phí liên quan từng giai đoạn của vòng đời phần  
mm như sau:  
Các giai đoạn phát triển  
Giai đoạn sản phm  
Phân tích yêu cu  
Đặc tả  
3%  
3%  
Vận hành và bảo trì  
67%  
Thiết kế  
5%  
7%  
Lập trình  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
4
   
Kim thử  
15%  
Như vậy, một sản phẩm phần mm không chỉ đơn gin là các đoạn mã chương  
trình mà còn rt nhiu phn ẩn đằng sau nó (Hình 1.1). Vì vậy, việc mắc lỗi không  
chxảy ra trong khi lập trình mà còn xảy ra cao hơn trong các công đoạn khác của  
qui trình phát trin một sản phẩm phần mm. Việc kim thcũng vì thế phải được  
tiến hành trong tt ccác phn tạo nên một sản phẩm phn mm.  
Đặc tả  
sản phẩm  
Duyệt lại  
sản phẩm  
Tài liệu  
thiết kế  
Tài liệu  
kiểm thử  
Lịch biểu  
Phản hồi từ  
phiên bản  
cũ  
Khảo sát  
khách hàng  
Thông tin  
cạnh tranh  
Dữ liệu  
Mã nguồn  
Kiến trúc  
phần mềm  
Sản phẩm  
cuối cùng  
Setup, Help Files, Samples asn  
Examples, Readme files, Error  
Messages, Icons and Arts, User  
Manuals, Product Support  
Information, …  
Hình 1.1 – Sản phẩm phần mềm  
1.1.2. Thế nào là lỗi phần mềm?  
Có rt nhiu định nghĩa khác nhau vlỗi phn mm, nhưng tựu chung, có thể  
phát biu một cách tổng quát: Lỗi phn mm là skhông khớp giữa chương trình  
đặc tcủa nó.[7]  
Dựa vào định nghĩa, chúng ta có ththy lỗi phn mm xut hiện theo ba dạng  
sau:  
Sai: Sản phm được xây dựng khác với đặc t.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
5
 
Thiếu: Một yêu cầu đã được đặc tả nhưng lại không có trong sản phẩm  
được xây dựng.  
Thừa: Một yêu cầu được đưa vào sản phẩm mà không có trong đặc t.  
Cũng có trường hợp yêu cầu này có thlà một thuộc tính sẽ được người  
dùng chp nhận nhưng khác với đặc tnên vn coi là có lỗi.  
Một hình thức khác nữa cũng được xem là lỗi, đó là phần mm khó hiu, khó  
sdụng, chậm hoặc dgây cm nhận rằng phần mm họat động không đúng.  
1.1.3. Tại sao lỗi phần mềm xuất hiện?  
Khác với scảm nhận thông thường, lỗi xut hiện nhiu nht không phải do  
lập trình. Nhiu nghiên cứu đã được thực hiện trong các dán trt nhỏ đến các dự  
án rt lớn và kết quluôn giống nhau. Slỗi do đặc tgây ra là nhiu nht, chiếm  
khoảng 80%. Có một snguyên nhân làm cho đặc ttạo ra nhiu lỗi nht. Trong  
nhiu trường hợp, đặc tkhông được viết ra. Các nguyên nhân khác có thdo đặc tả  
không đủ cẩn thận, nó hay thay đổi, hoặc do chưa phối hợp tốt trong toàn nhóm  
phát trin. Sthay đổi yêu cầu của khách hàng cũng là nguyên nhân dgây ra lỗi  
phần mm. Khách hàng thay đổi yêu cầu không cần quan tâm đến những tác động  
sau khi thay đổi yêu cầu như phải thiết kế lại, lập lại kế hoạch, làm lại những việc  
đã hoàn thành. Nếu có nhiu sthay đổi, rất khó nhận biết hết được phần nào của  
dán phthuộc và phn nào không phthuc vào sthay đổi. Nếu không giữ được  
vết thay đổi rt dphát sinh ra lỗi.  
Nguyên nhân khác  
Lập trình  
Thiết kế  
Đặc tả  
Hình 1.2 Các nguyên nhân gây ra lỗi phần mềm  
Nguồn gây ra lỗi lớn thhai là thiết kế. Đó là nn tảng mà lp trình viên dựa  
vào để nlực thực hiện kế hoạch cho phần mm.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
6
 
Lỗi do lập trình gây ra cũng khá dhiểu. Ai cũng có thmắc lỗi khi lập trình.  
Thi kì đầu, phát trin phn mm có nghĩa là lập trình, công việc lập trình thì nặng  
nhọc, do đó lỗi do lập trình gây ra là chyếu. Ngày nay, công việc lập trình chlà  
một phần việc của quá trình phát trin phần mm, cộng với shtrcủa nhiu công  
clập trình cao cp, việc lập trình trnên nhnhàng hơn, mặc độ phức tạp phần  
mm lớn hơn rt nhiu. Do đó, lỗi do lập trình gây ra cũng ít hơn. Tuy nhiên,  
nguyên nhân để lập trình tạo ra lỗi lại nhiều hơn. Đó là do độ phức tạp của phần  
mm, do tài liệu nghèo nàn, do sức ép thi gian hoặc chỉ đơn giản là những lỗi  
“không nói lên được”. Một điu cũng hin nhiên là nhiu lỗi xut hiện trên bề mặt  
lập trình nhưng thực ra lại do lỗi của đặc thoặc thiết kế.  
Một nguyên nhân khác tạo ra lỗi là do bản thân các công cphát trin phần  
mm cũng có lỗi như công ctrực quan, thư viện lớp, bbiên dịch,…  
1.1.4. Chi phí cho việc sửa lỗi  
Theo tài liệu trích dn của Martin và McCable [7], bo trì là phn chi phí  
chính của phn mm và kim thlà hot động chi phí đắt thhai, ước tính khoảng  
40% (15/33) chi phí trong quá trình phát trin ban đầu của sản phẩm phần mm.  
Kim thcũng là phn chi phí chính của giai đoạn bảo trì do phải tiến hành kim  
thlại nhng thay đổi trong quá trình sa lỗi đáp ứng yêu cầu người dùng.  
Kim thvà sửa lỗi có thể được thực hiện tại bt kgiai đoạn nào của vòng  
đời phần mm. Tuy nhiên chi phí cho việc tìm và sửa lỗi tăng một cách đáng kể  
trong quá trình phát trin.  
Trong tài liệu Boehm [5], có trích dn kết qunghiên cứu của IBM, GTE và  
TRW, tổng kết rằng lỗi được phát hiện càng muộn thì chi phí cho việc sữa lỗi càng  
ln. Chi phí tăng theo hàm mũ như hình sau.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
7
 
Đặc tả Thiết kế lập trình Kiểm thử Phát hành  
Hình 1.3 – Chi phí sửa lỗi theo thời gian phát hiện lỗi  
1.1.5. Kiểm thử phần mềm gì?  
Kim thphn mm thường đồng nghĩa với việc tìm ra lỗi chưa được phát  
hiện. Tuy nhiên, có nhiu bối cảnh kim thkhông bc lra lỗi. Kim thphn  
mm là quá trình thực thi một hthống phn mm để xác định xem phn mm đó  
đúng với đặc tkhông và thực hiện trong môi trường như mong đợi hay không.  
Mục đích của kim thphần mm là tìm ra lỗi chưa được phát hiện, tìm một  
cách sm nht và đảm bảo rằng lỗi đã được sửa, mà kim thphần mm không làm  
công việc chẩn đoán nguyên nhân gây ra lỗi đã được phát hiện và sửa lỗi.  
Mục tiêu của kim thphần mm là thiết kế tài liệu kim thmột cách có hệ  
thống và thực hiện nó sao cho có hiệu qu, nhưng tiết kiệm được thời gian, công  
sức và chi phí.  
1.2. Chất lƣợng phần mềm  
Cht lượng phn mm là một khái nim đa chiều, không dễ định nghĩa đơn  
gin theo cách chung cho các sản phẩm : “Sản phẩm được phát trin phù hợp với  
đặc tcủa nó.[8]. Có một svn đề khó trong hệ thống phần mm, đó là:  
Đặc tphải định hướng theo những đòi hỏi vcht lượng của khách hàng  
(như tính hiệu qu, độ tin cậy, tính dhiu, tính bảo mật,…) và những yêu  
cầu của chính tchức phát trin phần mm vốn không có trong đặc tả  
(như các yêu cầu vkhnăng bo trì, tính sdụng lại,..)  
Một syêu cầu vcht lượng cũng rt khó chra một cách rõ ràng.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
8
   
Những đặc tphần mm thường không đầy đủ và hay mâu thun.  
Công nghệ hệ thống  
Công nghệ phần mềm  
Quản lý và đảm bảo chất lượng  
Đảm bảo chất lượng phần mềm  
Xác minh và thẩm định phần  
mềm  
Xác minh và thẩm định phần  
mềm  
Kiểm thử phần mềm  
Kiểm thử phần mềm  
(a) Ngcảnh quy trình  
(b) Ngcảnh cht lượng  
Hình 1.4 - Kiểm thử phần mềm trong một số ngữ cảnh  
Trên quan đim qui trình, kim thphn mm là một phn của xác minh và  
thẩm định phn mm. Xác minh và thẩm định nm trong công nghphần mm,  
công nghphần mm lại là một phần của công nghhthống (Hình 1.4a). Nhìn từ  
ngcảnh cht lượng (Hình 1.4b), kim thphn mm cũng là một phần của xác  
minh và thẩm định phần mm, nên cũng có thxem như là một phần của đảm bảo  
cht lượng phần mm. Nếu phần mm là thành phần của hthống ln hơn thì kim  
thphần mm cũng được xem như là một phần của quản lý và đảm bo chất lượng.  
để đạt phần mm cht lượng cao, thì kim thcó thcoi là một thành phần chủ  
yếu của hoạt động đảm bo chất lượng phn mm.  
1.3. Qui trình kiểm thử phần mềm  
Mục đích của kim thlà thiết kế một chuỗi các trường hợp kim thmà có  
khnăng phát hiện lỗi cao. Để cho việc kim thử đạt được kết qutốt cn có sự  
chuẩn bvkế hoạch kim th, thiết kế các trường hợp kim thvà các dliệu  
kim thcho các trường hợp. Đây chính là đầu vào cho giai đoạn kim th. Và sản  
phm công việc của giai đoạn kim thchính là “báo cáo kim thử” mà tài liệu hóa  
tt ccác trường hợp kim thử đã chy, dliệu đầu vào, đầu ra mong đợi, đầu ra  
thực tế và mục đích của kim thử,… (như Hình 1.5)  
KIỂM THỬ  
Bàn giao SP  
Phân tích  
Thiết kế  
Mã hóa  
Kế hoạch kiểm thử  
Các trường hợp kiểm thử  
Dữ liệu kiểm thử  
Các báo cáo kiểm thử  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
9
 
Hình 1.5 – Giai đoạn kiểm thử trong xử lý phần mềm  
Qui trình kim thbao gồm một sgiai đoạn:  
Lập kế hoạch kiểm thử. Bước đầu tiên là lập kế hoạch cho tất cả các hoạt  
động sẽ được thực hiện và các phương pháp được sử dụng. Các chuẩn  
IEEE bao gồm các thông tin về tác giả chuẩn bị kế hoạch, danh sách liệt  
kê của kế hoạch kiểm thử. Vn đề quan trọng nhất đối với kế hoạch kiểm  
thử [6,7]:  
+ Mục đích: Qui định vphạm vi, phương pháp, tài nguyên và lịch biu  
của các hoạt động kim th.  
+ Các tài liệu tham khảo.  
+ Các định nghĩa.  
+ Khái quát vxác minh và thẩm định (V&V): tchức, tài nguyên, trách  
nhiệm, các công c, kthut và các phương pháp luận.  
+ Vòng đời của V&V: các nhiệm v, các dliệu vào và các kết qura trên  
một giai đoạn vòng đời.  
+ Báo cáo xác minh và thẩm định(V&V) phần mm: mô tnội dung, định  
dạng và thời gian cho tt ccác báo cáo V&V.  
+ Các thtục quản lý V&V bao gồm các chính sách, thtục, các chun,  
thực nghiệm và các qui ước.  
Giai đoạn btrí nhân viên kim th. Việc kim ththường phải tiến hành  
một cách độc lập và các nhóm độc lập có trách nhiệm tiến hành các họat  
động kim th, gọi là các nhóm kim th.  
Thiết kế các trường hợp kim th. Các trường hợp kim thlà các đặc tả  
đầu vào cho kim thđầu ra mong đợi của hthống cùng với các câu  
lệnh được kim th.  
+ Các phương pháp hộp đen để kim thdựa trên chức năng.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
10  
+ Các phương pháp hộp trắng để kim thdựa vào cu trúc bên trong.  
Xđo lường kim thbằng cách thu thập dliệu.  
Đánh giá sn phẩm phn mm để xác nhận sản phẩm có thsn sàng phát  
hành được chưa?  
Mô hình chung của qui trình kim thphần mm được thhiện trong hình 1.6.  
Phân tích  
Thiết kế  
Mã hóa  
KIỂM THỬ  
Chạy chương  
trình với dữ  
liệu kiểm thử  
So sánh các  
kết quả với  
các trường  
hợp kiểm thử  
Thiết kế các  
trường hợp  
kiểm thử  
Chuẩn bị dữ  
liệu kiểm thử  
Các trường  
hợp  
kiểm thử  
Kết quả  
kiểm thử  
Kết quả  
Dữ liệu  
kiểm thử  
kiểm thử  
Hình 1.6 – Qui trình kiểm thử phần mềm  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
11  
CHƢƠNG 2  
CÁC KỸ THUẬT KIỂM THỬ PHẦN MỀM  
Có thsdụng một skthut trong quá trình kim thnhm tăng hiệu quả  
của họat động này. Mc Gregor mô tcác kthut kim thnhư những công cụ  
được thiết kế để đảm bảo rằng tt ccác khía cạnh của sản phẩm đều được khảo sát  
[1]. Mt khác, các kthut kim thlà những công cụ để ddàng đạt được hiệu quả  
kim th.  
Có thchia các kỹ thuật kiểm thử phần mềm thành hai loại: các kỹ thuật kiểm  
thử hộp đen (black-box testing) và kthut kiểm thử hộp trắng (white-box testing).  
Kiểm thử sử dụng kỹ thuật hộp đen thường được gọi đơn giản là các kiểm thử  
black-box. Các kim thblack-box tìm các lỗi như thiếu các chức năng, khnăng  
sdụng và các yêu cầu phi chức năng.  
Các kthut kim thwhite-box yêu cầu hiểu biết vcu trúc chương trình  
bên trong và các kim thnhận được từ đặc tthiết kế bên trong hoặc từ mã [2].  
2.1. Nguyên tắc cơ bản kiểm thử phần mềm  
Trong lúc kim th, công nghphần mm phát sinh một chuỗi các trường hợp  
kim thử được sdụng để “tách từng phần” phần mm. Kim thlà một bước trong  
qui trình phần mm mà có thể được xem xét bi đội ngũ phát trin bằng cách phá  
vthay vì xây dựng. Các ksư phần mm chính là những người xây dựng và việc  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
12  
   
kim thyêu cầu hvượt qua các khái niệm cho trước về độ chính xác và giải quyết  
mâu thun khi các lỗi được xác định.  
2.1.1. Mục tiêu kiểm thử  
Các nguyên tắc được xem như mục tiêu kim thlà:  
Kim thlà một quá trình thực thi chương trình với mục đích tìm lỗi.  
Một trường hợp kim thtốt là trường hợp kim thmà có khnăng cao  
việc tìm thy các lỗi chưa từng được phát hiện.  
Một kim ththành công là kim thmà phát hiện lỗi chưa từng được phát  
hiện.  
2.1.2. Luồng thông tin kiểm thử  
Luồng thông tin cho kim thử được biu diễn bi mô hình trong hình 2.1. Hai  
kiu của đầu vào được truyền cho quá trình kim th:  
Cu hình phần mm: gồm các đặc tyêu cầu, đặc tthiết kế, và mã nguồn.  
Cu hình kim th: gồm có kế hoạch kim th, các thtục, trường hợp kim  
th, và các công ckim th.  
Gỡ rối  
Cấu hình phần mềm  
Lỗi  
Kết quả  
kiểm thử  
Hiệu chỉnh  
Kiểm  
thử  
đánh  
giá  
Dữ liệu tỷ lệ lỗi  
Mô hình  
tin cậy  
Dự đoán độ tin cậy  
Kết quả mong đợi  
Cấu hình kiểm thử  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
13  
   
Hình 2.1 - Luồng thông tin kiểm thử  
2.1.3. Thiết kế trƣờng hợp kiểm thử  
Thiết kế kim thphần mm có thlà một quá trình thu thập, phân tích và  
thực hiện yêu cầu. Mục tiêu của kiểm thlà phải thiết kế các trường hợp kim thử  
có khnăng cao nhất trong việc phát hiện nhiu li nht với thời gian và công sức  
tối thiểu. Như vậy, vn đề quan trọng nht trong kim thphần mm là thiết kế và  
tạo ra các trường hp kim thcó hiệu qu. Lý do vtầm quan trọng của việc thiết  
kế các trường hợp kim thxut phát tthực tế: Kim thử “vét cạn” là điu không  
th, và như vậy, kim thmột chương trình phải luôn xác định là không thvét cạn.  
Vn đề quan trọng là cgắng làm gim sự “không thvét cạn” nhiều nht có th.  
Kim thphần mm còn có các ràng buộc vthời gian, chi phí, … Chìa khoá  
của kim thlà trlời của câu hỏi: “Tập con của tt ccác trường hợp kim thcó  
thcó xác sut phát hiện lỗi cao nhất là gì?”. Việc nghiên cứu các phương pháp  
thiết kế trường hợp kim thscung cp câu trlời cho câu hỏi này.  
Bt ksn phẩm công nghnào có thể được kim thtrong hai cách:  
Biết vcác chức năng cthmà sn phẩm đã được thiết kế để thực hiện.  
Biết cách hot động bên trong của sản phẩm, kim thcó thể được thực  
hiện để đảm bo rằng “tất ccác thành phn ăn khớp nhau”.  
Cách tiếp cận kim thử đầu tiên được gọi là kim thhộp đen và cách thhai  
là kim thhộp trắng.  
2.2. Kỹ thuật kiểm thử hộp trắng (White-Box Testing)  
Kim thhộp trng hay còn gọi là kim thhướng logic, cho phép kiểm tra  
cu trúc bên trong của phần mm với mục đích đảm bảo rằng tt ccác câu lệnh và  
điu kiện sẽ được thực hiện ít nht một lần.  
Hộp trng đúng nghĩa phải gọi là hộp trong suốt . Chính vì vy, kthuật này  
còn có một stên khác là kim thhộp thutinh (Glass-Box Testing), hay kim thử  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
14  
   
hộp trong suốt (Clear-Box Testing). Người kim thtruy nhập vào mã ngun  
chương trình và có thkim tra nó, ly đó làm cơ sở để htrviệc kim th.  
Tương tnhư vn đề kim thử đầu vào trong kthut kim thhộp đen, đó là  
vn đề kim thcác đường dn lệnh trong kthut hộp trắng. Nếu phải thực hiện  
tt ccác đường dn của lưu trình điu khin trong chương trình thông qua việc  
chạy tt ccác trường hợp kim ththì có thnói rằng chương trình đã được kim  
thtrit để. Tuy nhiên điu đó không ththực hiện được vì số đường dn logic khác  
nhau trong một chương trình là cực klớn. Ví dtrong hình 2.2, sơ đồ khối của một  
chu trình điu khin. Sơ đồ biu diễn một vòng lặp t1 đến 20 lần. Trong thân của  
vòng lặp có một tập các lệnh điu kiện rnhánh lồng nhau. Số đường dn trong  
vòng lặp là 5. Như vậy, tổng số đường dn có thlà (5 + 52 + 53 + … + 520) khoảng  
xp x1014.  
Ngoài những điu bt khthi như trên, chương trình cũng có thcòn nhiu lỗi  
do các nguyên nhân khác. Đây chính là nhược đim của kthut kim thhộp  
trắng.  
Vic kim thbằng kthut hộp trắng không thể đảm bảo rằng chương trình  
đã tuân theo đặc t.  
Một chương trình sai do thiếu đường dn. Việc kim thhộp trắng không thể  
biết được sthiếu sót này.  
Vic kim thbng kthut hộp trắng không thphát hiện được lỗi do dữ  
liệu.  
Như vậy, vic kim thchdùng kthut hộp trắng là không đủ để phát hiện  
lỗi. Vì vậy, khi thiết kế các trường hợp kiểm ththường cần phải kết hợp với ckỹ  
thut kim thhộp đen.  
Nguyên tc của kthuật kim thhộp trắng là:  
Thực hiện mọi đường dẫn độc lập ít nht mt lần.  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
15  
Thực hiện mọi điu kiện logic (if-then-else) trên các giá trtrue và false của  
chúng.  
Thực hiện mọi vòng lặp (các vòng lặp for, while-do) tại các biên và trong  
phạm vi hoạt động của chúng.  
Thực hiện mọi cu trúc dliệu bên trong để đảm bảo tính hợp lcủa chúng.  
lặp <20 lần  
Hình 2.2- Ví dụ chu trình điều khiển  
2.2.1. Kiểm thử đƣờng dẫn cơ sở (Basic Path Testing)  
Kim thử đường dn cơ slà mt kthut kim thhộp trắng do Tom  
McCabe đề xuất. Phương pháp đường dn cơ scho phép người thiết kế trường hợp  
kim ththực hiện phép đo độ phức tạp logic của thiết kế thtục và sdụng phép  
đo này như một chdẫn cho việc thiết kế một tập cơ scác đường dn thực hiện.  
Những trường hợp kim thử được suy diễn để thực hiện tập cơ s. Các trường hợp  
kiểm thử đó được đảm bảo để thực hiện mỗi lệnh trong chương trình ít nht một lần  
trong quá trình kim th.  
2.2.1.1. Đồ thị lưu trình (Flow Graph)  
Trong thực tế, phương pháp đường dn cơ scó thể được dùng không cần sử  
dụng đồ thlưu trình. Tuy nhiên, đồ thlưu trình là một công chữu ích để hiu lưu  
trình điu khin và minh hophương pháp tiếp cận. Phần này strình bày một ský  
hiệu đơn giản của lưu trình điu khin, được gọi đồ thlưu trình. Đồ thlưu trình  
vlưu trình điều khin logic sdụng một ský hiệu được minh honhư hình 2.3.  
Mỗi cu trúc điu khin có một ký hiệu đồ thlưu trình tương ứng.  
Đồ thlưu trình gồm có:  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
16  
 
Mỗi hình tròn gọi đỉnh, biu diễn một hoặc nhiều lệnh thtục.  
Con trỏ được gọi cung hoặc liên kết biu din lưu trình điu khin. Mt  
cung cần phải kết thúc tại một đỉnh.  
Mỗi đỉnh chứa điu kiện gọi đỉnh điều kiện.  
Phần được bao bi các cung và các đỉnh gọi vùng.  
Tuần tự  
Rẽ nhánh  
Lựa chọn  
Lặp While  
Hình 2.3- Ký hiệu đồ thị lƣu trình  
Biu diễn các điu kiện phức trong đồ thlưu trình  
Khi gặp các điu kiện phức xut hiện trong câu lệnh điu kiện được biu din  
gồm mt hoặc nhiu phép toán logic (AND, OR, NOT), cần phải được chia thành  
các điu kin đơn trong thực hiện kim thử đường dn cơ s. Mỗi đỉnh chứa điu  
kiện được gọi đỉnh điu kiện được đặc trưng bi hai hoặc nhiều cạnh bắt  
nguồn tnó.  
Ví d: if (a OR b) then {Procedure x } else {Procedure y}  
if (c AND d) then {Procedure x} else {Procedure y}  
a
c
b
d
y
y
x
x
Hình 2.4 - Điều kiện phức  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
17  
Ví dụ: Cho lưu đồ thuật toán như hình 2.5a, đồ thlưu trình có thxác định  
như hình 2.5b..  
Cạnh  
1
1
2
2,3  
Đỉn  
3
6
4,5  
R2  
6
4
5
R3  
8
7
R1  
8
7
9
Vùng  
9
10  
11  
R4  
10  
11  
(a)  
(b)  
Hình 2.5 – Lƣu đồ thuật toán (a) và đồ thị lƣu trình (b)  
2.2.1.2. Độ phức tạp cyclomat  
Độ phức tạp cyclomat là một thước đo phần mm, cung cp phép đo định  
lượng độ phức tạp của chương trình. Khi được sdụng trong ngcảnh của phương  
pháp đường dn cơ s, giá trị được xác định cho độ phức tạp cyclomat cho biết số  
lượng đường dn độc lập trong một tập cơ scủa chương trình và cung cp cho  
chúng ta một giới hn trên slượng kim thbắt buộc để đảm bảo rằng tt ccác  
câu lệnh được thc hiện ít nht một lần.  
Một đường dn độc lập là một đường dn bt ktrong chương trình đưa ra ít  
nht một tập lệnh xlý hoặc điu kiện mới.  
Tập đường dn độc lập cho đồ thlưu trình được minh hotrong hình 2.5b là:  
Đường dẫn 1: 1-11  
Đường dn 2: 1-2-3-4-5-10-1-11  
Đường dn 3: 1-2-3-6-8-9-10-1-11  
Đường dn 4: 1-2-3-6-7-9-10-1-11  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
18  
Mỗi đường dn mi đưa ra mt cung mới. Đường dn 1-2-3-4-5-10-1-2-3-6-8-  
9-10-1-11 không được xem là một đường dn độc lập vì nó chlà một thợp các  
đường dn đã được chra (đường dn 2 và 3) và nó skhông đi qua một cung mới  
nào.  
Các đường dn 1, 2, 3 và 4 tạo thành một tập cơ sở trong hình 2.5b. Nếu các  
trường hợp kim thử được thiết kế để thực hiện những đường dn này (một tập cơ  
s) thì mọi lệnh trong chương trình sẽ đảm bảo được thực hiện ít nht một lần và  
mọi điu kiện sẽ được thực hiện chai mt đúng (true) và mt sai (false). Tuy  
nhiên, tập cơ skhông phải là duy nhất. Trong thực tế, một scác tập cơ skhác  
nhau có thể được suy diễn cho việc thiết kế một thtục được đưa ra.  
Một snghiên cu công nghiệp đã chrằng độ phức tạp Cyclomat càng cao,  
xác sut hoặc lỗi càng cao.  
modules  
V(G)  
Các module trong vùng này dễ xảy ra nhiều lỗi  
Hình 2.6 - Độ phức tạp Cyclomat  
Việc tính toán độ phức tạp cyclomat scho chúng ta biết có bao nhiêu đường  
dn cần tìm. Cho đồ thlưu trình G, độ phức tạp Cyclomat V(G) được tính theo một  
trong 3 công thức sau (dựa trên Lý thuyết đồ th):  
1. V(G) = R, trong đó R là svùng của đồ thlưu trình.  
2. V(G) = P + 1, trong đó P là số đỉnh điu kiện có trong đồ thlưu trình G.  
3. V(G) = E N + 2, trong đó E là scạnh của đồ thlưu trình, N là số đỉnh  
của đồ thlưu trình G.  
Đối chiếu với đồ thlưu trình trong hình 2.5b, độ phức tạp Cyclomat được tính  
như sau:  
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên  
19  

Tải về để xem bản đầy đủ

pdf 79 trang yennguyen 26/05/2025 190
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Một số kỹ thuật kiểm thử phần mềm", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfluan_van_mot_so_ky_thuat_kiem_thu_phan_mem.pdf