0. Bài 1. Tổng Quan Về Kiểm Thử Phần Mềm

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 70

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54| Page 1

MỤC TIÊU
Về kiến thức:
- Sinh viên có thể xác định, tóm tắt được vị trí và vai trò của kiểm thử phần
mềm trong quy trình phát triển phần mềm
- Phân loại và so sánh được điểm giống nhau và khác nhau giữa các cấp độ
kiểm thử tương ứng với các giai đoạn khác nhau của quy trình phát triển
phần mềm
- Thực hiện được việc lên kế hoạch kiểm thử, viết tài liệu kiểm thử

Về kỹ năng:
- Kỹ năng lên kế hoạch, viết tài liệu kiểm thử.
- Kỹ năng phán đoán và phát hiện lỗi phần mềm.
- Sử dụng các công cụ kiểm thử và đánh giá trường hợp kiểm thử.

Về thái độ: Thái độ hợp tác làm việc nhóm; Làm việc cần cù, tỉ mỉ, chính xác, có
hệ thống.
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 2
GIỚI THIỆU HỌC PHẦN

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 3
GIỚI THIỆU HỌC PHẦN

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 4
GIỚI THIỆU HỌC PHẦN

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 5
22:54 | Page 6 Bộ môn An Toàn phần mềm – Khoa An Toàn Thông Tin
Bộ môn An Toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 7
Chương 01 - MỤC TIÊU

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 8
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 9
 Kiểm thử(KT):
 Đánh giá chất lượng hoặc tính chấp nhận được của sản phẩm, phát
hiện lỗi hoặc bất cứ vấn đề gì về sản phẩm.
 là tiến trình hoạt động của một hệ thống hoặc một thành phần với điều
kiện xác định; nhằm quan sát hoặc ghi lại các kết quả, và tạo ra sự cân
bằng một vài khía cạnh của hệ thống hoặc thành phần.
 Đích đến của kiểm thử phần mềm là tìm ra lỗi.
 Gỡ rối( Debugging):
 Tiến trình xác định vị trí và sửa hoặc vượt qua lỗi trong mã chương
trình hoặc kiến trúc phần cứng.
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 10
 Sự khác nhau và quan hệ giữa KT và Gỡ rối:
 Kiểm thử là quá trình tìm lỗi trong khi gỡ rối để xác định vị trí và sửa lỗi.
 Qui trình làm việc: Kiểm thử: Tìm lỗi-> Gỡ rối: Định vị, sửa lỗi -> Kiểm thử

xác minh xem lỗi đã được sửa chưa?.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 11
 Lỗi (Error): là những vấn đề mà con người mắc phải
trong quá trình phát triển các sản phẩm phần mềm.

 Sai (Fault): là kết quả của lỗi, hay nói khác đi, lỗi sẽ
dẫn đến sai.

Thất bại (Failure): xuất hiện khi một lỗi được thực thi.

 Sự cố (Incident): là triệu chứng liên kết với một thất bại và thể hiện cho
người dùng hoặc người kiểm thử về sự xuất hiện của thất bại này.
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 12
 Yêu cầu của khách hàng và đặc tả của phần mềm (PM): Dựa trên
yêu cầu của khách hàng và các yêu cầu bắt buộc khác, đặc tả được
xây dựng để mô tả chính xác các yêu cầu mà sản phẩm PM cần đáp
ứng, và có giao diện thế nào.
Kiểm chứng và thẩm định:
 Kiểm chứng (verification): quá trình để đảm bảo rằng một sản
phẩm PM thỏa mãn đặc tả của nó.
 Thẩm định (validation): quá trình để đảm bảo rằng sản phẩm đáp
ứng được yêu cầu của người dùng (khách hàng).
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 13
Chất lượng của một SPPM: sự đáp ứng các yêu cầu
về chức năng, sự hoàn thiện và các chuẩn đã được đặc
tả, cùng các đặc trưng mong chờ từ mọi SPPM chuyên
nghiệp.
 Độ tin cậy của PM: xác suất để phần mềm chạy
không có thất bại trong một khoảng thời gian nhất
định. Nó được xem là một yếu tố quan trọng của chất
lượng PM.
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 14
 Quy trình KT:
 Phân tích tĩnh: dựa trên việc khảo sát các tài liệu được xây
