Professional Documents
Culture Documents
Kiểm Thử Phần Mềm
Kiểm Thử Phần Mềm
2021
NỘI DUNG
Các cấp độ KT
Công cụ
Nguyên tắc
Kiểm thử PM là gì ?
• Là quá trình thực thi một chương trình với mục
đích là tìm ra lỗi
Glen Myers
• Là quy trình phân tích phần mềm để tìm sự khác
biệt giữa các điều kiện hiện có và điều kiện bắt
buộc và để đánh giá các tính năng của phần mềm
ANSI/IEEE 1059
4
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Kiểm thử PM là gì ?
• Kiểm thử PM giúp tìm ra được sự hiện diện của lỗi
nhưng không thể chỉ ra sự vắng mặt của lỗi
Dijkstra
5
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
6
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
BUG
7
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
BUG
8
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
BUG
9
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
BUG
• Bug ngân hàng ở Mỹ lộ 823 tài khoản,
920.000.000$
10
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
11
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
12
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
13
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
TEST vs DEBUG
• Test
– Tìm khiếm khuyết
– Tester ?
• Debug
– Tìm nguyên nhận
– Developer?
14
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
15
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
16
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
NGUYÊN TẮC
• KT chỉ ra sự hiện diện của những khiếm khuyết,
không chỉ ra được là PM không có khiếm khuyết
• KT toàn bộ (Exhaustive testing) là không thể
• Kiểm thử càng sớm càng tiết kiệm được thời gian
và tiền bạc
• Sự tập trung của các lỗi
• Pesticide paradox
• KT phụ thuộc vào ngữ cảnh
• Ngụy biện không có lỗi
17
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
19
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
20
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
21
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
22
QUY TRÌNH và KẾ HOẠCH
Kế hoạch KT
KT thành phần
KT tích hợp
KT hệ thống
24
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
25
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Mô hình chữ V
26
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Mô hình chữ V
• ƯU ĐIỂM
– Các pha tương thích nhau, hỗ trợ cho nhau
– Khuyến thích các hoạt động liên quan đến kế
hoạch kiểm thử
– Kiểm thử từ giai đoạn đầu
• KHUYẾT ĐIỂM
– Pha sau chỉ được thực hiện khi pha trước kết
thúc
– Chỉ phù hợp các dự án có đầy đủ thông tin và
ít thay đổi.
27
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
MÔ HÌNH SCRUM-AGILE
28
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
29
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
30
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
31
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
33
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
34
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
35
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
36
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
37
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
38
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
39
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KẾ HOẠCH
Người thực
Hành động Đầu vào Đầu ra
hiện
Xác định các yêu cầu kiểm thử:
– Yêu cầu từ khác h hàng, đặc tả Danh sách các
yêu cầu người sử dụng, tiêu chí yêu cầu cần test,
Test lead, Tài liệu
được chấp nhận, thiết kế chi tiết gồm cả chức
Tester, yêu cầu
(nếu có), những ràng buộc của năng và phi chức
khách hàng năng
– Xác đinh những gì cần phải test
Xác định phương thức, loại kiểm Phương thức kiểm
thử cần thực hiện, tiêu chí đầu ra thử, tiêu chí đầu
Test lead
Những vấn đề lưu ý đặc biệt, điều ra, điều kiện tiến
kiện thực hiện test hành kiểm thử
40
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KẾ HOẠCH
Người thực
Hành động Đầu vào Đầu ra
hiện
Xác định nguồn lực và môi trường thực hiện
Khi xác định
kiểm thử:
được các yêu
– Số lượng người, kỹ năng cần có
Test lead cầu kiểm thử Danh sách tài nguyên
– Yêu cầu về phần cứng, phần mềm
dự án phầm
– Công cụ hỗ trợ (nếu có)
mềm
– Loại dữ liệu
Khi xác định
Bảng thời gian cụ thể
được tài
Lập thời gian cho các giai đoạn kiểm thử Test lead cho từng giai đoạn
nguyên, nhân
kiểm thử
lực
41
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KẾ HOẠCH
Người thực
Hành động Đầu vào Đầu ra
hiện
Đánh giá kế hoạch
Trưởng dự án sẽ cùng những người liên quan
Khi các yêu
tham gia đánh giá xem bản kể hoạch kiểm
Test lead cầu bên trên Tài liệu Test Plan
thử có phù hợp với yêu cầu của dự án chưa.
đã rõ ràng
Nếu chưa thì test lead sẽ phải thực hiện sửa
lại theo yêu cầu.
Tạo base line:
Khi đã xây
Khi kế hoạch test đã được duyệt thì bản kế Tài liệu testplan được
Test lead dựng xong
hoạch này sẽ được đánh baseline và chuyển duyệt.
test plan
vào thư mục baseline được tạo
Test lead sẽ gửi thông báo qua mail tới toàn
bộ những người trong dự án có liên quan về Test lead
tài liệu Test Plan này.
42
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
43
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
44
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
1. Giới thiệu
• Mục đích: Trình bày ngắn gọn về mục đích và tổ chức của tài liệu
• Các định nghĩa, từ viết tắt, thuật ngữ: cung cấp các định nghĩa của các thuật ngữ, từ viết
tắt cần thiết để giải thích đúng các kế hoạch kiểm thử
• Tài liệu tham khảo: Liệt kê tất cả những tài liệu dùng để tạo ra bản kế hoạch
• Thông tin cơ bản: Mô tả ngắn gọn về dự án
• Phạm vi kiểm thử:
– Danh mục các giai đoạn kiểm thử
– Danh sách các loại hình kiểm thử
– Danh sách các giả định
– Các khiểm khuyết theo dự kiến
• Danh mục các rủi ro: Liệt kê các rủi ro có thể ảnh hưởng đến việc thiết kế hoặc thực thi
các KT
• Nhu cầu đào tạo: Liệt kê các nhu cầu đào tạo của các thành viên trong nhóm để thực
thi việc KT
45
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
47
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
4. Chiến lược
• Mô tả việc kiểm thử sẽ được thực hiện như thế nào.
Gồm có
– Các loại kiểm thử: mỗi loại kiểm thử cụ thể cho từng loại
yêu cầu của phần mềm
– Các cấp độ kiểm thử: cấp độ kiểm thử nào sẽ được thực
hiện và loại kiểm thử nào sẽ được thực hiện ở mỗi cấp
độ
• Công cụ kiểm thử: liệt kê đầy đủ các công cụ hỗ trợ
kiễm thử
48
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
4. Chiến lược
Có 2 chiến lược kiểm thử cơ bản:
• Kiểm thử Big bang(kiểm thử vụ nổ lớn): là chiến lược kiểm
thử tích hợp hệ thống một lần duy nhất để được module
chức năng (hay hệ thống hoàn chỉnh)
• Kiểm thử gia tăng: chiến lược kiểm thử từ thấp tới cao,bao
gồm 4 mức:
– Kiểm thử đơn vị
– Kiểm thử tích hợp
– Kiểm thử hệ thống
– Kiểm thử chấp nhận
49
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
5. Nguồn lực
• Nguồn lực hỗ trợ cho hoạt động kiểm thử gồm 2
loại:
– Nhân lực: khi liệt kê phải chỉ rõ người nào làm công việc
gì
– Nguồn lực hệ thống: liệt kê các phần mềm phần cứng
để đáp ứng cho việc kiểm thử
50
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
6. Test milestone
• Một milestone là một sự kiện, một thành tích KT
quan trọng đạt được hay cần đạt được của dự án.
• Mỗi cột mốc kiểm thử phải bao gồm ít nhất một
hoạt động kiểm thử và đạt được một hoặc nhiều
sản phẩm kiểm thử.
51
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
7. Deliverables of test
• Liệt kê tên sản phẩm cần bàn giao
• Ngày bàn giao
• Người bàn giao
• Bàn giao cho ai
52
CẤP ĐỘ KIỂM THỬ
KT UNIT
KT Module
KT tích hợp
KT hệ thống
KT chấp nhận
KT UNIT
• Mức độ KT thấp nhất
• KT các đơn vị/thành phần độc lập
• Mục đích là để đánh giá mỗi đơn vị của PM thực
hiện đúng như thiết kế
• Được thực hiện bởi các LTV
54
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT UNIT
• Các vấn đề quan tâm trong UNIT test
– Sự hoàn chỉnh và đúng đắn của các chức năng
– Xử lý lỗi
– Kiểm tra giá trị đầu vào
– Tính đúng đắn của giá trị đầu ra
– Tối ưu thuật toán
55
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT UNIT
• Để thực hiện KT unit hiệu quả cần:
– Các đơn vị KT phải độc lập
– Thực hiện lặp đi lặp lại
– Test tự động
– Phải dễ viết
– Dễ thực hiện
– Đo được
56
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
57
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
58
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT Module
• Còn gọi là component testing
• Được thực hiện bởi tester
• Được thực hiện sau UNIT Testing
• Xác nhận các yêu cầu kiểm thử
59
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
61
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Module
Test Planning
Module
Test Specification
Module
Test Execution
Module
Test Recording
Checking for
Module END
Test Completion
62
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
• Có 2 phương án để KT Module
– Kiểm tra thành phần ở quy mô nhỏ (CTIS)
Kiểm thử các module chức năng độc, tách biệt với các
thành phần khác.
– Kiểm tra thành phần ở dạng lớn (CTIL)
Được thực hiện mà không bị cô lập với các thành phần
khác của phần mềm
63
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT Tích hợp
• Kiểm thử tích hợp nhằm nhận được một bộ phận
chức năng hay một hệ con tốt
• Là một kỹ thuật có tính hệ thống để xây dựng cấu
trúc của chương trình
• Từ các module đã qua kiểm thử đơn vị, xây dựng
cấu trúc chương trình đảm bảo tuân theo thiết kế
•
64
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
65
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT top-down
• Bắt đầu từ module gốc ở trên cùng của cây cấu trúc
chương trình.
• Sau khi kiểm thử xong module hiện hành, ta chọn
module kế tiếp theo ý tưởng :
– Module kế tiếp phải được dùng trực tiếp bởi module
được kiểm thử rồi.
– Vì có nhiều module cùng thỏa mãn điều kiện trên, nên
ta chọn module thực hiện nhiều hoạt động I/O trước.
– Rồi chọn module "critical", là module dùng thuật giải
phức tạp, tiềm ẩn nhiều lỗi và/hoặc lỗi nặng nhất.
66
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT top-down
67
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT top-down
• Testcase cho module A
– Ví dụ chỉ có B cung cấp thông tin cho A
Xây dựng stub B
• Sau khi kiểm thử xong module hiện hành, ta chọn
1 trong các Stub và thay thế nó bằng module thật
rồi kiểm thử module thật này
68
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT top-down
• ABCDEFGHIJKL • ADHIKLCGBFJE
• ABEFJCGKDHLI • ABFJDIECGKHL
• ...
69
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
70
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
71
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT bottom-up
• Bắt đầu từ 1 hay nhiều module lá : module mà
không gọi module nào khác.
• Module kế tiếp phải dùng trực tiếp 1 hay nhiều
module được kiểm thử rồi.
• Chọn module thực hiện nhiều hoạt động I/O trước.
• Kế đến là module "critical“: module dùng thuật giải
phức tạp, tiềm ẩn nhiều lỗi
72
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT bottom-up
• Các module E, J, G, K, L
và I ₫ược kiểm thử trước
• Để kiểm thử 1 module,
ta phải viết driver
• Driver dễ tạo ra hơn
stub
73
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT bottom-up
• Nếu D và F là 2 module critical nhất, thì ta nên
kiểm thử theo trình tự của hình vẽ dưới đây
74
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Ưu điểm KT bottom-up
• Nếu các lỗi xảy ra có khuynh hướng nằm trong các
module mức thấp thì phương pháp bottom-up sẽ
giúp phát hiện sớm chúng.
• Việc tạo các điều kiện kiểm thử sẽ dễ dàng hơn.
• Việc quan sát các kết quả kiểm thử cũng dễ dàng
hơn.
75
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
76
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT hệ thống
• Kiểm thử hệ thống:
– Tìm kiếm các lỗi, nhưng trọng tâm là đánh giá về hoạt
động, thao tác, sự tin cậy và các yêu cầu khác liên quan
đến chất lượng của toàn hệ thống
– Mức kiểm thử này đặc biệt thích hợp cho việc phát hiện
lỗi giao tiếp với phần mềm hoặc phần cứng bên ngoài,
chẳng hạn các lỗi "tắc nghẽn" (deadlock) hoặc chiếm
dụng bộ nhớ
– Đòi hỏi nhiều thời gian, công sức, thiết bị…
– Mục đích: kiểm thử thiết kế và toàn bộ hệ thống có thỏa
mãn yêu cầu đặt ra hay không tìm.
77
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT hệ thống
• Khi nào có thể thực hiện KT hệ thống?
– Hệ thống cần kiểm thử đã hoàn thiện
– Kiểm thử tích hợp và đơn vị đã hoàn thành
– Sản phẩm được tích hợp đúng thiết kế
– Các tài liệu đặc tả đã là bản cuối cùng
– Các tài liệu hỗ trợ kiểm thử như test plan, test case đã
hoàn thành.
78
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT hệ thống
Installation
Testing Functionality
Usability Testing
Testing
Interoperability
Security Testing
Testing
Regression Performance
Testing Testing
79
PP và KT KIỂM THỬ
Phương
pháp KT
Kỹ thuật KT
Phương pháp KT
• Hộp đen
• Hộp trắng
• Hộp
81
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT hộp đen
• Coi hệ thống là một hộp đen,
không thể thấy được cấu trúc
logic bên trong
• Tập trung vào các yêu cầu
chức năng của phần mềm
dựa trên các dữ liệu lấy từ đặc
tả
82
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT hộp đen
• Đặc trưng của KT hộp đen
– Kiểm tra xem PM có đủ chức năng chưa
– Các chức năng có đúng không
– Thực hiện các phép thử qua giao diện
• Một vài kỹ thuật được áp dụng trong KT hộp đen
– Phân vùng tương đương
– Phân tích giá trị biên
– Bảng hỗ trợ quyết định
83
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
84
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
85
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
86
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
87
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
89
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
91
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
92
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
93
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
94
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
95
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
96
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
97
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
98
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
99
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
100
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
101
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
102
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
103
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
104
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
105
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
106
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
? ?
107
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
108
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT hộp xám
109
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
KT hộp trắng
• Lợi ích của KT hộp trắng:
– Thử nghiệm hộp xám cung cấp các lợi ích kết hợp của
cả thử nghiệm hộp trắng và hộp đen
– Nó dựa trên đặc tả chức năng, Sơ đồ UML, Sơ đồ Cơ sở
dữ liệu hoặc kiến trúc
– Tester có thể thiết kế kịch bản KT phức tạp một cách
thông minh hơn
110
KT TỰ ĐỘNG
Tổng quan
Quy trình
Công cụ
112
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
113
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
114
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
115
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
116
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
117
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
118
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
PHPUnit
• Cài đặt
• Assertion &Annotations
• Test Dependencies
• Data Providers
• Testing Exceptions
• Testing PHP Errors
• Testing Output
• Incomplete and skip test
• Test Doubles
119
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
120
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
121
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
ASSERTIONS
• Xác nhận 1 khẳng định
– Ví dụ: assertTrue($v) muốn xác nhận rằng $v có phải mang gí trị
là true không
• Một vài assertion thông dụng
– assertTrue($v)
– assertFalse($v)
– assertEquals($expectedResult, $result);
– assertNotEquals($expectedResult, $result);
– assertEmpty($array); assertNotEmpty($array);
– assertArrayHasKey($expectedKey,$array);
– assertContains($expectedValue,$array)
122
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
VÍ DỤ ASSERTION
• $this->assertEquals(1,1); //OK
• $this->assertEquals(1,0); //Fail
• $this->assertContains(10,array(1,2,3,4,5));//OK
• $this->assertContains(10,array(1,2,3,4,5));//Fail
•
assertThat(mixed $value, PHPUnit\Framework\Con
straint $constraint[, $message = ''])
123
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
ANNOTATIONS
• Thông tin mô tả của 1 codeblock
• Phải được đặt trong /** ... */
• Một vài assertion
– @after
– @before
– @depends
– @dataProvider
– @expectedException
– @test
124
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
TEST DEPENDENCES
• Thể hiện mối quan hệ giữa các phương thức
• Khai báo
• @depends anotherFunction
• Một function có thể có nhiều @depends
• Kết quả từ các hàm producer thành tham số cho
các hàm consumer
125
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
DATA PROVIDERS
• Một hàm có thể sinh ra dữ liệu test cho các hàm khác. Ví dụ:
/** public function additionProvider()
* @dataProvider additionProvider {
*/ return [
[0, 0, 0],
public function testAdd($a, $b, $expected)
[0, 1, 1],
{
[1, 0, 1],
$this->assertSame($expected, $a + $b); [1, 1, 3]
} ];
}
126
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
DATA PROVIDERS
• Phương thức data provider phải là public
• Kết quả trả về là 1 mảng 2 chiều
• Có thể đặt tên cho các bộ dữ liệu test
– VD: 'adding zeros' => [0, 0, 0]
• Dữ liệu dùng để test có thể được lưu trong file csv
127
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
128
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
TESTING EXCEPTIONS
• Sử dụng hàm expectException()
public function testException()
{
$this->expectException(InvalidArgumentException::class);
}
129
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
PHP ERRORS
• PHPUnit chuyển errors, warnings, and notices
sang exception.
130
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
INCOMPLETE TEST
• Đánh dấu 1 hàm test chưa hoàn thành:
Thêm $this->markTestIncomplete ();
Hoặc thêm $this->markTestIncomplete (‘message’);
131
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SKIPPED TEST
• Vì lý do nào đó mà bạn muốn bỏ qua 1 hàm test thì
có 2 cách để thực hiện
– C1: Thêm $this->markTestSkipped();
– Hoặc $this->markTestSkipped(‘message’);
– C2: Thêm annotation @requires
Any PHP version @requires PHP @requires PHP
PHP
identifier 5.3.3 7.1-dev
Any PHPUnit @requires @requires
PHPUnit
version identifier PHPUnit 3.6.3 PHPUnit 4.6
A regexp
@requires OS @requires OS
OS matching PHP_O
Linux WIN32|WINNT
S
132
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
TEST DOUBLES
• Nếu test class A có gọi đến class B mà class B
chưa có thì sao?
• Làm sao để mô phỏng 1 object khác?
• Các loại test doubles
– Dummy
– Stubs
– Spy
– Mocks
133
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
DUMMY OBJECT
• Dummy Object là đối tượng chỉ cần cho có để đủ số
lượng, không làm gì
class Ab class AbTest extends TestCase
{ {
public $a;
public function testProcessBCorrectly()
public $b;
public function __construct(A $a,B $b) {
{ $a=$this->getMockBuilder('A')->getMock();
$this->a=$a; $b=$this->getMockBuilder(‘B')->setMethods(['process'])-
$this->b=$b; >getMock();
} $b->expects($this->once())->method('process')
public function processA()
->will($this->returnValue(true));
{
return $this->a->process(); $ab=new Ab($a,$b);
} $this->assertTrue($ab->processB());
public function processB() }
{
}
return $this->b->process();
}
}
134
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
STUBS
• Stub object chứa các phương thức mà có kết quả
do ta định trước
• Không giả lập phương thức private và protected
• VD như $b trong ví dụ trước
135
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
MOCK OBJECT
• Quan tâm có chạy hay chưa hơn là kết quả trả về
• Thường được sử dụng khi test các đối tượng có liên
quan với nhau.
• VD:
– Có class Subject, trong class có phương thức attach.
Tham
$obj = $this->createMock(‘Class_Name);
$obj->expects($this->exactly(3))
->method('debug');
136
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
MOCKING
• Thường được sử dụng khi test các đối tượng có liên
quan với nhau.
• Quan tâm có chạy hay chưa hơn là kết quả trả về
137
QUẢN LÝ VIỆC KT
Tổ chức
Quản lý lỗi và sự cố
139
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
140
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
142
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
143
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
144
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
145
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
146
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
147
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
148
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
149
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
151
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
152
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
154
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Lượng giá
• Hai cách tiếp cận tổng quát
– Lượng giá công việc của chính từng cá nhận hoặc của
chuyên gia (bottom-up via workbreakdown-structure)
– Lượng giá dựa trên các dự án đã thực hiện hoặc tương
tự
155
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
156
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
157
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
159
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
160
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Quản lý rủi ro
• Kiểm thử cũng tạo lên một phần rủi ro
• Rủi ro là khả năng của một tác đông ngược:
– Trễ phát hành bản kiểm thử, có rắc rối về môi trường
kiểm thử
• Phát hiện rủi ro tới nỗ lực kiểm thử
– Cái gì có thể dẫn đến lỗi trong dự án ? Dẫn tới trễ hạn
hoặc sai lầm
– Loại nào của kiểm thử không chấp nhận tác động tới
162
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Quản lý lỗi và sự cố
• Thường có các mục tiêu sau:
– Cung cấp thông tin chi tiết về sự cố hoặc lỗi cho những ai cần đến
– Là phần dữ liệu tập hợp để phân tích
– Hướng dẫn cải tiến quy trình phát triển và kiểm thử
• Người liên quan:
– Người phát triển
– Người quản lý: Quyết định tài nguyên, cấp phát, ưu tiên
• Nhân viên hỗ trợ kỹ thuật: người cần nắm bắt thông tin thực
hiện, chuẩn bị
• Testers: Cần biết trạng thái của hệ thống hiện tại
163
CÔNG CỤ
Công cụ quản lý
165
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
Pairwise testing
• N-wise (N-way) Testing
• Kết hợp n đầu vào với nhau.
– Kết hợp 2 đầu vào với nhau được gọi là 2-wise
– Kết hợp 3 đầu vào với nhau được gọi là 3-wise
• Còn được gọi là n-way testing
– 2-wise: 9 test case (PICT)
– 3-wise: 18 test case (PICT)
166
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
2-WISE TESTING
167
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
3-WISE TESTING
168
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
169
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
170
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
171
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
172
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
173
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
174
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
175
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
176
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
177
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
SELENIUM IDE
178
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
179
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
180
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
181
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
182
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
183
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
184
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
185
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
186
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
187
Trường ĐH Công Nghệ Sài Gòn
KHOA CÔNG NGHỆ THÔNG TIN
188