PHẦN II. NGUYÊN LÝ KIỂM THỬ
PHẦN MỀM
Nội dung:
Bài 3: Các phương pháp kiểm thử
Bài 4: Các kỹ thuật kiểm thử
Bài 5: Các vấn đề cần kiểm thử
Bài 6: Các giai đoạn kiểm thử
07/05/14 1
BÀI 3. CÁC PHƯƠNG PHÁP KIỂM THỬ
Nội dung:
3.1. Test to pass, test to fail
3.2. Phương pháp kiểm thử hộp trắng (white box test)
3.3. Phương pháp kiểm thử hộp đen (black box test)
3.4. Phương pháp kiểm thử hộp xám (gray box test)
3.5. Kiểm thử tĩnh (static), kiểm thử động (dynamic)
3.6. Kết hợp các phương pháp kiểm thử
3.7. Standard và guideline của quá trình coding
07/05/14 2
Conditions Table ( 2
n
)
Program Sample
If((A > 1) AND (B=0)
{
//sub-statement 1
}
Else
{
//sub-statement 2
}
Test Conditions
1. (A > 1) AND (B = 0)
2. (A > 1) AND (B NOT = 0)
3. (A<=1) AND (B NOT = 0)
4. (A<=1) AND (B = 0)
3.2. EXAMPLE: WHITE BOX TEST WITH “AND”
Definition
Both parts of the predicate are
tested
Program Sample shows that all 4
test conditions are tested
Conditions Table ( 2
n
)
Program Sample
Y = Y + 2
ELSE
Y = Y + 4
END
3.2. EXAMPLE: WHITE BOX TEST WITH “if…else”
No. Of Paths = 3
Test Cases:
1 (Y > 1) and (Y > 9)
2 (Y > 1) and (Y <= 9)
3 (Y < = 1)
Graph
Y = Y + 1
Y > 9
T
F
T F
Y = Y + 1
Y = Y + 3
Y > 1
Y = Y + 4
Y = Y + 2
1
3
2
3.3. PHƯƠNG PHÁP KIỂM THỬ HỘP
ĐEN (BLACK BOX TEST)
07/05/14 8
INPUT
OUTPUT
testing
1 số test case phải là white box (tester phải biết
1 chút về cách thức hoạt động bên trong của
phần mềm)
1 số test case là black box
07/05/14 10
INPUT
OUTPUT
3.4. EXAMPLE: GRAY BOX TEST
Division(a, b) thực phép chia 2 số nguyên a
cho b được code bằng C#. Cần kiểm thử với
những trường hợp nào?
07/05/14 11
Method of division
INPUT
OUTPUT
Kiểm thử với những trường hợp:
a chia hết b
a không chia hết cho b
a>b hoặc a<b
b=0
Một số dự án xây dựng bằng mô hình: big – bang hoặc code – and –
fix => không có bản đặc tả, người kiểm thử => tester phải trao đổi
với coder, manager, … => đưa ra bản đặc tả: chi tiết hoặc chỉ là
những câu hỏi của người đang thiết kế phần mềm.
07/05/14 14
b) KIỂM THỬ DYNAMIC BLACK - BOX
Cách kiểm thử phần mềm mà tester không hề biết gì về
đoạn code kiểm thử gọi là Dynamic black – box testing
(behavioral testing )
Dynamic: bạn sẽ đóng vai trò là một khách hàng và chạy chương
trình
Black – box: bạn đang kiểm tra nó mà không hề biết chính xác cái
cách mà nó làm việc
⇒
requirements document và product specification => testcase (input, output)
07/05/14 15
b) KIỂM THỬ DYNAMIC BLACK - BOX
Test case:
Lựa chọn các test case là nhiệm vụ
quan trọng nhất của tester
Test case được lựa chọn phải đảm
bảo kiểm tra ít trường hợp mà vẫn
đạt hiệu quả cao
và debugging
07/05/14 19
3.7. STANDARD VÀ GUIDELINE CỦA
QUÁ TRÌNH CODING
Standard: là các tiêu chuẩn quốc tế về coding bắt buộc 1
phần mềm đạt chuẩn phải tuân theo
Guideline: là các hướng dẫn viết coding khuyến khích các
kỹ sư lập trình tuân theo
07/05/14 20
3.7. STANDARD VÀ GUIDELINE CỦA
QUÁ TRÌNH CODING
Các standard có 4 phần chính:
Title miêu tả chủ đề mà standard muốn trình bày
Standard (hoặc guideline) miêu tả, giải thích chính xác những
thứ được phép và không được phép
Justification (sự biện hộ, chứng minh): đưa ra những lý do để
người lập trình hiểu là tại sao nó là cách lập trình tốt
Example (ví dụ): biểu diễn những mẫu lập trình đơn giản về
cách sử dụng standard. Cái này có thể không cần thiết
07/05/14 21
3.7. STANDARD VÀ GUIDELINE CỦA
QUÁ TRÌNH CODING
Các chuẩn quốc gia và quốc tế dành cho hầu hết các ngôn
trường hợp nào có thể là các test – to – fail?
07/05/14 24