dựng trong quá trình phát triển sản phẩm (tài liệu đặc tả nhu
cầu người dùng, mô hình PM, hồ sơ thiết kế và mã nguồn PM).
 Phân tích động: thực thi chương trình để phát hiện những
thất bại có thể có của chương trình, hoặc quan sát các tính
chất nào đó về hành vi và hiệu quả (performance).
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 15
Các khái
niệm cơ
bản…

 Quy trình
kiểm thử

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 16
Các khái niệm cơ bản…
 Các kĩ thuật kiểm thử

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 17
 Vòng đời của KT

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 18
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 19
Ca kiểm thử: Mỗi ca kiểm thử có một tên và được liên kết với một
hành vi của chương trình, gồm một tập các dữ liệu đầu vào và một
xâu các giá trị đầu ra mong đợi đối với PM.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 20
Ca kiểm thử…
 Thông tin về một ca kiểm thử tiêu biểu

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 21
Ca kiểm thử
 Đầu vào:
 Tiền điều kiện (pre-condition) - điều kiện cần thỏa mãn trước khi tiến
hành ca kiểm thử

 Dữ liệu đầu vào thực sự được xác định bởi phương pháp kiểm thử.

 Đầu ra mong đợi.

 Đầu ra:
 Hậu điều kiện (post-condition)

 Dữ liệu đầu ra thực sự.


Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 22
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 23
Mô tả bài toán kiểm thử qua biểu đồ Venn

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 24
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 25
Việc xác định các ca kiểm thử…

 Kiểm thử hàm (kiểm thử chức năng hay kiểm thử hộp đen - black-box
testing)

 Kiểm thử cấu trúc (kiểm thử hộp trắng - white-box testing)

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 26
Kiểm thử hàm…
 Thông tin duy nhất được dùng là đặc tả của PM cần kiểm thử.

 Ưu điểm
 khi cài đặt thay đổi thì các ca kiểm thử vẫn dùng được
 được phát triển song song và độc lập với việc cài đặt hệ thống.

 Nhược điểm: thường có thể có tính dư thừa đáng kể trong các ca


kiểm thử.
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 27
Kiểm thử hàm
 So sánh các phương pháp xác định các ca kiểm thử hàm

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 28
Kiểm thử cấu trúc
 Việc biết được bên trong của hộp đen cho phép người kiểm thử dựa
trên việc cài đặt của hàm để xác định ca kiểm thử
 So sánh các phương pháp xác định ca kiểm thử:

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 29
Kiểm thử hàm và kiểm thử cấu trúc

 Lựa chọn phương pháp phù hợp dựa trên các loại lỗi và sai có trong
PM được KT
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 30
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 31
Phân loại các lỗi và sai…
 Có nhiều cách phân loại:
 giai đoạn phát triển khi cái sai tương ứng xuất hiện

 các hậu quả của các thất bại tương ứng

 độ khó cho việc giải quyết

 độ rủi ro của việc không giải quyết được, ...

 Phân loại dựa trên việc xuất hiện bất thường: chỉ một lần, thỉnh
thoảng, xuất hiện lại hoặc lặp đi lặp lại nhiều lần.
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 32
Phân loại các lỗi và sai…
 Phân loại sai dựa trên độ nghiêm trọng của hậu quả.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 33
Phân loại sai…

 Sai về đầu vào/ra

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 34
Phân loại sai…
 Sai về logic

 Sai về tính toán

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 35
Phân loại sai…
 Sai về giao diện

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 36
Phân loại sai…
 Sai về dữ liệu

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 37
Quy trình giải quyết bất thường

 Bốn giai đoạn:


 Nhận biết

 Khảo sát

 Hành động

 Bố trí lại.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 38
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 39
Các mức kiểm thử

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 40
Kiểm thử đơn vị

 kiểm thử các đơn vị chương trình một cách cô lập (một đoạn mã
nguồn như hàm hoặc phương thức của một lớp, có thể được gọi
từ ngoài, và cũng có thể gọi đến các đơn vị chương trình khác).

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 41
Kiểm thử tích hợp

 nhằm đảm bảo hệ thống làm việc ổn định trong môi trường thí
