Thông tin tài liệu:
Chương 2 trình bày các yếu tố cơ bản trong kiểm soát chất lượng phần mềm. Nội dung chính được trình bày trong chương này gồm có: Quy trình phát triển phần mềm, tại sao phải kiểm thử (testing) phần mềm? Testing là gì? Những nguyên lý tổng quát trong kiểm thử, quy trình kiểm thử cơ bản, các kiểu kiểm thử.
Nội dung trích xuất từ tài liệu:
Bài giảng Đảm bảo và kiểm soát chất lượng phần mềm: Chương 2 - Nguyễn Mạnh Tuấn
ĐẢM BẢO VÀ KIỂM SOÁT
CHẤT LƯỢNG
Chương 2:
Các yếu tố cơ bản trong
kiểm soát chất lượng
phần mềm
HCM – 10/2012
1/5/2016 1
Nội dung
Quy trình phát triển phần mềm
Tại sao phải kiểm thử (testing) phần
mềm?
Testing là gì?
Những nguyên lý tổng quát trong kiểm
thử
Quy trình kiểm thử cơ bản
Các kiểu kiểm thử
1/5/2016 Trang 2
Quy trình phát triển phần mềm
Làm sao đi được tới
ROME du lịch một chuyến
nhỉ?
1/5/2016 Trang 3
Quy trình phát triển phần mềm
1/5/2016 Trang 4
Quy trình phát triển phần mềm
1/5/2016 Trang 5
Quy trình phát triển phần mềm
1 Yêu cầu phần mềm
4
2 3 Phân tích
Phân tích
Thiết kế Thiết kế
Lập trình Thiết kế
Lập trình
Lập trình
Lập trình
Kiểm thử
Phần mềm
1/5/2016 Trang 6
Quy trình phát triển phần mềm
Qui trình phần mềm là gì?
Chuỗi hoạt động
Theo thứ tự nhất định
Sản xuất phần mềm
Qui trình công nghệ phần
mềm là tổ hợp các bước, các
giai đoạn phải trải qua khi
thực hiện việc sản xuất phần
mềm.
1/5/2016 Trang 7
Nội dung
Quy trình phát triển phần mềm
Tại sao phải kiểm thử (testing)
phần mềm?
Testing là gì?
Những nguyên lý tổng quát trong
testing
Quy trình Testing cơ bản
Các kiểu kiểm thử
1/5/2016 Trang 8
Tại sao phải kiểm thử (testing)
phần mềm?
Xét các phần mềm thực tế
Chuyển đổi tiền tệ
Hệ thống ATM
Hệ thống điều khiển máy bay, tàu điện, tên
lửa…
Hoạt động không đúng – gây ra nhiều
vấn đề:
Tiền bạc
Thời gian
Tổn hại tính mạng con người
1/5/2016 Trang 9
Những hậu quả do lỗi phần
mềm gây ra
Vụ sụp đổ của Ariane 5, 1996
Bị tan tành sau 40 giây cất cánh, bị thiệt
hại khoảng ½ tỉ USD
Nguyên nhân: bị lỗi về xử dụng số thực.
Do chuyển đổi từ 64bit integer sang 16 bit
integer có dấu => bị tràn số
Phóng tên lửa vào Sao Hỏa, 1999
Bị biến mất ngay khi bắt đầu, bị thiệt hại
khoảng 125 triệu USD
Nguyên nhân: dùng sai đơn vị trong
chương trình
1/5/2016 Trang 10
Tại sao phải kiểm thử (testing)
phần mềm?
“Lỗi phần mềm là chuyện hiển nhiên của cuộc
sống. Chúng ta dù cố gắng đến mức nào thì
thực tế là ngay cả những lập trình viên xuất
sắc nhất cũng không có thể lúc nào cũng viết
được những đoạn mã không có lỗi. Tính trung
bình, ngay cả một lập trình viên loại tốt thì
cũng có từ 1 đến 3 lỗi trên 100 dòng lệnh.
Người ta ước lượng rằng việc Testing để tìm ra
các lỗi này chiếm phân nửa khối lượng công
việc phải làm để có được một phần mềm hoạt
động được”.
(Software Testing Techniques, Second Edition,
by Boris Beizer, Van Nostrand Reinhold, 1990,
ISBN 1850328803).
1/5/2016 Trang 11
Nguyên nhân các khiếm khuyết
Con người tạo ra lỗi
...
… Hệ quả là xuất hiện
khiếm khuyết ...
… hệ thống thực hiện
công việc sai xót
1/5/2016 Trang 12
Nguyên nhân các khiếm khuyết
Con người tạo ra lỗi (error – mistake)
Hệ quả là xuất hiện khiếm khuyết(sai
lầm/ sai sót - fault, rối - bug)
Dòng mã, hệ thống, phần mềm, tài liệu
• Dư thừa
• Thiếu xót
Khi mã thực thi, hệ thống thực hiện
công việc sai xót -> thực hiện không
mong đợi (failure – hỏng hóc)
Hệ quả không mong đợi (Incident)
1/5/2016 Trang 13
Nguyên nhân các khiếm khuyết
Khiếm khuyết có thể xảy ra bởi
Áp lực về thời gian
Mã phức tạp
Hạ tầng phức tạp
Thay đổi công nghệ
Tương tác nhiều hệ thống
Tác động từ bên ngoài
…
1/5/2016 Trang 14
Nội dung
Tại sao phải kiểm thử (testing) phần
mềm?
Testing là gì?
Những nguyên lý tổng quát trong kiểm
thử
Quy trình Kiểm thử cơ bản
Triết lý của việc kiểm thử
Những định nghĩa cơ bản
Các kiểu kiểm thử
1/5/2016 Trang 15
Testing phần mềm là gì?
Testing phần mềm là qui trình chứng
minh phần mềm không có lỗi.
Mục đích của Testing phần mềm là chỉ
ra rằng phần mềm thực hiện đúng các
chức năng mong muốn.
Testing phần mềm là qui trình thi hành
phần mềm với ý định tìm kiếm các lỗi
của nó.
Testing phần mềm được xem là qui
trình cố gắng tìm kiếm các lỗi của phần
mềm theo tinh thần hủy diệt.
1/5/2016 Trang 16
Testing phần mềm là gì?
Mục tiêu
Tìm khiếm khuyết
Ngăn ngừa khiếm khuyết
Ch ...