Whitebox Testing
Presenter: Nguyễn Tuấn Tú
R&D Manager @TesterVN
Founder & CEO @TesterToday
Skype: tunt721
tunt@testervn.com
Mobile: +84 985.098.379
Nội dung
1. Whitebox test là gì?
2. Module và cấu tạo logic
3. Phương pháp thực hiện test flow control
4. Phương pháp thực hiện Data Flow Test
5. Q & A
• Test được thực hiện mà hiểu và ý thức đến nội dung
bên trong của phần mềm là “Whitebox testing”
• Whitebox test thường được sử dụng trong Unit test,
lấy đối tượng module - đơn vị nhỏ nhất của phần
mềm - làm đối tượng để test
• Whitebox test được thực hiện nhằm để xác nhận cấu
tạo logic của phần mềm.
• Whitebox test có 2 loại test:
a) Control flow test
b) Data flow test
1. Whitebox test là gì?
• Flow xử lý và trình tự thực hiện được gọi là “xử
lý logic”
• Có nhầm lẫn trong xử lý logic:
 Module chạy sai
 Phát sinh nhiều vấn đề khi kết hợp module đó
với module khác
2. Module và cấu tạo logic
• Ví dụ: phần mềm chia tiền bữa ăn được đặt thứ
tự xử lý như sau.
1) A: nhập tổng số tiền
2) C: nhập số người
3) E: tính số tiền được chia (tổng số tiền chia cho số người)
4) B: nếu số tiền đã được nhập là 0 thì quay về xử lý A
5) D: nếu số người đã được nhập là 0 thì quay về xử lý C
6) F: hiển thi kết quả tính toán
2. Module và cấu tạo logic
=> Có nhầm lẫn trong cấu tạo logic của module
• Test flow control = Control path test
• “câu lệnh (Statement)” “đường dẫn phân
nhánh (Decision)” “điều kiện (Condition)” là các
yếu tố cấu thành module -> control flow test sẽ
xác nhận toàn bộ những cái đó đã được thực
hiện chưa.
3. Phương pháp thực hiện test flow control
• Trình tự thực hiện control flow test:
1) Vẽ flow chart căn cứ vào source code
2) Quyết định tiêu chuẩn coverage
3) Truy suất đường bao quát tiêu chuẩn coverage.
4) Thực hiện test thông đường đã truy suất
5) Xác định kết quả
3. Phương pháp thực hiện test flow control
• Statement coverage là số đường test ít nhất đi
qua được tất cả các câu lệnh.
3.1 Tiêu chuẩn coverage (1): Statement coverage
VD: Specs tính giảm giá và tính point
khi mua hàng
• Ladies day: Giảm giá 30% ngày thứ
3 dành cho khách hàng là phụ nữ
• Point tăng gấp đôi
1) Ngày thứ 2 thưởng point gấp
đôi ko căn cứ vào lượng tiền
mua
2) Không căn cứ vào thứ, nếu mua
có trị giá từ 500k trở lên,
thưởng point gấp đôi
3.1 Tiêu chuẩn coverage (1):
Statement coverage
Biểu đồ 3-3 Path thỏa mãn statement coverage
• Decision coverage (hay còn gọi Branch
coverage) là số đường test ít nhất đi qua được
tất cả các nhánh (True, False).
3.2 Tiêu chuẩn coverage (2): Decision coverage
VD: Specs tính giảm giá và tính point
khi mua hàng
• Ladies day: Giảm giá 30% ngày thứ
3 dành cho khách hàng là phụ nữ
• Point tăng gấp đôi
1) Ngày thứ 2 thưởng point gấp
đôi ko căn cứ vào lượng tiền
mua
2) Không căn cứ vào thứ, nếu mua
có trị giá từ 500k trở lên,
thưởng point gấp đôi
3.2 Tiêu chuẩn coverage (2):
Decision coverage
Biểu đồ 3-4 Path thỏa mãn decision coverage
• Condition coverage (Coverage điều kiện phức
hợp) là thực hiện test sao cho thỏa mãn toàn
bộ điều kiện yêu cầu bao gồm các điều kiện
coverage.
• Sử dụng khi thiết lập điều kiện phức hợp liên
kết với điều kiện logic “AND” và điều kiện logic
“OR” trong module đối tượng.
3.3 Tiêu chuẩn coverage (3): Coverage điều kiện phức hợp
3.3 Tiêu chuẩn coverage (3): Coverage điều kiện phức hợp
Biểu đồ 3-5 Cấu trúc kết quả phán định điều kiện phức hợp
3.3 Tiêu chuẩn coverage (3): Coverage điều kiện phức hợp
Biểu 3-1 Kết hợp điều kiện test đạt coverage điều kiện phức hợp 100%
Thứ Giới
tính
Tiền Ladies day Point tăng gấp 2
1. Thứ 3 1. Giới tính
nữ
1. Thứ 2 1. Tiền >=500k
Thứ 3 Nữ 500k True True False True
Thứ 3 Nam 100k True False False False
Thứ 2 Nữ 500k False True True True
Thứ 2 Nam 100k False False True False
3.4 Sự khác biệt về coverage level
Hình 3-6 Số lần test thỏa mãn tiêu chuẩn coverage
3.5 Thực hành của test flow control
• Ví dụ: Module thực hiện tính toán giảm giá
dịch vụ đánh golf căn cứ vào bảng sau:
Phí thông thường: 2 M
Phí hội viên: 1,8 M
Từ 60 tuổi trở lên 1,5 M
Thứ 4 hàng tuần 1 M
3.5 Thực hành của test flow control
List 3-1 Source-code của module nh toán giảm giá phí
(1) Vẽ flowchart căn cứ
vào source-code
3.5 Thực hành của test flow control
Hình 3-7 Flowchart của module nh toán giảm giá phí
(1) Vẽ flowchart căn cứ vào source-code
3.5 Thực hành của test flow control
(2) Quyết định tiêu chuẩn coverage (yếu tố
muốn bao phủ)
• Decision coverage
• Mục tiêu bao phủ toàn bộ đường phân nhánh
3.5 Thực hành của test flow control
Hình 3-8 Đường bao phủ tiêu chuẩn coverage
(3) Truy suất đường bao phủ tiêu chuẩn coverage
3.5 Thực hành của test flow control
Tạo và thực hiện testcase đi qua 4 đường này.
(4) Thực hiện test để đi qua đường đã truy suất
No. Thứ Tuổi Hội viên Expected result Actul result
1 Thứ 4 - - 1000 Yên
2 Ko phải thứ 4 >=60 tuổi - 1500 Yên
3 Ko phải thứ 4 <= 60 tuổi Hội viên 1800 yên
4 Ko phải thứ 4 <= 60 tuổi Ko phải hội viên 2000 Yên
3.5 Thực hành của test flow control
(5) Xác nhận kết quả
• Kết quả sau khi thực hiện có đúng với mong
đợi trong testcase không?
4. Phương pháp thực hiện Data Flow Test
• Data flow test là phương pháp xác nhận dữ liệu
hay biến số đang được sử dụng trong phần
mềm có được xử lý chính xác theo trình tự:
“Định nghĩa” => “Sử dụng” => “Biến mất”
4. Phương pháp thực hiện Data Flow Test
Hình 3-9 Data flow
Q&A
?
Thank you
 Presenter: Nguyễn Tuấn Tú
 R&D Manager @TesterVN
 Founder & CEO @TesterToday
 Skype: tunt721
 tunt@testervn.com
 Mobile: +84 985.098.379

