Tải bản đầy đủ (.pdf) (267 trang)

Bài giảng Kiểm thử và Ðảm bảo chất lượng phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.41 MB, 267 trang )

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


×