Professional Documents
Culture Documents
Bai 4 - Cac Muc KTPM
Bai 4 - Cac Muc KTPM
1
NỘI DUNG
2
Các mức kiểm thử
3
Mô hình chữ V
4
NỘI DUNG
5
Unit Testing
6
Các mức kiểm thử là gì?
7
UNIT TEST - What?
Một đơn vị (unit) (thành phần phần mềm) là một phần nhỏ
nhất của chương trình phần mềm có thể kiểm thử được.
CT hướng thủ tục: 1 chương trình độc lập, hàm (function), thủ
tục (procedure), module …
Unit test là kỹ thuật kiểm thử các hoạt động của các đơn vị
mã nguồn với quy trình tách biệt nhằm xác định xem nó có
hoạt động như mong đợi hay không
Tập trung phát hiện lỗi liên quan đến chức năng và cấu trúc
nội tại của Unit
8
UNIT TEST - What?
9
Unit test - Why?
$14,000
85% % Defects
Percentage of Bugs
Introduced in
this phase
% Defects
found in
in this phase
$1000
$ Cost to
$130 $250 repair defect
$25 in this phase
11
Unit test - When? Who?
When?
Sau Coding
Who?
Thông thường do đội phát triển phần mềm, lập trình
viên (Developer, coder) thực hiện
12
Unit test - Types/Technique
13
Unit test - Implementation
14
Top-Down Unit Testing
15
Bottom-up Unit Testing
16
Unit Test - Tools
17
Unit test - Advantages?
Mục đích của Unit Test là cô lập từng phần của chương trình
và đảm bảo những phần đó chạy đúng như yêu cầu
Unit test giúp bảo đảm tính chính xác của chương trình, nó
giúp thiết lập những ràng buộc và những phần code phải
thực hiện chính xác những ràng buộc đó
Unit test giúp phát hiện lỗi và những vấn đề liên quan ngay từ
những phase đầu tiên của quá trình phát triển phần mềm
Unit test giúp tích hợp code dễ dàng
18
Unit test - Disadvantages?
Unit Test khó có thể bắt tất cả các lỗi của chương trình
Unit Test chỉ kiểm lỗi những unit nhỏ nhất của chương trình
do đó không thể nào lường trước những vấn đề có thể xảy ra
khi kết hợp các module với nhau
Unit Test chỉ có thể kiểm tra được những lỗi đã biết chứ
không thể sử dụng nó để tìm ra các lỗi tiềm ẩn của chương
trình
19
NỘI DUNG
20
Integration test - What?
• Thực hiện hoạt động kiểm thử khi tích hợp các thành phần
phần mềm với nhau để tạo thành một hệ thống hoàn chỉnh.
• Tập trung kiểm tra giao diện giữa các thành phần, không tập
trung vào chức năng của từng thành phần cụ thể.
21
Integration test - What?
• Lỗi kiểm thử tích hợp là lỗi khi các thành phần/ đơn vị phần
mềm giao tiếp với nhau thực hiện không đúng.
• Nên thực hiện trên những Unit đã được kiểm tra Unit Test,
và tất cả các lỗi mức Unit đã được sửa chữa
22
Integration test - Objectives
• Phát hiện lỗi giao tiếp xảy ra giữa các modules/ components
23
Integration test - Why?
Kiểm thử mức Unit chỉ kiểm tra các đơn vị một cách độc lập.
Hỗ trợ tích hợp chức năng/ modules theo thiết kế kiến trúc
hoặc thiết kế cấp cao (HLD).
Đảm bảo sự giao tiếp giữa các chức năng/ modules làm việc
một cách đúng đắn.
25
Integration test - When? Who?
When:
Who:
26
Integration test - Level of Integration
27
Integration test - Types of Integration
28
Big Bang Integration
29
Big Bang Integration
Ưu điểm:
Mọi thứ đã hoàn thành trước khi bắt đầu kiểm thử tích hợp.
Nhược điểm:
Mất thời gian.
Chỉ hiệu quả khi phần mềm dự kiến không có khiếm khuyết.
30
Incremental Integration
Ưu điểm:
Các lỗi được phát hiện sớm ở giai đoạn đầu của quá trình
tích hợp để dễ phát hiện nguyên nhân.
Nhược điểm:
Cần thời gian để tạo stubs và drivers.
31
Types of Incremental Integration
32
Top-down Integration Testing
33
Top-down Integration Testing
Ưu điểm:
Không cần tạo driver.
Các test case có thể được định nghĩa về các tính năng của
hệ thống (yêu cầu chức năng)
Nhược điểm:
Có thể cần một số lượng lớn các stub, đặc biệt nếu mức
thấp nhất của hệ thống chứa nhiều phương pháp.
Viết các stubs là khó khăn: stub phải cho phép kiểm tra tất
cả các điều kiện có thể.
Một số giao diện không được kiểm tra riêng biệt.
34
Bottom-Up Integration Testing
35
Bottom-Up Integration Testing
Ưu điểm:
Không cần tạo stubs.
Hữu ích cho việc kiểm thử các hệ thống:
Hệ thống hướng đối tượng
Hệ thống thời gian thực
Hệ thống có yêu cầu về thực thi một cách nghiêm ngặt.
Nhược điểm:
Kiểm thử hệ thống con - hệ thống quan trọng nhất là cuối
cùng.
Cần tạo driver.
36
Functional Incremental
Ưu điểm:
Các test case có thể được định nghĩa về các tính năng của
hệ thống (yêu cầu chức năng).
Nhược điểm:
Cần tạo driver và stub.
Một số giao diện không được kiểm tra riêng biệt
Khó khăn trong người tích hợp.
37
NỘI DUNG
38
System test - What?
39
System test - What?
Rủi ro
SRS
40
System test - Why?
Để xác định các Để kiểm tra trong Thực hiện các kiểm
yêu cầu chức một môi trường gần thử cuối cùng để xác
năng, phi chức giống với môi minh rằng hệ thống
năng, nghiệp vụ, trường sản xuất, nơi đủ điều kiện chuyển
yêu cầu kỹ thuật ứng dụng cuối cùng giao
của phần mềm. sẽ được triển khai.
41
System test - When?
Kiểm thử mức tích hợp đã được thực hiện hoàn thành
42
System Testing
Kiểm thử mức hệ thống dựa trên đặc tả của sản phẩm,
bao gồm:
Yêu cầu đặc tả
Tương tác với các dịch vụ thứ ba hoặc một hệ thống khác
43
System Testing - Technique
44
Black Box Test Method
Tập trung vào yêu cầu chức năng của phần mềm
45
System Testing - Environment
Môi trường để kiểm thử gần giống với môi trường chạy
của sản phẩm để giảm thiểu rủi ro về lỗi môi trường.
46
NỘI DUNG
47
User Acceptance Test (UAT) - What?
Môi trường kiểm thử chấp nhận thông thường giống với
môi trường của sản phẩm
Kiểm thử chấp nhận sản phẩm tập trung vào việc xác
nhận sản phẩm có đạt yêu cầu KH
Kiểm thử chấp nhận sản phẩm có thể diễn ra trong mọi
cấp độ kiểm thử khác sau Unit test (Integration test,
System Test)
48
User Acceptance Test- Why?
Chấp nhận sản phẩm dựa trên tiêu chí chấp nhận.
Đảm bảo chức năng cần thiết và mong đợi của khách
hàng có trong sản phẩm phần mềm.
49
UAT - When, Environment
50
UAT - Types
51
UAT - Types
Bảo trì
52
UAT - Types
Ví dụ: báo cáo kế toán có tuân thủ theo pháp luật không?
53
UAT - Types
54
UAT - Types
55
CÁC CẤP ĐỘ KIỂM THỬ PHẦN MỀM
TÓM LẠI
Nội dung bài học gồm
56
Tài liệu tham khảo
Bộ môn CNPM - Khoa CNTT, Đề cương Kiểm thử phần mềm, Đại
học Sư phạm Kỹ Thuật Hưng Yên.
https://www.guru99.com/unit-testing-guide.html
https://www.guru99.com/integration-testing.html
https://www.guru99.com/system-testing.html
57
TỔNG KẾT
QUESTION/ ANSWER
58