§¹i häc Quèc gia Hμ néi - §¹i häc c«ng nghÖ
Bé m«n C«ng nghÖ phÇn mÒm
BÀI GiẢNG
ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM
VÀ KiỂM THỬ
NguyÔn V¨n Vy
Email:
[email protected], mobile: 0912.505.291
Hà nội - 2005
NguyÔn V¨n Vþ
Phần II
KIỂM THỬ PHẦN MỀM
2005
Bộ môn CNFM – Đại học Công nghệ
2
Nội dung – Tài liệu
NguyÔn V¨n Vþ
Các loại kiểm thử
Thẩm định và xác minh
Roger S. Pressman. Software Engineering, a Practitioner’s
Approach. 3th Edition, McGraw-Hill, 1992, Bản dich của Ngô
Trung vIệt, Phần 4, tập 4 (Chương 17, 18, 23 –bản 2001)
Ian Sommerville. Software Engineering, Sixth Edition, Addion
Wesley, 2001, Phần 5 và 6. chương 20
E.M.Bennatan, Software Project Management : a practitioner’s
approach, McGRAW-HILL Book Company, 2001
Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần mềm,
Đại học Công nghệ, ĐHQGHN, 2006.
2005
Bộ môn CNFM – Đại học Công nghệ
3
D. Chiến lược kiểm thử phần mềm V¨n Vþ
NguyÔn
a. Khái niệm
Chiến lược kiểm thử là sự tích hợp các kỹ thuật
thiết kế ca kiểm thử tạo thành một dãy các bước
nhằm hướng dẫn quá trình kiểm thử phần mềm
thành công.
Nó phác thảo lộ trình để:
nhà phát triển tổ chức việc bảo đảm chất lượng,
khách hàng: hiểu được công sức, thời gian và
nguồn lực cần cho kiểm thử.
2005
Bộ môn CNFM – Đại học Công nghệ
4
b. Yêu cầu của chiến lược kiểm thử
NguyÔn V¨n Vþ
Chiến lược kiểm thử phải:
tích hợp được việc lập kế hoạch, thiết kế ca kiểm
thử, tiến hành kiểm thử, thu thập và đánh giá các
thông tin kết quả.
đủ mềm dẻo để cổ vũ óc sáng tạo, đáp ứng được
yêu cầu khách hàng
thích ứng với mức kiểm thử cụ thể
đáp ứng các đối tượng quan tâm khác nhau
2005
Bộ môn CNFM – Đại học Công nghệ
5
c. Các đặc trưng chiến lược kiểm thử
NguyÔn V¨n Vþ
Các đặc trưng có tính khuôn mẫu:
Bắt đầu ở mức môđun và tiếp tục cho đến khi tích
hợp ở mức hệ thống trọn vẹn.
Các kỹ thuật kiểm thử khác nhau là thích hợp cho
những thời điểm khác nhau.
Được cả người phát triển và nhóm kiểm thử độc
lập cùng tiến hành.
kiểm thử đi trước gỡ lỗi, song việc gỡ lỗi phải thích
ứng với từng chiến lược kiểm thử .
2005
Bộ môn CNFM – Đại học Công nghệ
6
d. Sự thích ứng của chiến lược kiểm thử
NguyÔn V¨n Vþ
■ Chiến lược cần thích ứng với từng mức kiểm thử:
• kiểm thử mức thấp: xác minh từng khúc mã nguồn
có tương ứng và thực thi đúng đắn không?
• kiểm thử mức cao: xác minh và thẩm định các
chức năng hệ thống chủ yếu có đúng đặc tả và đáp
ứng yêu cầu của khách hàng không?.
2005
Bộ môn CNFM – Đại học Công nghệ
7
e. Sự đáp ứng của chiến lược kiểm thử
NguyÔn V¨n Vþ
■ Mỗi chiến lược đáp ứng được yêu cầu người
quan tâm:
• Có các hướng dẫn cho người thực hiện tiến hành
•
kiểm thử.
Có các cột mốc cho các nhà quản lý kiểm soát hoạt
động đảm bảo chất lượng.
• Có thước đo để có thể nhận ra các vấn đề càng sớm
càng tốt và khách hàng nhận biết được quá trình
kiểm thử
2005
Bộ môn CNFM – Đại học Công nghệ
8
E. Tổ chức kiểm thử
NguyÔn V¨n Vþ
Kiểm thử phần mềm là một phần của hoạt động
“xác minh và thẩm định”:
Xác minh là một tập các hoạt động để bảo đảm
rằng: phần mềm thực hiện đúng chức năng đã
được đặc tả
Thẩm định là một tập hợp các hoạt động để bảo
đảm rằng: phần mềm đã đáp ứng đúng yêu cầu
của khách hàng.
Câu hỏi: Ai làm? Làm cái gì? Khi nào? Và mối quan
hệ?
2005
Bộ môn CNFM – Đại học Công nghệ
9
a. Trách nhiệm kiểm thử phần mềmNguyÔn V¨n Vþ
Các kỹ sư phần mềm làm ra phần mềm. Một cách tự
nhiên họ cần tiến hành các kiểm thử ban đầu. Về
nguyên tắc, người làm sản phẩm, kiểm tra sản phẩm là
không hợp lý.
Có một số hiểu lầm :
Người phát triển không tham gia kiểm thử .
Cho phép người lạ kiểm thử một cách tàn nhẫn.
Người kiểm thử chỉ quan tâm khi kiểm thử bắt đầu
2005
Bộ môn CNFM – Đại học Công nghệ
10
b. Phân công trách nhiệm kiểm thử
NguyÔn V¨n Vþ
Từ thực tiễn dẫn đến sự phân công:
Người phát triển chịu trách nhiệm kiểm thử đơn vị do
mình phát triển để bảo đảm thực hiện đúng theo thiết kế
(một yêu cầu của xác minh).
Người phát triển có thể tham gia kiểm thử tích hợp.
Nhóm kiểm thử độc lập bắt đầu làm việc khi các khoản
mục cấu trúc phần mềm đã đày đủ.
2005
Bộ môn CNFM – Đại học Công nghệ
11
c. Vai trò của những người kiểm thử
NguyÔn V¨n Vþ
Nhóm kiểm thử độc lập giúp gỡ bỏ những thành kiến cố
hữu: “người xây dựng không thể kiểm thử sản phẩm
tốt”:
gỡ bỏ mâu thuẫn giữa những người tham gia.
đánh giá công sức người phát triển bỏ ra tìm lỗi.
Nhóm kiểm thử độc lập tạo ra báo cáo đầy đủ cho tổ
chức bảo đảm chất lượng phần mềm.
Người phát triển
không đẩy chương trình cho người kiểm thử rồi bỏ đi
cùng làm việc với người kiểm thử xuyên suốt một dự án
(bảo đảm việc kiểm thử được tiến hành triệt để).
2005
Bộ môn CNFM – Đại học Công nghệ
12
F. Tiến trình thực hiện kiểm thử
NguyÔn V¨n Vþ
Tiến trình thực hiện kiểm thử tương ứng với tiến trình
phát triển (theo từng mô hình).
Tiến trình kiểm thử thông thường (mô hình chữ V):
Kiểm thử
đơn vị
môđun
đơn vị
2005
Kiểm thử
Kiểm thử
Kiểm thử
tích hợp
hệ thống
thẩm định
Môđun
chức năng,
hệ con
cả phần cứng,
phần mềm
hệ thống
thực
Bộ môn CNFM – Đại học Công nghệ
13
a. Kiểm thử đơn vị
NguyÔn V¨n Vþ
Nội dung kiểm thử:
giao diện
cấu trúc dữ liệu sử dụng cục bộ
đường điều khiển
Điều kiện lôgic
Phép toán xử lý
Câu hỏi:
1.
2.
3.
4.
5.
Định lượng/dạng gì (biến, mô đun qua giao diện)?
Yếu tố nào cần (vào/ra dữ liệu)?
Sai xử lý, lôgíc (phép toán, biểu thức)?
Sai điều khiển (vòng lặp, giá trị biên)?
Sai tiềm ẩn (ghi chép, mô tả)?
2005
Bộ môn CNFM – Đại học Công nghệ
14
a1. Kiểm thử dữ liệu qua giao diện
Kiểm thử dòng dữ liệu qua
một giao diện của môđun
liên quan đến định lượng
và định dạng của các biến
và các môđun sử dụng trên
giao diện.
Áp lực,
bước sóng
NguyÔn V¨n Vþ
Cường độ,
loại tia
Đặc trưng cụ thể:
Số lượng?
Định dạng?
Mùi vị,
nồng độ
2005
Bộ môn CNFM – Đại học Công nghệ
Món ăn,
kích cỡ,
độ mềm
15
a1. Đặc trưng dữ liệu qua giao diện
NguyÔn V¨n Vþ
Các đặc trưng qua giao diện là:
Số tham số = số đối số?
Tính chất của tham số ≡ tính chất đối số?
Đơn vị của tham số ≡ đơn vị đối số?
Số đối được truyền gọi môđun = số các tham
số đầu vào của môđun?
thuộc tính các đối được truyền gọi môđun ≡
thuộc tính của các tham số?
Đơn vị của đối được truyền để gọi môđun ≡
đơn vị các tham số môđun?
2005
Bộ môn CNFM – Đại học Công nghệ
X1,X2,..,Xn
Y1,Y2,..,Yn
16
a1. Đặc trưng dữ liệu qua giao diện
NguyÔn V¨n Vþ
Thuộc tính và các cái khác của các đối số định
sẵn có đúng đắn hay không?
Mọi tham chiếu liên quan tới các tham số hiện
không kết hợp với đầu vào chứ?
Các đối số chỉ đọc đã được đổi chưa?
Định nghĩa biến toàn cục có trong suốt môđun
không?
Các ràng buộc lên biến đã chuyển qua như
tham số chưa?
2005
Bộ môn CNFM – Đại học Công nghệ
17
a2. Kiểm thử liên quan đến vào/ra
NguyÔn V¨n Vþ
Khi thực hiện I/O ngoại lai cần tiến hành thêm:
Tính chất của các file có đúng đắn hay không?
Các câu lệnh OPEN/CLOSE có đúng đắn không?
Đặc tả hình thức có đúng với các câu lệnh I/O?
Cỡ của buffer có đúng với cỡ của bản ghi không?
Các file có mở trước khi sử dụng không?
Các điều kiện end-of-file có được xử lý?
Các sai lầm I/O có được xử lý?
Có sai văn bản nào trong thông tin ra?
2005
Bộ môn CNFM – Đại học Công nghệ
18
a3. Kiểm thử cấu trúc dữ liệu cục bộ
NguyÔn V¨n Vþ
Cấu trúc dữ liệu cục bộ cho môđun có thể sai.
Vì thế thiết kế các kiểm thử cần làm lộ ra các loại
lỗi sau:
Đánh máy không đúng hoặc không nhất quán?
Giá trị ngầm định hoặc giá trị khởi thuỷ sai?
Tên các biến không đúng (sai chữ hoặc mất chữ)?
Kiểu dữ liệu không nhất quán?
Ngoại biệt về địa chỉ, underflow, overflow.
2005
Bộ môn CNFM – Đại học Công nghệ
19
a4. Kiểm thử về các xử lý
NguyÔn V¨n Vþ
Các sai về trình tự, độ chính xác là:
Thứ tự ưu tiên các phép tính số học?
Sự nhất quán của các phép toán trộn mode?
Khởi sự/kết thúc không đúng đắn?
Sự chính xác của kết quả?
2005
Bộ môn CNFM – Đại học Công nghệ
20