Professional Documents
Culture Documents
SE-Testing
SE-Testing
SE-Testing
INT2208E
Lecture 08: Software Testing
1
Last class…
2
Questions (10’)
3
Discussion
4
Discussion
• Buying:
• Building • Pros
• Pros: • Faster Time to Market
• Customization • Cost-effective (purchasing a Commercial off-the-
• Integration shelf solution)
• Data Ownership • Support (ongoing support and security updates
• Cons provided by vendors)
• Cost • Cons:
• Time • Customization
• Security • Integration
• Vendor lock-in
5
Today…
• Software testing
6
Software Quality
Software Quality
7
Software Testing
8
V-model
Và kía cạnh chức năng
Software Quality
10
Lỗi trong chương trình phần mềm
11
Ví dụ về lỗi đơn giản trong mã nguồn
12
Bug đầu tiên, 9/9/1947 bởi Grace Hopper
13
Một vài con số thực tế…
• Chỉ có 32% dự án phần mềm được coi là thành công (đầy đủ chức năng,
đúng thời hạn, đủ kinh phí)
14
Ví dụ về lỗi trong chương trình phần mềm
15
Millennium Bug/Y2K Bug
16
17
Gangnam Style Broke Youtube
18
Uber is at fault for fatal self-driving crash
19
Ví dụ về lỗi trong chương trình phần mềm
20
Tìm lỗi thậm trí mệt mỏi hơn coding
21
Thật không?
23
Code của bạn đã đủ tốt?
Kỹ năng của bạn đã đủ tốt?
24
Phương pháp giảm thiểu lỗi
25
Rà soát thủ công
26
Các phương pháp tự động giảm thiểu lỗi
28
Các phương pháp tự động giảm thiểu lỗi
• Phân tích tĩnh: Xác định các loại lỗi cụ thể trong phần mềm bằng cách
quét các mẫu đáng ngờ trong code
• Hạn chế: (1) Giới hạn về loại lỗi và (2) Nhiều cảnh báo giả (false positives)
29
Các phương pháp tự động giảm thiểu lỗi
30
31
Sonarlint: False positive
32
Các phương pháp tự động giảm thiểu lỗi
• Kiểm thử: Đưa input vào phần mềm và chạy thử để kiểm tra hành vi của
phần mềm có như kì vọng không
• Hạn chế: (1) Không thể có được tất cả các khả năng thực thi có thể, (2)
Cần đầu ra kì vọng để kiểm tra
33
Các phương pháp tự động giảm thiểu lỗi
34
35
Các phương pháp tự động giảm thiểu lỗi
• Kiểm chứng: Xem xét tất cả các khả năng thực thi của chương trình và
chứng minh tính đúng đắn chương trình
• Hạn chế: (1) Khó có đặc tả, (2) Hầu hết các chương trình trong thực tế
đều quá đắt để chứng minh
36
Các phương pháp tự động giảm thiểu lỗi
Java Pathfinder
Simulink Design
37
Verifier
Alloy: Example
38
Alloy: Example
39
Counter example (aka. Flaw)
Kiểm thử, tại sao?
43
Tại sao…?
44
Kiểm thử chương trình đơn giản
45
Kiểm thử một trình duyệt
46
V-model
Software Quality
Software Quality
48
Reliability
• Testing:
• Stress Testing
• Load Testing
• Endurance Testing
49
Availability of 99s
50
Usability
• A/B Testing:
• Presents users with two different versions of a user interface element (e.g., button placement,
layout) and analyzes which version generates better user engagement or task completion rates.
52
How about data privacy?
54
How about data privacy?
• Applicable regulations:
GDPR (Europe), CCPA (California), or industry-specific regulations
55
Test-driven development
56
Key points
• Software Quality
• Software Testing: What, Why, and How
• Functional and Non-functional testing
• Test-driven Development
57
Next class
• Software Maintenance
• ???
58