Kiểm thử Phần mềm
!"#$
#
%&'(!"#$ ") !*+'+ ,&-&&+./0&01123
Septeni Technology
Tự giới thiệu
•
4&''5'6
•
(7891:;<9=(,
•
1>;2?:1:;@AB
•
C:DE1:;ABFG77HIAB
•
,8J&BJABKLMG?
•
9N
•
1,+4O"<O$6+4OO<"#6<9PI,?4'9F,Q9=(,6
•
4"!<"R6S92,'T
•
F;;
•
CUV1EWX&YHB&0Z-2//#OOR<#OO
•
[\EA/>';YC,KW]1&'/#OO*<!""#
•
@&V'E^8G;N0G?1__2`Vab!CV!""R<!""
•
91,EAB8Bc&'+@ %d'c!"##<
!"#!
e
Dự kiến
•
'f/gc'/h/
•
&'h/hic''h
•
/hj&/E/'0/4ic'6
•
c'/hcckh/'///'c'l0&/
•
a'/2%%'0c'/gc'/h
•
'i0/h4/h0/6
$
Nội dung
•
Fm&<h/n/
•
?G</
•
?o<0/h
•
FGp<'&'h0/h
•
Fc<c'
•
%
•
F;MG?q/&<h/'&'h
•
@W<2%%
•
(q;&2%%
•
%'
)
Chương trình có lỗi?
9PWp:0Zrs
#include <stdio.h>
void swap(int *xp, int *yp)
{
*xp = *xp + *yp;
*yp = *xp - *yp;
*xp = *xp - *yp;
}
R
Kỹ thuật kiểm thử
•
Fm&?G Jt
•
(Wp88
•
.qG
•
27j&rGp
•
uG:4'c/6
•
Fm&?o H&v
•
FW;wS
•
8&&x'>
•
FGp
Kiểm thử hộp đen/chức năng
•
&Jt>' :<G&
•
F'NGvGI
•
F:'rH7WI
•
yz2WG{'E7/YI'
•
@W&E':'GA&WBG/'&G|}?'
u~BG+
•
%•M;q?r ;&
•
F:G7|B&r{|B&;&
•
PIH7WI/€t/Y'H'
•
C?/Ym&EWp8qG7j&rGpuG:4'c/6
*
Kiểm thử giá trị biên
•
FWp84&0''&''//6
•
•
-D0sq#8•'‚/€H)'
•
!8'4~f7'S86
•
!8'_<4~f7'S86
•
4'_6 !4GN0;0ƒ;&:Gv6
•
-qB&r
•
.H?WpGN0;„AI'rW88GN'q
•
-D0s8•0‚
•
…4'_6 !4_06 !z…4'_6 !z…4'_6 !_z…4'_6 !0<z…4'_6 !0z
•
…'4_06 !z…'_4_06 !z…<4_06 !z…4_06 !z
•
@W;GIW~:
•
O
Kiểm thử giá trị biên
•
C?/Yr
•
FWp8N
•
8Wp7q•'‚H8'<_
•
FWp8PI
•
PIW?Wp|>'W8
•
$_#'
•
FqWpG{;D0s"
•
,IG
•
F:;&j&7WGA&|&?q'&
•
N'B&'u':I;D0sEe# !
•
F:'W:hB'w†'>'r
•
‡&G
•
970•MG?|'
•
#"
Kiểm thử phân hoạch tương đương
•
@KNE'BGA&WqG
•
I>'H7WqˆBGA&
•
17WG‰r
•
'qHŠ:''&
•
F:0u'
•
C~q„WWp‹tương đươngŒ†'WWp/€ZK'
'&GYq
•
yz2WG{'/'}GIj&';GGuG|fWGpGI
WqG4KN6
•
##
Kiểm thử lớp tương đương
•
1}KN
•
•>:Ž4'g6E
•
1•0M'8G{74:0M'8‰&„6
•
1A|&rBBfWGp
•
||fWGp0M'G{7rr'0;
•
@7&GA&s&?'&r
•
#!
Kiểm thử lớp tương đương - Ví dụ
•
•X@|'rGA&E'qWBfWGp2'01+
•
@KN>'WB7/E
•
(}'&??AGN0;>'q
•
-D0sHAƒ'>'#7
•
M|+
•
1W'/€GIfK0MuWAGN0;
•
#e
y#T!Te
2y2#T2!T2eT2$
1y1#T1!
Kiểm thử lớp tương đương yếu
•
1•HH7WAGN0;DH?A
•
Y'Y&/€ˆ/Yq>'KN|B&H
•
D0sq$
•
#$
‘ '
aV# '
#
#
#
aV! '
!
!
!
aVe '
e
e
#
aV$ '
#
$
!
Kiểm thử lớp tương đương mạnh
•
%M'8L9B<W>'Wq
•
-qD0sq'|E
e’$’!y!$'
•
1WfXGrH7WW>'WWpGN0;
•
“0sGI7BGA&'
•
‡&G
•
,r&'7Wp:I;A8WqG7fWGp
•
DIqGA&7{WWpN
•
1|rIqWp8
•
#)
Kiểm thử dựa trên bảng quyết định
•
27j&rGp<2=940/'6
•
38&A&Jt|:7ˆ72=9
•
2=9:7JNo}DfW
•
(oWGB&;qWG?J
•
(Y;i<<//c<'/
•
2=9|8rB&GB&;G?qG??W0•&
•
FWWH&vGB&W:ƒ
•
#R
Bảng quyết định
•
38&A&Jt|:7ˆ7j&rGp42=96
•
2=9?WDfW}G:7JN
•
(oWGB&;qWG?J
•
(Y;i<<//c<'/
•
2=9|8rB&GB&;G?qG??W0•&
•
FWWH&vGB&W:ƒ
•
#
Ví dụ về bảng quyết định
9B&;
CW:
3 3 3 3 , , , ,
9”G•HW
3 3 , , 3 3 , ,
F:'W
3 , 3 , 3 , 3 ,
G?
F'0K&„
•
F'0KL;&
• •
F'ABG‰Gv
• • • •
F' 'M
• • • •
F'–H
• •
Fos/MYW
#*
Ví dụ bảng quyết định tính lương
1WL
•
#O
Sử dụng bảng quyết định
•
90•j&'/WH7WGB&;
•
1|0ZG
•
C:7JN
•
'^}kiểm thử dựa trên logic
•
F0M'8GIfE
•
FH&vW0sWH&v
•
-0&„GB&
•
FW0sG{7
•
!"
Sử dụng bảng quyết định
•
27DIE
–
9{7|&B0N7
–
JMWG?f7':j&'}
–
JMW&:7SGrG?
–
F?&•'‰GI}:AfX&W
•
1WNr8:7SGr;/0s7
•
A&rWJ0sJMW;GBGIfX:j&'}
•
!#
Một số vấn đề với bảng quyết định
•
q/0s7AG77E
•
1W&7GAG>
•
1|}PI
•
1W&7Hj&W
•
C}PIWpKw•K'?G?
•
!!
Thiết kế ca kiểm thử
•
9fWGp'v'&WGB&;GA&G?
GA&'
•
C?/YGB&;/€'r&GrWqGGA&G?'
r&GrWAfwJtD>'?G'fX
•
1W&GI&W'
•
!e
Kinh nghiệm với kiểm thử dựa trên bảng quyết
định
•
27j&rGpZI
–
1|B&j&rGpG''
–
1|Wj&';j&'}ƒ'WrGA&
–
1|WLW8j&'GrW>'WrGA&
–
1|j&';Kj&7ƒ'GA&GA&'
–
1|LWJN4G?JNG„p'h'6
•
27j&rGp:0•S?4/'&6
•
27j&rGp|p7hr0A
•
!$
Kiểm thử từng đôi
•
rE'c//h''/h
•
Mrj&'/WHA&r~0rI>'!r&Y '/Y
•
yzFuG:/?J'H7W{WpA>'W
r
•
(7GW/YI'
•
-—;&j&7;W;~4)"<O"˜6
•
!)