Kỹ thuật kiểm thử phần mềm
GV: Th.s Nguyễn Quang Vũ
KỸ THUẬT KIỂM THỬ PHẦN MỀM
PHẦN MỀM VÀ LỖI PHẦN MỀM1
KỸ THUẬT KIỂM THỬ PHẦN MỀM 2
CHIẾN LƯỢC KIỂM THỬ PHẦN MỀM
3
QUY TRÌNH KIỂM THỬ PHẦN MỀM4
KỸ THUẬT KIỂM THỬ ĐỘT BIẾN 5
THỰC HÀNH: THIẾT KẾ TESTCASE6
Chương 1. Phần mềm và lỗi phần mềm
Công nghệ phần mềm (CNPM) ?
Các tác vụ chủ yếu của CNPM:
Thiết kế
Xây dựng
Kiểm thử
Bảo trì
Mục tiêu của CNPM:
Tạo ra phần mềm tốt
Giảm thiểu sai sót trong quá trình vận hành
Thuận lợi trong bảo trì và nâng cấp
Chương 1. Phần mềm và lỗi phần mềm
Phần mềm ?
là một tập các đoạn mã hoặc câu lệnh viết ra để cài đặt
trên máy tính nhằm thực hiện một hoặc một nhóm chức
năng nào đó.
Các công việc để tạo ra một phần mềm:
Phân tích – Đặc tả yêu cầu
Thiết kế
Lập trình
Kiểm thử
Viết tài liệu
Bảo trì
Chương 1. Phần mềm và lỗi phần mềm
Có nhiều quy trình phần mềm khác nhau
(Software Development Process – SEP)
Đóng vai trò quyết định chất lượng PM.
Các nhóm công việc được triển khai theo những cách
khác nhau.
Có 4 nhóm công việc nền tảng: Đặc tả yêu cầu – Phát
triển – Kiểm thử - Cài đặt và bảo trì
Một PM có thể dùng nhiều mô hình khác nhau.
Không phải tất cả các mô hình đều thích hợp cho mọi
phần mềm ứng dụng
Chương 1. Phần mềm và lỗi phần mềm
Vì các yếu tố (đặc điểm) sau:
Đặc tính (Characteristics ).
Tính đáp ứng (responsiveness )
Loại (Type)
Chương 1. Phần mềm và lỗi phần mềm
Các đặc tính của phần mềm:
Dữ liệu
Xử lý
Ràng buộc: Thứ tự trước – Thứ tự sau – Thời gian – Cấu
trúc – Điều khiển – Suy diễn
Giao diện: Người sử dụng – Thủ công – Giao diện chuẩn
hóa (Giao diện mạng LAN; Chuẩn OSI;…)
Chương 1. Phần mềm và lỗi phần mềm
Chương 1. Phần mềm và lỗi phần mềm
Chương 1. Phần mềm và lỗi phần mềm
Phân loại phần mềm:
Chương 1. Phần mềm và lỗi phần mềm
Có thể phân loại PM theo sự định hướng công việc:
Ứng dụng hướng giao dịch
Ứng dụng CSDL
Ứng dụng hỗ trợ quyết định
Hệ chuyên gia
Hệ thống nhúng
Chương 1. Phần mềm và lỗi phần mềm
Chất lượng phần mềm: Các nhân tố ảnh hưởng
đến chất lượng PM có thể là
Nhân tố đo trực tiếp
Nhân tố đo gián tiếp
Chương 1. Phần mềm và lỗi phần mềm
Các tiêu chuẩn chất lượng phần mềm có thể thay
đổi tùy theo:
Công dụng
Nhu cầu thực tế
Chuẩn quốc gia, quốc tế
Nền văn minh cộng đồng
Thời điểm
…
Chương 1. Phần mềm và lỗi phần mềm
Các tiêu chuẩn phải đảm bảo những thuộc tính TỐI
QUAN TRỌNG:
Khả năng bảo trì
Khả năng tin cậy
Độ hữu hiệu
Khả năng sử dụng
Lỗi phần mềm
Thế nào là phần mềm được gọi là đúng ?
Để đánh giá CẤP ĐỘ ĐÚNG của phần mềm, phải
kiểm tra CHẤT LƯỢNG PHẦN MỀM
Lỗi phần mềm
Lỗi phần mềm xảy
ra ở tất cả các
công đoạn
Lỗi phần mềm
Định nghĩa LỖI PHẦN MỀM?
Lỗi phần mềm là sự không khớp giữa chương
trình và đặc tả của nó
Lỗi phần mềm xuất hiện nhiều nhất ở công đoạn
nào ?
Đặc tả: ~ 70%
Đặc tả
Nguyên nhân khác
Lập trình
Thiết kế
Lỗi phần mềm
Nguyên nhân làm đặc tả nhiều lỗi ?
Đặc tả không được viết ra
Đặc tả không đủ cẩn thận
Đặc tả thay đổi
Chưa phối hợp tốt trong nhóm
Lỗi phần mềm
Ví dụ: Bài toán phân số
Đặc tả phi hình thức: phân số là một cặp t/m, trong đó t là
một số nguyên, m là một số tự nhiên lớn hơn 0; t được
gọi là tử số, m được gọi là mẫu số của phân số
Đặc tả hình thức: là đặc tả trong đó sử dụng các ký hiệu
toán học để mô tả.
Phân số = {(t,m) | t ∈ Z, m ∈ N
+
} (*)
Trong đó: N = {0, 1, 2, 3, …}
N
+
= {1, 2, 3, …}
Z = {0, ±1, ±2, ±3, …}
Lỗi phần mềm
Ví dụ (tt): Xét đặc tả phép chia hai phân số
(t1,m1):(t2,m2) = Reduce(t1× m2, t2 × m1), trong đó
Reduce(t, m) = (t/d, m/d) với d = gcd(t, m)
Hàm gcd là hàm tìm ước số chung lớn nhất của hai số tự
nhiên.
Bây giờ, hãy thực hiện chia hai phân số: (1,3):
(-2,5)?
Lỗi phần mềm
Ví dụ: Chia nhóm và mỗi nhóm tìm một bài toán
(đặc tả phi hình thức, đặc tả hình thức, và một
trường hợp có thể không đúng với đặc tả)
Các lỗi phần mềm thường gặp
Sản phẩm phần mềm được được xây dựng thiếu,
sai, thừa so với đặc tả được xem là có lỗi.
Thậm chí, một phần mềm khó hiểu, khó sử dụng,
thực thi chậm, … cũng được xem là lỗi.
Các lỗi phần mềm thường gặp
Lỗi chiến lược
Phân tích không đủ yêu cầu hoặc lệch lạc
Hiểu sau về chức năng
Vi phạm nguyên lý đối tượng
Nguyên lý đóng – mở
Nguyên lý nghịch đảo phụ thuộc
Nguyên lý thay thế Liskov
Nguyên lý phân tách Interface
Các lỗi phần mềm thường gặp (tt)
Lỗi các thủ tục chịu tải
Lỗi lây lan
Lỗi cú pháp
Lỗi hiệu ứng phụ
Các lỗi phần mềm thường gặp (tt)
Ví dụ: chương trình tính tiền lương được đặc
tả cho từng nhân viên theo qui định làm tròn
đến hàng đơn vị, với công thức (1.1)
Lương
i
= round(hsl
i
*lcb(1- 0.06),0 ) (1.1)
Nhưng khi lập trình:
Lương
i
= round(hsl
i
*lcb(1- 0.06),-2 ) (1.2)