Whitebox testing - Mr.TesterVN

  • 1.
    Whitebox Testing Presenter: NguyễnTuấn Tú R&D Manager @TesterVN Founder & CEO @TesterToday Skype: tunt721 tunt@testervn.com Mobile: +84 985.098.379
  • 2.
    Nội dung 1. Whiteboxtest là gì? 2. Module và cấu tạo logic 3. Phương pháp thực hiện test flow control 4. Phương pháp thực hiện Data Flow Test 5. Q & A
  • 3.
    • Test đượcthực hiện mà hiểu và ý thức đến nội dung bên trong của phần mềm là “Whitebox testing” • Whitebox test thường được sử dụng trong Unit test, lấy đối tượng module - đơn vị nhỏ nhất của phần mềm - làm đối tượng để test • Whitebox test được thực hiện nhằm để xác nhận cấu tạo logic của phần mềm. • Whitebox test có 2 loại test: a) Control flow test b) Data flow test 1. Whitebox test là gì?
  • 4.
    • Flow xửlý và trình tự thực hiện được gọi là “xử lý logic” • Có nhầm lẫn trong xử lý logic:  Module chạy sai  Phát sinh nhiều vấn đề khi kết hợp module đó với module khác 2. Module và cấu tạo logic
  • 5.
    • Ví dụ:phần mềm chia tiền bữa ăn được đặt thứ tự xử lý như sau. 1) A: nhập tổng số tiền 2) C: nhập số người 3) E: tính số tiền được chia (tổng số tiền chia cho số người) 4) B: nếu số tiền đã được nhập là 0 thì quay về xử lý A 5) D: nếu số người đã được nhập là 0 thì quay về xử lý C 6) F: hiển thi kết quả tính toán 2. Module và cấu tạo logic => Có nhầm lẫn trong cấu tạo logic của module
  • 6.
    • Test flowcontrol = Control path test • “câu lệnh (Statement)” “đường dẫn phân nhánh (Decision)” “điều kiện (Condition)” là các yếu tố cấu thành module -> control flow test sẽ xác nhận toàn bộ những cái đó đã được thực hiện chưa. 3. Phương pháp thực hiện test flow control
  • 7.
    • Trình tựthực hiện control flow test: 1) Vẽ flow chart căn cứ vào source code 2) Quyết định tiêu chuẩn coverage 3) Truy suất đường bao quát tiêu chuẩn coverage. 4) Thực hiện test thông đường đã truy suất 5) Xác định kết quả 3. Phương pháp thực hiện test flow control
  • 8.
    • Statement coveragelà số đường test ít nhất đi qua được tất cả các câu lệnh. 3.1 Tiêu chuẩn coverage (1): Statement coverage
  • 9.
    VD: Specs tínhgiảm giá và tính point khi mua hàng • Ladies day: Giảm giá 30% ngày thứ 3 dành cho khách hàng là phụ nữ • Point tăng gấp đôi 1) Ngày thứ 2 thưởng point gấp đôi ko căn cứ vào lượng tiền mua 2) Không căn cứ vào thứ, nếu mua có trị giá từ 500k trở lên, thưởng point gấp đôi 3.1 Tiêu chuẩn coverage (1): Statement coverage Biểu đồ 3-3 Path thỏa mãn statement coverage
  • 10.
    • Decision coverage(hay còn gọi Branch coverage) là số đường test ít nhất đi qua được tất cả các nhánh (True, False). 3.2 Tiêu chuẩn coverage (2): Decision coverage
  • 11.
    VD: Specs tínhgiảm giá và tính point khi mua hàng • Ladies day: Giảm giá 30% ngày thứ 3 dành cho khách hàng là phụ nữ • Point tăng gấp đôi 1) Ngày thứ 2 thưởng point gấp đôi ko căn cứ vào lượng tiền mua 2) Không căn cứ vào thứ, nếu mua có trị giá từ 500k trở lên, thưởng point gấp đôi 3.2 Tiêu chuẩn coverage (2): Decision coverage Biểu đồ 3-4 Path thỏa mãn decision coverage
  • 12.
    • Condition coverage(Coverage điều kiện phức hợp) là thực hiện test sao cho thỏa mãn toàn bộ điều kiện yêu cầu bao gồm các điều kiện coverage. • Sử dụng khi thiết lập điều kiện phức hợp liên kết với điều kiện logic “AND” và điều kiện logic “OR” trong module đối tượng. 3.3 Tiêu chuẩn coverage (3): Coverage điều kiện phức hợp
  • 13.
    3.3 Tiêu chuẩncoverage (3): Coverage điều kiện phức hợp Biểu đồ 3-5 Cấu trúc kết quả phán định điều kiện phức hợp
  • 14.
    3.3 Tiêu chuẩncoverage (3): Coverage điều kiện phức hợp Biểu 3-1 Kết hợp điều kiện test đạt coverage điều kiện phức hợp 100% Thứ Giới tính Tiền Ladies day Point tăng gấp 2 1. Thứ 3 1. Giới tính nữ 1. Thứ 2 1. Tiền >=500k Thứ 3 Nữ 500k True True False True Thứ 3 Nam 100k True False False False Thứ 2 Nữ 500k False True True True Thứ 2 Nam 100k False False True False
  • 15.
    3.4 Sự khácbiệt về coverage level Hình 3-6 Số lần test thỏa mãn tiêu chuẩn coverage
  • 16.
    3.5 Thực hànhcủa test flow control • Ví dụ: Module thực hiện tính toán giảm giá dịch vụ đánh golf căn cứ vào bảng sau: Phí thông thường: 2 M Phí hội viên: 1,8 M Từ 60 tuổi trở lên 1,5 M Thứ 4 hàng tuần 1 M
  • 17.
    3.5 Thực hànhcủa test flow control List 3-1 Source-code của module nh toán giảm giá phí (1) Vẽ flowchart căn cứ vào source-code
  • 18.
    3.5 Thực hànhcủa test flow control Hình 3-7 Flowchart của module nh toán giảm giá phí (1) Vẽ flowchart căn cứ vào source-code
  • 19.
    3.5 Thực hànhcủa test flow control (2) Quyết định tiêu chuẩn coverage (yếu tố muốn bao phủ) • Decision coverage • Mục tiêu bao phủ toàn bộ đường phân nhánh
  • 20.
    3.5 Thực hànhcủa test flow control Hình 3-8 Đường bao phủ tiêu chuẩn coverage (3) Truy suất đường bao phủ tiêu chuẩn coverage
  • 21.
    3.5 Thực hànhcủa test flow control Tạo và thực hiện testcase đi qua 4 đường này. (4) Thực hiện test để đi qua đường đã truy suất No. Thứ Tuổi Hội viên Expected result Actul result 1 Thứ 4 - - 1000 Yên 2 Ko phải thứ 4 >=60 tuổi - 1500 Yên 3 Ko phải thứ 4 <= 60 tuổi Hội viên 1800 yên 4 Ko phải thứ 4 <= 60 tuổi Ko phải hội viên 2000 Yên
  • 22.
    3.5 Thực hànhcủa test flow control (5) Xác nhận kết quả • Kết quả sau khi thực hiện có đúng với mong đợi trong testcase không?
  • 23.
    4. Phương phápthực hiện Data Flow Test • Data flow test là phương pháp xác nhận dữ liệu hay biến số đang được sử dụng trong phần mềm có được xử lý chính xác theo trình tự: “Định nghĩa” => “Sử dụng” => “Biến mất”
  • 24.
    4. Phương phápthực hiện Data Flow Test Hình 3-9 Data flow
  • 26.
  • 27.
    Thank you  Presenter:Nguyễn Tuấn Tú  R&D Manager @TesterVN  Founder & CEO @TesterToday  Skype: tunt721  tunt@testervn.com  Mobile: +84 985.098.379