Một số kỹ thuật được sử dụng trong kiểm thử hộp đen...4 1.. Tài liệu tham khảo...18 Sinh viên thực hiện : Bùi Xuân Thanh :Một số kỹ thuật được sử dụng trong kiểm thử hộp đen Lê Hữu Toà
Trang 1A Mở đầu 2
B Nội dung 3
I Kiểm thử hộp đen 3
1 Khái niệm 3
2 Mục đích 3
II Một số kỹ thuật được sử dụng trong kiểm thử hộp đen 4
1 Kỹ thuật phân hoạch tương đương 4
2 Phân tích giá trị biên 7
3 Kỹ thuật đồ thị nhân quả 9
III.Các bước kiểm thử hộp đen 12
IV Ưu điểm và tồn tại của kiểm thử hộp đen 14
C Kết luận 16
D Tài liệu tham khảo 18
Sinh viên thực hiện :
Bùi Xuân Thanh :Một số kỹ thuật được sử dụng trong kiểm thử hộp đen
Lê Hữu Toàn: Kiểm thử hộp đen, Ưu điểm và tồn tại của kiểm thử hộp đen
Đào Văn Hùng: Các bước kiểm thử hộp đen
Trang 2Đề tài: Kiểm thử hộp đen
A Mở đầu
Kiểm thử là mộtquá trình quantrọng trong ngành phát triển phần mềm Trong thực tế có rất nhiều cách thức kiểm thử bởi các kỹ sư phần mềm trước khi sản phẩm của họ được đem ra thị trường Chính vì vậy, họ sử dụng nhiểu phương pháp khác nhau, và trong số đó là kiểm thử hộp đen.Ngàynay,nhiều nhà phát triển thường lựa chọn phương pháp kiểm thử này.Bởi vì nó có một số mặt thuận lợi nhất định Kiểm thử hộp đen có thể được thực hiện bởi bất kỳ người nào, ngay cả những người không có nhiều kinh nghiệm kỹ thuật chuyên môn Điều này là do kiểm thử hộp đen không cần biết trước cấu trúc nội tại hay mã nguồn bên trong phần mềm
Kiểm thử hộp đen có thể xác thực các chức năng của toàn hệ thống phần mềm.Việc kiểm thử này được thực hiện trên từng chức năng cụ thể cũng như việc kiểm tra và đánh giá các dữ liệu đầu vào và đầu ra
Mục đích của kiểm thử hộp đen là làm thế nàođể tìm ra các lỗi và kiểm tra quá trình chạy củahệ thống phần mềm Sau đó tích hợp và phân loại lại trong hệ thống.Nhờ đó mà các nhà phát triển sẽ được định hướng trong việc kiểm tra toànbộ hệ thống
Kiểm thử hộp đen là công đoạn kế tiếp của kiểm thử hộp trắng Kiểm thử hộp đen tập trung vào kiểm tra các yêu cầu chức năng, giao diện phần mềm Nó được thực hiện khi việc kiểm thử hộp trắng kiểm soát được toàn bộ các lỗi, các mã lệnh bên trong phần mềm
Kiểm thử so sánh được sử dụng để phát hiện ra các lỗi bởi việc đưa ra
sự so sánh của hai hay nhiều chương trình được thi hành như nhau Tương tự như vậy, những dữ liệu đưa ra được ứng dụng từ hai hay nhiều phiên bản phần mềm và kiểm thứ so sánh sẽ tìm ra các lỗi, các điểm bất thường
Kiểm thử so sánh được thực hiện với một số lượng lớn và tìm ra lỗi một cách nhanh nhất
B Nội dung
Trang 3I Kiểm thử hộp đen
1 Khái niệm
Là phương pháp kiểm thử chỉ quan tâm đếnkết quả đầu ra đối với
một tập dữ liệu đầu vào mà không quan tâm đếncáchthực thi của cácmã
lệnh bên trong củaphần mềm
Kiểmthửhộpđentậptrungvàocác yêucầuchứcnăngcủa phầnmềm
Nóchophépthiếtkếcácđiềukiệnđầuvàođểthựcthitấtcảcác yêucầuchức năng
của chương trình Kiểm thử hộp đen không phải là phần bù cho kiểm thử
hộp trắng Đólàkĩ thuậtkiểmthử bổsungchokiểmthử hộptrắngvới độbao phủ
cáclớp lỗi ít hơn
Kĩthuậtkiểmthửhộpđencốgắngtìmracáclỗisau:cáchàmbịlỗi
haymất,lỗigiaodiện,lỗitrongcấutrúcdữliệuhaytruycập dựatrêndữliệu ngoài,
lỗi thực thi và cáclỗi khởi đầu và kết thúc
- Môhình:
2 Mục đích
Bổsungchophươngphápkiểmthửhộptrắngđểpháthiệnratấtcảcác lỗi
khác nhau mà kiểm thử hộp trắng không phát hiện ra được
kiểmthửhộpđennhắmđếnápdụngtrongcácgiaiđoạnsaucủakiểmthử.Vìkiểm
Trang 4tứclàmỗimộtđiềukiệnđầuvàocóthểcólàmộttrường hợpkiểmthử.Bởivìnếu chỉkiểmthửmộtsốđiềukiệnđầuvàothìkhôngđảmbảođượcchươngtrìnhđãhết
lỗi.Tuynhiên,điềunàythựctếkhôngthểthựchiệnđược
Kiểm thử được thiết kế để trả lời các câu hỏi sau:
- Giátrị biên của cáclớp dữ liệu được phân tách như thế nào?
- Tỷ lệ và lượng dữ liệu mà hệ thống có thể chịu được?
II Một số kỹ thuậtđược sửdụng trong kiểm thử hộp đen
1 Kỹ thuật phân hoạch tương đương
Nhưđãtrìnhbày,việckiểmthửtấtcảcácđầuvàocủachươngtrìnhlàkhông
thể.Vìthế,khikiểmthửchươngtrìnhnêngiớihạnmộttậpcontấtcảcáctrường hợpđầuvàocó thểcó
Mộttập connhưvậycầncó haitínhchất:
− Mỗitrườnghợpkiểmthửnêngồmnhiềuđiềukiệnđầuvàokhácnhaucóthể
đểgiảmthiểutổngsố cáctrườnghợpcầnthiết
kiểmthửmộtgiátrịđạidiệncủamỗilớplàtươngđươngvớiviệckiểmthử mộtgiá trị bất kỳtrongcùnglớp
sửdụngđểpháttriểnmộttậpcựctiểucáctrường hợpkiểm thửphủcácđiều kiệntrên
Trang 5Thiếtkếtrườnghợpkiểm thửbằngphânhoạchtươngđương đượcxửlýtheo haibước:phânhoạchcácmiềnđầuvào/rathànhcáclớptươngđương,vàthiếtkế
cáctrườnghợpkiểmthửđạidiệnchomỗilớp
a.Xácđịnhcáclớp tươngđương
“Phânhoạchtươngđương”đượcđịnhnghĩatheolýthuyếttậphợp
a∈Avà b∈B
− Quanhệ ρtrêntậpA gọi làphảnxạ nếuaρavới ∀a∈A
− Quanhệ ρtrêntậpA gọi làđốixứngnếuaρb⇒bρavới∀a,b∈A
− Quanhệ ρtrêntậpA gọi làbắccầunếuaρbvà bρc⇒aρcvới∀a,b,c∈A
đương
− Mộtquanhệ tươngđươngphânhoạchtập hợpthànhcáclớp tươngđươngrờirạc
nóthànhhaihoặcnhiềunhóm.Cáclớptươngđươngbiểudiễnmộttậpcáctrạng
tháihợplệhoặckhônghợplệchođiềukiệnđầuvào.Điềukiệnđầuvàolàgiátrịsố
chúngta sử dụngbảngliệtkê cáclớptươngđương
Bảng2.1-Bảngliệtkêcáclớptương đương Điềukiệnvào/ra Cáclớp
tương đương hợp lệ
Cáclớp
tương đương
khônghợp lệ
Trang 6Cáclớptươngđươngcó thểđượcđịnhnghĩatheocácnguyêntắc sau:
Chẳnghạn,nếuđầuvàox nằmtrongkhoảng[0,100],lớphợplệlà0<=x<=
100,cáclớpkhônghợplệlàx<0vàx>100
lớptươngđươnghợplệvàhailớptươngđươngkhônghợplệ.Chẳnghạn,
nếuđầuvàox=5, thì lớphợplệlàx=5, cáclớp khônghợplệlàx<5vàx>5
3 Nếuđiềukiệnđầuvàoxácđịnhmộtphầntửcủatậphợp,thìphânhoạch
thànhmộtlớp tươngđươnghợplệvàmộtlớptươngđương khônghợplệ
hợplệvàmộtlớptươngđươngkhông hợplệtươngứngvớihaitrạng tháitruevà false Ngoàira,mộtnguyêntắcthứnămđượcbổsunglàsửdụngkhảnăngphán
đoán,kinhnghiệmvàtrựcgiáccủangườikiểmthử
b.Xácđịnhcáctrườnghợpkiểmthử
Tiếntrìnhnàyđượcthựchiệnnhưsau:
1 Gánmộtgiá trị duynhấtchomỗilớptươngđương
lớptươngđươnghợplệchưađượcphủ
hợpkiểmthửthìhãyviếtcáctrườnghợpkiểmthửmớisaochomỗitrường
Trang 7Bảng2.2 –Vídụcáclớptương đương Điềukiệnđầuvào Cáclớp
tương đương hợp lệ
Cáclớp
tương đương khônghợplệ
Không rỗng
Khôngphảichữcái Rỗng
Giớitínhsinhviên Kýtựchữcái,“M”hoặc“F” Khôngphảichữcái
Khôngphải“M”hoặc“F”
Điểmcủa
sinhviên
Số Từ0đến100
Khôngphải số Sốnhỏhơn0 Sốlớnhơn100
2.Phântíchgiátrịbiên(BVA -BoundaryValueAnalysis)
Khithựchiệnviệckiểmthửphầnmềmtheodữliệu,chúngtakiểmtraxem
xửlýchínhxáchaykhông
Cácđiềukiệnbiênlàtìnhtrạngtrựctiếp ởphíatrênvà dướicủacáclớp tương đương
phânhoạchtươngđươngtheohaiđiểm:
làmphầntửđạidiện,trongkhiviệcphântíchgiátrịbiênsửdụngmộthoặc
mộtsốphầntử.Nhưvậy,mỗibiêncủalớptươngđươngchínhlàđíchkiểm thử
−Khôngchỉchúýtậptrungvàonhữngđiềukiệnđầuvào,cáctrườnghợp
đươngđầura)
Rấtkhócó thểcó thểliệtkê hếtcáchướngdẫncụthểchocáctrườnghợp.Tuy nhiên,cũngcó mộtsố nguyêntắcphântích giátrị biênnhưsau:
Trang 81 Nếu điềukiệnđầuvàoxácđịnhmộtkhoảnggiátrịgiữaavàb,cáctrường hợpkiểmthửsẽ đượcthiếtkếvớigiátrị avà b,và cácgiátrị sát trênvà sát dướiavà b
kiểmthửsẽđượcpháttriểnđểthựchiệntạicácgiátrịcựcđại,cựctiểu Cácgiá trị sáttrênvà dướigiátrị cựcđại,cựctiểu cũngđượckiểmthử
3 Nguyêntắc1và 2đượcáp dụngchocácđiềukiệnđầura
hạn,mảngđượcđịnhnghĩagiớihạn100mục),tậptrungthiếtkếtrường
hợpkiểmthửđể thựcthicấutrúcdữliệu tạibiêncủanó
Ngoàira,ngườikiểmthửcóthểsửdụngsựxétđoánvàsángtạocủamìnhđể
tìmcácđiềukiệnbiên
Tóm lại,chúngtaphảikiểm thửmỗibiêncủamộtlớptươngđươngvềtấtcả cácphía
quacáckiểmthửkháctừ lớpđó
Ví dụ :
Chương trình nhận vào ba số thực, kiểm tra ba số thực có là độ dài ba cạnh một tam giác Nếu là độ dài ba cạnh của một tam giác, thì kiểm tra xem
đó là tam giác thường, cân, đều cũng như kiểm tra đó là tam giác nhọn, vuông hay tù
Dữ liệu thử
1, 1, 2 Không là tam giác
Trang 9 3, 4, 5.00001 Tam giác giác gần vuông
3, 4, 5, 6 Bốn giá trị
3 Chỉ một giá trị
-3, -3, 5 Giá trị âm
3 Kỹthuậtđồthịnhân-quả(Cause-EffectGraph)
-Khái niệm:
Là mộtkỹthuậtđể thiếtkếcakiểmthử,cungcấpmộtbiểudiễnchính xácgiữacácđiềukiệnlogic(đầuvào)vàcáchànhđộngtươngứng(đầura- kêt quả)
Kỹthuậtđồthịnhânquảđượcxâydựngdựatrêncácmôđunchức năng, lôgíc tiến trình vàđặc tả hệ thống
Trongnhiềutrườnghợp,việccốgắngchuyểnmộtchínhsáchhoặcmộtthủtục
trongngônngữtựnhiênvàophầnmềmdẫnđếnsựthấtbạivàcácvấnđềkhóhiểu
mộtsựmôtảsúctíchcácđiềukiệnlogicvàcáchànhvikèmtheo
Đồthịnhân-quảsửdụngmôhìnhcácquanhệlogicgiữanguyênnhânvàkết
quảchothànhphầnphầnmềm.Mỗinguyênnhânđượcbiểudiễnnhưmộtđiềukiện(đúng
hoặcsai)củamộtđầuvào,hoặckếthợpcácđầuvào.Mỗikếtquảđượcbiểu
phầnvừathựchiện
Đồthị nhân-quảđượctạonhưsau:
dựatrênđặctảvà đượcđịnhdanhchomỗinhân-quả
đượcbiểudiễntrongđồ thị làmrõ ràngcácquanhệ logic
Trang 10kếtquả.Dữliệukiểm thửđượcsinhradựatrêncácquitắctrong cácbảng này.
Cáckýhiệuđượcđơngiảnhoásửdụngtrongđồthịnhânquả,gồmcácphần
tử môtảnhưbảng
Cáckýhiệutrongđồthịnhânquả
Cácquitắc trongbảngquyếtđịnhđượcmôtảnhưsau:
Tênbảng Quitắc Tênbảng:chobiếttênlogic
Quitắc:đánhsốđểphânbiệtcácquitắcquyết
địnhlogic
Cácdòngđiềukiện:Mỗidòngbaogồmcác
điềukiệnđể tạo quyếtđịnhchochươngtrình
Y:“true”
1 2 …n
Trang 11:Khôngcóquyếtđịnhđượctạo ra
Cáchànhđộng:Mỗidòngchỉđịnhcó cácxửlý
đượcthựchiệnhoặckhông
X:Xửlýđượcthựchiện
:Khôngcóxửlýđượcthựchiện
Ví dụ:Đểtínhthuếthunhập,ngườita có môtảsau:
−Ngườivô giacưnộp4%thuếthunhập
−Ngườicó nhàởnộpthuếtheobảngsau:
Tổngthunhập Thuế
<=5.000.000đồng 4%
>5.000.000đồng 6%
1.Ngườicónhàở
2.Tổngthunhập<=5.000.000đồng
3.Tổngthunhập>5.000.000đồng
4.Nộp4%thuế 5.Nộp6%thuế
Trang 12−Đồ thị biểudiễnquanhệlogicrõ rànggiữanguyênnhân-kếtquả
−Xâydựngbảngquyếtđịnhdựatrênđồ thị.Từđâyxâydựngđượcbốntrường
thửcầnchoviệcnộpthuế4%)
Vídụbảngquyếtđịnh
trườnghợpkiểmthử
2.Cótổngthunhập<=5.000.000 N Y Y 3.Cótổngthunhập>5.000.000 Y N
Đểđảmbảophủnhânquả100%,cáctrườnghợpkiểmthửphảiđượcphátsinh
tươngứngvớicácquitắc trongbảngquyếtđịnhbảng trên
III.Các bước kiểm thử hộp đen
Thực hiện kiểm tra tải
Tiến hành kiểm tra bắt buộc
Trang 13 Bước 1: Tạo kế hoạch test
- Xây dựng các trường hợp kiểm tra dựa trên những yêu cầu và các tài liệu đặc tả chức năng
Đảm bảo rằng khối ứng dụng cho thấy nhiều địa chỉ giao diện mà tất cả các chi tiết
kỹ thuật chức năng yêu cầu
- Kiểm tra đầu vào là số 0
- Kiểm tra đầu vào là các giá trị null
- Đầu vào là các giá trị không hợp lệ hoặc ra khỏi phạm vi dự kiến
- Thực hiện trong điều kiện bình thường và tải cao
Trang 14- Thực hiện việc kiểm tra này cho phép bạn xác minh ứng dụng có đáp ứng mục tiêu hiệu quả mong muốn,không vượt quá ngân sách phân bổ cho việc sử dụng tài nguyên như bộ nhớ , bộ xử lý ,thời gian thực hiện lệnh ,
• Bước 4: kiểm tra stress
- Sử dụng căng thẳng thử nghiệm để đánh giá hành vi của khối ứng dụng khi nó được đẩy vượt quá tải trọng trong điều kiện bình thường hoặc cao điểm
- Mục đích của thử nghiệm để tìm ra sự căng thẳng là lỗi chủ yếu xảy ra trong điều kiện tải cao , chẳng hạn như vấn đề đồng bộ hóa,và rò rỉ bộ nhớ
- Kiểm tra stress giúp nhà sản xuất đưa ra các thông báo lỗi cho khác hàng khi gặp
sự cố khi ứng dụng bị đẩy vượt quá điều kiện bình thường
- Dùng để tìm ra các lỗ hổng của ứng dụng tránh các trường hợp bị hack hoặc đổ vỡ
do các lỗi người dùng gây ra do không hiểu về ứng dụng ,
- Thử nghiệm này được thực hiện tại thời gian chạy
- Mục đích: phá vỡ các giao diện của khối ứng dụng, đánh chặn dữ liệu nhạy cảm trong phạm vi cấm
- Mục đích:tất cả mọi người ở tất cả mọi nơi đều có thể sử dụng ứng dụng không phụ thuộc vào vị trí địa lý hay nền văn hóa
- Để thực hiện kiểm tra toàn cầu hóa, bạn phải cài đặt nhiều nhóm ngôn ngữ và văn hóa hoặc thiết lập miền địa phương để các nền văn hóa khác nhau hoặc miền địa phương,
IV Ưu điểm và tồn tại của kiểm thử hộp đen
1.Ưu điểm:
- Manglạinhiềuhiệuquảlớntrênnhữngđơnvịmãnguồnsauviệc kiểm thử
hộp đen
-Ngườikiểmthửphầnmềmkhôngcầncómộtkiếnthứcsâurộngvề đặc tả và
ngôn ngữ lập trình
-Ngườikiểmthửvàcáclậptrìnhviênlàđộclậpvớinhau,kiểmthử được cân
nhắcvà khách quan nhất
-Ngườikiểmthửthựchiệnnhữngquanđiểmcủangườixem(người chưa biết
gì)
Trang 15-Sẽ giúp cho việchiển thị sự mơ hồ hoặc sựmâu thuẫn trong cácđặc tả hệ thống
-Việckiểmthửđượctiếnhànhmộtcáchsớmnhấtngaysaukhihoàn thành việc
đặc tảhệ thống
- Cóhiệu quả cao khi được sửdụng trên hệthống lớn
-Ngườikiểmthửkhôngcầncókiếnthứcchitiếtvềchứcnăngcủahệ
thống
-Kiểmthửphầnmềmgiúphiểnthịnhữngviệcchưarõràngvànhững
mâu thuẫn trong đặctả hệ thống
2.Tồn tại:
- Chỉcó một số lượng nhỏ cácyếu tố đầu vào có thể đã được kiểm tra
-Nếukhông cócáchthức rõ ràngvà chitiết, cáctrường hợpkiểm thử khó có thể được thiết kế
-Cóthếsẽlặplạinhữngcáikhôngcầnthiếtcủa việckiểmtrađầuvào nếu nhưngười kiểmthử khôngcó đượcthông tinvề quytình testmànhững người lập trình đã cố gắnglàm
-Cóthểchấpnhậnnhiềuđườngdẫnchươngtrìnhmàchưađượckiểm
tra
- Rấtkhóxácđịnhcácyếutốđầuvào,nếunhưquitrìnhkiểmthử không được phát triểndựatrên bản đặctả chi tiết
Trang 16C Kết luận
Nóitómlại,kiểmthửhộpđenlàmộtphươngphápkiểmthửmà nguyên tắccủanólà phầnmềm cầnkiểmthửnhư làmột khốiđen đóng,chỉ quan tâm tới đầu vào và đầu ra củaphần mềm mà không quan tâm tới cấu trúc bên trong củaphầnmềm nhưthế nào.Kiểmthử hộpđen đượcáp dụngtrong bước kiểm thử tích hợp và kiểm thử hệ thống Trong mỗi giai đoạn, người ta thiết kếcáccakiểm thửđể kiểmtra,ghi nhậnlỗi củaphầnmềm
mụcđíchkiểmthử.Đểcóthểthiếtkếđượcmộtcakiểmthửhiệuquả,người
tathườngápdụngmộtsốphươngphápnhư:Cácphươngphápdựatrênđồ thị, phân hoạch tương đương, phân tích giá trị biên…Ngoàira, trong một số trườnghợpphươngphápkiểmthửhộpđencònđượcápdụngđốivớihình
thứckiểmthửsosánh,ởđómộtsốphiênbảncủaphầnmềmđượcsửdụng cùng mộtluồng dữliệuvàorồisosánhkếtquả trả vềcủacácphiên bản.Để cho việckiểmthử hiệuquả, ngườita thườngsử dụngmột sốchiếnlượcnhư: chiếnlượckiểmthửhồi quy,chiếnlượckiểmthửtừ trên xuống,chiếnlược kiểm thử từ dưới lên, chiếnlượckiểm thử thời gian thực Trong chiếnlược
kiểmthửthờigianthực,quytrìnhkiểmthửđượctiếnhànhqua4phachính đó là:Kiểm thửtác vụ,kiểm thửứng xử,kiểm thử liêntác,và kiểmthử hệ
màápdụngcácphươngphápkiểmthửkhácnhaunhưkiểmthửhộpđen,
kiểmthửhộptrắng,kiểmthửsongsong.Đểcôngviệckiểmthửđượchiệu
quả,ngườitaluônchúýđếntiêuchílựachọncáccakiểmthửsaochovừa
đơngiản,vừahiệuquả (vínhư:Chobiếtvềsựtồntạihoặcvắngmặtcủa một lớp
Trang 17sai (không phải về một saicụ thể gắn với một kiểm thử riêng biệt).
Trang 18D.Tàiliệu thamkhảo
1.Tiểuluận:Đềtài:CÁCPHƯƠNGPHÁPKIỂMTHỬPHẦNMỀM
của Nghiêm Văn Triệu,Trường đại học quốc gia Hà Nội
2.GiáotrìnhCNPMnângcaocủaNguyễnVănVỵ-Trườngđạihọc
quốc gia Hà Nội
3 Luận văn: Đề tài : MỘT SỐ KỸ THUẬT KIỂM THỬ PHẦN
MỀM
Của Cao Thị Bích Liên, Trường ĐH Thái Nguyên.
4 Diễn đàn testingvn, địa chỉ http://www.testingvn.com
5 Diễn đàn SEGVN, địa chỉ http : //www s egvn.o r g/ f o r um