nghiệm để sẵn sàng cho việc đưa vào môi trường thực sự bằng
cách đặt các đơn vị với nhau theo phương pháp tăng dần.
 Kiểm thử việc kết nối với các đơn vị chương trình với nhau để tạo
thành hệ thống đầy đủ và có thể làm việc.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 42
Kiểm thử hệ thống

 được áp dụng khi đã có một hệ thống đầy đủ sau khi tất cả các
thành phần đã được tích hợp.
 để đảm bảo rằng việc cài đặt tuân thủ đầy đủ các yêu cầu được
đặc tả của người dùng.
 Kỹ thuật kiểm thử hàm là thích hợp nhất

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 43
Kiểm thử chấp nhận
 Sau khi kiểm thử hệ thống đã thỏa mãn với một sản phẩm, sản
phẩm đó đã sẵn sàng để đưa vào sử dụng.
 được thực thi bởi chính các khách hàng nhằm đảm bảo rằng SPPM
làm việc đúng như họ mong đợi.
 Có hai loại kiểm thử chấp nhận:
 kiểm thử chấp nhận người dùng, được tiến hành bởi người dùng
 Kiểm thử chấp nhận doanh nghiệp, được tiến hành bởi nhà sản xuất ra
SPPM.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 44
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 45
Một số ví dụ về kiểm thử

 Bài toán tam giác


 Hàm NextDate (ngày kế tiếp)
 Hệ thống rút tiền tự động đơn giản
 Bộ điều khiển gạt nước ô tô

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 46
Bài toán tam giác…

 Đầu vào: ba số nguyên là số đo các cạnh của một tam giác.


 Đầu ra: loại của tam giác xác định bởi ba cạnh ứng với các số đo
này: tam giác đều, tam giác cân, tam giác thường, hoặc không là
tam giác (Equilateral, Isosceles, Scalene, hoặc NotATriangle).

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 47
Bài toán tam giác…

 Cài đặt truyền thống:

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 48
Bài toán tam giác…

 Cài đặt truyền thống


 Sơ đồ khối

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 49
Bài toán tam giác…

 Sơ đồ dòng DL cho cài đặt có cấu trúc của chương trình tam giác.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 50
Bài toán tam giác

 Cài đặt có cấu trúc

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 51
Một số ví dụ về kiểm thử

 Bài toán tam giác


 Hàm NextDate (ngày kế tiếp)
 Hệ thống rút tiền tự động đơn giản
 Bộ điều khiển gạt nước ô tô

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 52
Hàm NextDate (ngày kế tiếp)…

 Đầu vào: ba biến day, month và year (1 ≤day≤ 31; 1 ≤month≤ 12;
1812 ≤ year ≤ 2012)
 Đầu ra: ngày kế tiếp của ngày đầu vào

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 53
Hàm NextDate (ngày kế tiếp)…
 Cài đặt:

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 54
Hàm NextDate (ngày kế tiếp)
 Cài đặt:

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 55
Một số ví dụ về kiểm thử

 Bài toán tam giác


 Hàm NextDate (ngày kế tiếp)
 Hệ thống rút tiền tự động đơn giản
 Bộ điều khiển gạt nước ô tô

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 56
Hệ thống rút tiền tự động đơn giản…

 Phát biểu bài toán:


 Khách hàng có thể chọn một trong ba
loại giao dịch: gửi tiền vào tài khoản,
rút tiền và kiểm tra số dư trong tài
khoản. Những loại giao dịch này có thể
được thực hiện đối với hai loại tài
khoản là tiết kiệm hoặc vãng lai.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 57
Hệ thống rút tiền tự động đơn giản…

Thẻ có Số định
PAN đúng danh đúng

Thẻ có Số định Giao


PAN sai danh sai dịch

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 58
Hệ thống rút tiền tự động đơn giản…
trạng
thái
Kiểm tra Gửi khe No
phong
số dư tiền bì gửi
tiền

Yes

Tiền gửi đã Tiền gửi


được nạp vào đã nạp

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 59
Hệ thống rút tiền tự động đơn giản…

Rút khe Yes Máy


nhả đủ
tiền tiền tiền Yes

Số
No No dư
No
Yes

Đã
lấy
tiền
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 60
Hệ thống rút tiền tự động đơn giản

No

