KIỂM THỬ
VÀ
ĐẢM BẢO
CHẤT LƯỢNG
PHẦN MỀM
Giới thiệu mơn học
•
•
•
•
•
•
Tên mơn học: Kiểm thử và đảm bảo chất lượng phần mềm
Tên tiếng anh: Software testing and quality assurance
Mã số: CSE 462
Số tín chỉ: 3
Số tiết: 30 lý thuyết + 15 thực hành
Bắt buộc đối với ngành KTPM (tự chọn đối với ngành CNTT)
Nguyễn Thị Phương Dung
2
Nội dung học
Cơ sở kiểm thử
Mức độ kiểm thử
Các kỹ thuật kiểm thử
Độ đo và tiến trình kiểm thử
Cơ sở chất lượng phần mềm
Tiến trình quản trị chất lượng phần mềm
Kiểm định và xác nhận
Chuẩn chất lượng phần mềm
Nguyễn Thị Phương Dung
3
Hình thức học
• GV:
–
–
–
–
Thuyết trình
Làm bài tập minh họa
Nêu vấn đề
Hướng dẫn SV tự nghiên cứu
• SV:
–
–
–
–
Nghe giảng
Làm bài tập theo mẫu
Thảo luận các vấn đề
Tự nghiên cứu và làm bài tập nâng cao
Nguyễn Thị Phương Dung
4
Chuẩn đầu ra
• Kiến thức: Nắm được các kiến thức, các kỹ thuật cơ bản trong
quy trình kiểm thử và đánh giá chất lượng phần mềm. Sử dụng
một số công cụ kiểm thử phần mềm tự đợng
• Kỹ năng, năng lực: Viết và trình bày các tài liệu kiểm thử, suy
ḷn để đưa ra các tình h́ng kiểm thử.
• Phẩm chất, đạo đức: Có đạo đức, lương tâm nghề nghiệp, có ý
thức tổ chức kỷ luật và trách nhiệm với công việc, cộng đồng
và xã hội.
Nguyễn Thị Phương Dung
5
Hình thức đánh giá
• Quá trình: 40% (chuyên cần + bài tập trên lớp + kiểm tra + BTL)
• Thi kết thúc học phần: 60% (trắc nghiệm + tự luận)
• Cấu trúc đề thi theo thang nhận thức Bloom:
Mức
Nhớ
Hiểu
Tỷ lệ (%)
25
25
Vận dụng Phân tích Tởng hợp Sáng tạo
20
Ngũn Thị Phương Dung
10
10
10
6
Tài liệu
• Bài giảng của giảng viên
• Dorothy Graham, Erik van Veenendaal, Isabel Evans, Rex Black,
Foundations of software testing,
• Andreas Spillner, Tilo Linz, Hans Schaefer, Software Testing
Foundations
• Kiểm Thử Nâng Cao, Tilo Linz, NXB Bách Khoa HN.
• Software Testing and Analysis: Process, Principles, and Techniques
Nguyễn Thị Phương Dung
7
Chương I - Cơ sở kiểm thử
Nợi dung
•
•
•
•
•
Kiểm thử là gì?
Vì sao kiểm thử là cần thiết?
Các nguyên tắc trong kiểm thử
Quá trình kiểm thử
Tâm lý học kiểm thử
Nguyễn Thị Phương Dung
9
Vì sao kiểm thử là cần thiết?
• Ví dụ mợt số thảm họa do lỗi phần mềm gây ra:
o Trong những năm 1980, rất nhiều người đã tử vong do lỗi trong mã
điều khiển máy xạ trị Therac-25.
o 1996, tên lửa nguyên mẫu Ariane5 trị giá 1 tỷ USD đã bị phá hủy
chưa đầy 1 phút sau khi phóng do lỗi trong chương trình máy tính hoa
tiêu cài đặt trên tàu.
o 1994, 29 người thiệt mạng do lỗi điều khiển động cơ máy bay
Chinook.
o 2002, một cuộc điều tra của Bộ thương mại Mỹ cho thấy lỗi phần
mềm đã tiêu tốn khoảng 59 tỷ USD mỗi năm.
Nguyễn Thị Phương Dung
10
Ngun nhân tạo ra lỡi phần mềm
•
•
•
•
•
•
•
•
•
Do áp lực thời gian
Do người tham gia dự án thiếu kinh nghiệm hoặc thiếu kỹ năng
Do thông tin sai giữa những người tham gia dự án
Do các độ phức tạp của mã, thiết kế, kiến trúc và các công nghệ
Do hậu quả tiềm ẩn của các lỗi trước đó
Do tương tác sai với phần mềm
Do xung đột giữa các phần mềm với nhau
Do môi trường: bức xạ, trường điện từ, ô nhiễm, …
Do cố ý hủy hoại phần mềm
Nguyễn Thị Phương Dung
11
Thời điểm xuất hiện lỗi
Đặc tả đúng
yêu cầu
Đặc tả đúng yêu cầu
Đặc tả đúng yêu cầu
Đặc tả sai yêu cầu
Thiết kế đúng
theo yêu cầu
Thiết kế đúng theo yêu
cầu
Có sai sót trong
thiết kế
Thiết kế đúng theo đặc tả
Xây dựng đúng
theo thiết kế
Mắc lỗi trong quá
trình xây dựng
Xây dựng đúng với thiết
kế
Xây dựng đúng với thiết kế
Sản phẩm
chuẩn
Sản phẩm không đúng
với thiết kế
Sản phẩm không đúng
với yêu cầu
Sản phẩm không dùng được
Nguyễn Thị Phương Dung
12
Phân biệt mợt sớ khái niệm về lỡi
• Error/Mistake: Những lỡi do
người phát triển dự án phần
mềm gây ra.
• Defect/Fault: Lỡi khi kiểm thử
viên gặp phải error/mistake.
• Bug: Lỡi được chấp nhận bởi
đợi phát triển dự án.
• Failure: Lỡi khi kết quả kiểm
thử khác với kết quả mong đợi.
Nguyễn Thị Phương Dung
14
Chi phí cho việc sửa lỡi
Đặc tả đúng u cầu
• Có thể dễ dàng phát hiện và sửa chữa trong
quá trình thử nghiệm
Thiết kế đúng theo yêu
cầu
Mắc lỗi trong quá
trình xây dựng
Sản phẩm không đúng
với thiết kế
Nguyễn Thị Phương Dung
15
Chi phí cho việc sửa lỗi
Đặc tả đúng yêu cầu
Có sai sót trong
thiết kế
Xây dựng đúng với thiết
kế
• Khó phát hiện: vì đã xây dựng theo đúng thiết
kế.
• Khó sửa chữa: Muốn sửa chữa được đúng thì
phải thay đổi thiết kế
=> Chi phí cao hơn
Sản phẩm không đúng
với yêu cầu
Nguyễn Thị Phương Dung
16
Chi phí cho việc sửa lỗi
Đặc tả sai yêu cầu
Thiết kế đúng theo đặc tả
• Sản phẩm làm ra có thể không mắc lỗi gì,
nhưng không được khách hàng chấp nhận.
• Chi phí cho lỡi này là bao nhiêu???
Xây dựng đúng với thiết kế
Sản phẩm không dùng được
Nguyễn Thị Phương Dung
17
• Chi phí cho việc tìm và sửa lỗi
tăng theo thời gian
• Làm thế nào để giảm chi phí
này?
o Sớm phát hiện ra lỗi và thời điểm
xảy ra lỗi
o Xác định nguyên nhân gốc rễ của
lỗi.
Nguyễn Thị Phương Dung
Giá
Chi phí cho việc sửa lỗi
Thời gian
18
Ngun nhân gớc rễ là gì?
• Ví dụ: Mợt cơ quan gặp sự cố liên tục bị lỗi khi in. Vậy nguyên
nhân ở đâu?
o Máy in hết nguồn cung cấp (hết mực và giấy)
o Trình điều khiển máy in bị lỗi
o Phòng in quá nóng đối với máy in và máy in bị kẹt giấy
Đây chỉ là nguyên nhân trước mắt.
Nguyễn Thị Phương Dung
19
Phân tích ngun nhân gớc rễ
• Ngun nhân gớc rễ của việc máy in hết mực và giấy là gì?
– Là do không ai chịu trách nhiệm kiểm tra giấy và mực trong máy in.
• Ngun nhân gớc rễ của việc không ai chịu trách nhiệm là gì?
– Là vì không có quy trình kiểm tra mực/ giấy in trước khi sử dụng.
• Hoặc do nhân viên khơng biết thay hộp mực.
– Nguyên nhân của điều này có thể là vì nhân viên không được đào tạo
hoặc hướng dẫn chăm sóc máy in.
Nguyễn Thị Phương Dung
20
Mục đích của việc chạy thử nghiệm
• Thơng qua chạy thử nghiệm để tìm ra các lỗi tiềm ẩn và phân
tích nguyên nhân gốc rễ để việc khắc phục, sửa chữa được hiệu
quả hơn.
• Rút ra những bài học kinh nghiệm cho các dự án khác trong
tương lai, cải thiện quy trình, ngăn ngừa sự tái phát của các
khiếm khuyết tươnǵ tự.
=> Nên sử dụng việc thử nghiệm như một phần của chiến lược
phát triển phần mềm
Nguyễn Thị Phương Dung
21
Kiểm thử là gì?
• Kiểm thử là mợt quy trình chứ không phải là một hoạt động đơn
lẻ – bao gồm một loạt các hoạt động liên quan như:
– Tất cả các hoạt động trong vòng đời phát triển phần mềm
– Kiểm thử tĩnh và đợng:
• Xem xét cả các đặc tả, mã ng̀n, và phân tích tĩnh.
• Chạy thử chương trình để xem kết quả thực thi với đặc tả yêu cầu
– Xây dựng phương án kiểm thử
– Lập kế hoạch các hoạt động diễn ra trước và sau khi thử nghiệm, kiểm
soát các hoạt động thử nghiệm, viết báo cáo tiến độ và trạng thái của
phần mềm
Nguyễn Thị Phương Dung
23
Vai trò của kiểm thử trong phát triển phần mềm
• Kiểm thử nghiêm ngặt giúp xác định các khuyết tật, tìm kiếm các
điểm yếu tiềm ẩn có khả năng bị tấn công, mang lại sự tin tưởng về
chất lượng của phần mềm.
• Bài kiểm thử kém có thể cho ra ít lỗi, điều này làm tăng tính chủ quan
của đội ngũ phát triển phần mềm.
• Bài kiểm thử tớt sẽ đưa ra nhiều khiếm khuyết hơn, giúp phần mềm
được sửa chữa kỹ hơn, giảm mức độ rủi ro tổng thể khi sử dụng hệ
thớng.
• Kiểm thử giúp đo lường chất lượng sản phẩm thông qua kết quả đánh
giá của kiểm thử.
Nguyễn Thị Phương Dung
25
Chất lượng phần mềm là gì?
• Chất lượng phần mềm phụ thuộc vào việc đáp ứng các đặc điểm
kỹ thuật đã xác định thông qua sự thỏa thuận của nhà sản xuất
và khách hàng. Chất lượng có thể được đo theo các cách sau:
o Xem xét các thuộc tính của sản phẩm
o Khả năng tương thích của sản phẩm
o Dựa trên quy trình sản xuất tốt và đáp ứng các yêu cầu xác định
o Kỳ vọng về giá trị đồng tiền, khả năng chi trả và sự đánh đổi dựa trên
giá trị giữa các khía cạnh thời gian, công sức và chi phí.
Nguyễn Thị Phương Dung
26
Các nguyên tắc trong kiểm thử
1.
2.
3.
4.
5.
6.
Kiểm thử chỉ ra sự hiện diện của lỗi
Kiểm thử toàn bộ, đầy đủ là không thể.
Cần bắt đầu giai đoạn kiểm thử càng sớm càng tốt
Phân nhóm lỗi để xác định một số module tập trung lỗi nhiều nhất.
Nghịch lý thuốc trừ sâu
Kiểm thử được thực hiện khác nhau trong những bối cảnh khác
nhau.
7. Suy nghĩ "Không có lỗi" là một sai lầm.
Nguyễn Thị Phương Dung
27
Quá trình kiểm thử
•
•
•
•
•
•
Lập kế hoạch kiểm thử
Kiểm soát kế hoạch kiểm thử
Phân tích và thiết kế
Thực hiện
Đánh giá các tiêu chí rút lui và báo cáo
Các hoạt động đóng thử nghiệm
Nguyễn Thị Phương Dung
28