Yes

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 61
Một số ví dụ về kiểm thử

 Bài toán tam giác


 Hàm NextDate (ngày kế tiếp)
 Hệ thống rút tiền tự động đơn giản
 Bộ điều khiển gạt nước ô tô

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 62
Bộ điều khiển gạt nước ô tô…
 Gạt nước ô tô trên xe Saturn (bản năm 1992) được điều khiển bởi
một chốt và một núm vặn.
 Chốt có bốn vị trí: OFF, INT (thỉnh thoảng), LOW và HIGH.
 Núm vặn có ba vị trí, được đánh số 1, 2 và 3. Các vị trí của núm vặn
tương ứng với ba tốc độ chậm khác nhau. Vị trí của núm vặn chỉ có
tác dụng khi chốt ở vị trí INT.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 63
Bộ điều khiển gạt nước ô tô
 Tốc độ của cần gạt ứng với từng vị trí của chốt và núm vặn

 trong đó giá trị n/a nghĩa là trường hợp này không áp dụng.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 64
TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 65
BÀI TẬP VỀ NHÀ
 Tự tìm hiểu về các ví dụ về kiểm thử và trả lời các câu
hỏi ôn tập
 Cài đặt chương trình cho Bài toán tam giác và Hàm
NextDate (ngày kế tiếp)
 Lựa chọn nhóm và làm dự án (mỗi nhóm 7 người)
 Bài tập 1: buổi sau nộp (làm bằng tay và chuẩn bị slide thuyết
trình, gọi thành viên bất kỳ trong nhóm báo cáo)
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 66
Câu hỏi cuối chương…
 Câu 1. Mô tả mỗi miền trong bảy miền trong hình mô tả bài
toán kiểm thử qua biều đồ Venn
 Câu 2. Hãy so sánh hai cách tiếp cận kiểm thử hàm và kiểm thử
cấu trúc.
 Câu 3. Xem lại sơ đồ khối của bài toán tam giác trong hình 2.1.
Liệu biến chương trình match có thể có: giá trị 4?, giá trị 5? Liệu
có thể tiến hành dãy các khối 1, 2, 5, 6?
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 67
Câu hỏi cuối chương…
 Câu 4. Nhớ lại mối quan hệ giữa đặc tả và cài đặt của chương trình. Nếu xem
xét cẩn thận việc cài đặt của hàm NextDate, bạn sẽ thấy một vấn đề như
sau. Hãy nhìn vào lệnh CASE đối với các tháng có 30 ngày (4, 6, 9, 11). Không
có một hành động đặc biệt cho trường hợp day = 31. Hãy bàn xem cài đặt
này có đúng đắn hay không. Lặp lại lời bàn này cho việc xử lý của trường hợp
day ≥ 29 trong lệnh CASE đối với tháng hai (February).

 Câu 5. Đối với hàm NextDate dùng cái gì làm dữ liệu đầu ra mong đợi cho
các ca kiểm thử của ngày 31 tháng 6 năm 1812 (June 31, 1812)? Tại sao?
Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 68
Câu hỏi cuối chương…
 Câu 6. Chương trình tam giác sẽ làm gì với các cạnh −3, −3 và 5?
 Câu 7. Một mở rộng của bài toán tam giác là kiểm tra đối với tam giác vuông.
Ba cạnh tạo thành một tam giác vuông nếu hệ thức Pythagor thỏa mãn:
c2 = a2 + b2.
Thay đổi này đưa đến một đòi hỏi hợp lý là các cạnh cần được cho theo thứ tự
giảm dần về độ dài, tức là a ≤ b ≤ c. Hãy mở rộng chương trình Triangle2 để đưa
thêm đặc trưng tam giác vuông. Mở rộng này sẽ được dùng trong các chương tiếp
theo về kiểm thử hộp đen và kiểm thử hộp trắng.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 69
Câu hỏi cuối chương
 Câu 8. Hàm YesterDate ngược lại với hàm NextDate. Cho trước ngày,
tháng và năm, hãy tìm ngày trước đó. Hãy xây dựng một chương trình
cho YesterDate bằng bất kể ngôn ngữ lập trình nào.

Bộ môn An toàn phần mềm – Khoa An Toàn Thông Tin 22:54 | Page 70

You might also like