Kiểm thử phần mềm là gì ?Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử..
Trang 1KIỂM THỬ PHẦN MỀM
Nhóm
1 2
Trang 2GVHD: Nguyễn Đức Lưu
Trang 3ĐANG BẮT ĐẦU
…
Trang 10NỘI DUNG
6
Trang 11ẦN
M ỀM
Trang 12KIỂM THỬ PHẦN MỀM LÀ GÌ ?
TẠI SAO CẦN KIỂM THỬ PHẦN MỀM CÁC LOẠI KIỂM THỬ PHẦN MỀM CÁC NGUYÊN LÝ TỔNG QUÁT
QUÁ TRÌNH KIỂM THỬ CƠ BẢN
TRIẾT LÝ CỦA KIỂM TRA PHẦN MỀM
Trang 13KIỂM THỬ
là
PHẦN MỀM
gì ?
Trang 14Kiểm thử phần mềm là gì ?
Kiểm thử phần mềm là một cuộc kiểm tra được tiến hành để cung cấp cho các bên liên quan thông tin về chất lượng của sản phẩm hoặc dịch vụ được kiểm thử.
• Đáp ứng được mọi yêu cầu hướng dẫn khi thiết kế
và phát triển phần mềm.
• Thực hiện công việc đúng như kỳ vọng.
• Có thể triển khai được với những đặc tính tương tự.
• Và đáp ứng được mọi nhu cầu của các bên liên quan.
Hay nói một cách ngắn gọn thì: “Kiểm thử phần mềm
là quá trình thực thi một chương trình với mục đích tìm
Trang 15Kiểm thử phần mềm là gì ?
Các hoạt động của kiểm thử bao gồm công việc trước
và sau khi “ chạy ” chương trình:
Lập kế hoạch – điều khiển.
Chọn điều kiện kiểm tra.
Thiết kế kịch bản/ Mẫu thử (test case).
Kiểm tra kết quả.
Đánh giá các tiêu chuẩn.
Lập báo cáo quá trình kiểm tra – hệ thống được
kiểm tra.
15 of 42
Trang 16Kiểm thử phần mềm là gì ?
Có 2 hướng kiểm tra là kiểm tra động và kiểm tra tĩnh Cả hai hướng đều hướng tới cùng mục tiêu và cung cấp thông tin cải tiến hệ thống lẫn quy trình.
Mục tiêu:
Tìm khiếm khuyết
Ngăn ngừa khiếm khuyết
Chứng minh được phần mềm hoạt động đúng như đã thiết kế
Chứng minh được phần mềm đáp ứng yêu cầu của user.
Tăng độ tin cậy chất lượng sản phẩm.
16 of 42
Trang 17Kiểm thử phần mềm là gì ?
Khác biệt giữa gỡ rối (debug) và kiểm thử (testing)
Gỡ rối:
Trang 18Kiểm thử phần mềm là gì ?
Kiểm thử
khiếm khuyết phần mềm
khiếm khuyết khi phát triển mã
giúp ngăn ngừa các khiếm khuyết
các mục tiêu khác nhau
18 of 42
Trang 19Kiểm thử phần mềm là gì ?
Quá trình kiểm thử phần mềm là tốt khi:
nào có khả năng tìm ra lỗi đặc trưng)
giản
19 of 42
Trang 21Tại sao phải kiểm thử phần mềm
21 of 42
Trang 22Tại sao phải kiểm thử phần mềm
Dựa trên mục tiêu của nhà sản xuất thì các
Tuy nhiên, qua thực tế thì không được như
kỳ vọng Hoạt động không đúng sẽ gây ra nhiều vấn đề về tiền bạc, thời gian, công sức
và có thể sẽ tổn hại đến con người…
22 of 42
Trang 23Tại sao phải kiểm thử 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 có 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 thể lúc nào cũng viết những đoạn mã không có lỗi Tính trung bình, ngay cả 1 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 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.”
(Sofware Testing Techniques, Second Edition, by Boris Beizer, Van Nostrand Reinhold, 1990.) 23 of 42
Trang 24Tại sao phải kiểm thử phần mềm
sai sót – fault, rối - bug)
thừa (đưa ra một vài thứ không chính xác vào mô tả yêu cầu phần mềm) hay do bỏ sót, thiếu một số phần đáng ra phải có trong
mô tả yêu cầu phần mềm,…
việc sai xót → thực hiện không mong đợi (failure – hỏng hóc)
24 of 42
Trang 25Tại sao phải kiểm thử phần mềm
Khiếm khuyết có thể xảy ra bởi:
25 of 42
Trang 26Tại sao phải kiểm thử phần mềm
khi đưa ra sử dụng
hiện và phân phối với chất lượng phần mềm
trong luật hay chuẩn công nghiệp…
26 of 42
Trang 27Tại sao phải kiểm thử phần mềm
được các khiếm khuyết
khuyết để cải tiến quá trình với dự án mới và tránh tái diễn sai lầm cũ
27 of 42
Trang 28Tại sao phải kiểm thử phần mềm
Việc quyết định bao nhiêu là đủ dựa trên bảng miêu tả các rủi ro.
Việc kiểm tra nên cung cấp thông tin
đủ “thẩm quyền” để đảm bảo ra quyết định chính xác.
28 of 42
Trang 29CÁC LOẠI
KIỂM THỬ
3
Trang 30• Chứng thực hệ thống làm việc như yêu cầu khác hàng
• Ước lượng chất lượng sp xác định rủi do thời gian hoàn
Trang 32Các nguyên lý tổng quát của việc kiểm thử phần mềm
Có 7 nguyên lý chính:
Phơi bày biểu hiện của khuyết điểm Không thể vét cạn hết các trường hợp Kiểm tra sớm
Gom các khuyết điểm Ngịch lý thuốc trừ sâu (Pesticide paradox) Phụ thuộc ngữ cảnh
Ảo tưởng “không lỗi” (Absence of errors fallacy)
Trang 33Các nguyên lý tổng quát của việc kiểm thử phần mềm
Các định nghĩa kiểm thử :
1) Test cấp đơn vị (Unit testing)
2) Test cấu hình (Shakeout testing)
3) Test sơ lượt (Smoke testing (Ad-hoc
testing))
4) Test chức năng (Functional testing)
5) Test tích hợp (Integration testing)
6) Test hồi quy (Regression testing)
7) Test hệ thống (System testing)
8) Test tải dữ liệu (Load testing)
9) Test tải trọng (Stress testing) 33 of 42
Trang 34Các nguyên lý tổng quát của việc kiểm thử phần mềm
Các định nghĩa kiểm thử :
10) Test hiệu suất (Performance testing)
11) Test chấp nhận từ người sử dụng
(User acceptance testing)
12) Test hộp đen (Black box testing)
13) Test hộp trắng (White box testing)
14) Test Alpha (Alpha testing)
15) Test Beta (Beta testing)
34 of 42
Trang 36Quy trình kiểm thử cơ bản
Tìm hiểu: Test Case và Test Script
Test Case
Một Test Case có thể coi nôm na là một tình huống kiểm tra, được thiết kế để kiểm tra một đối tượng có thỏa mãn yêu cầu đặt ra hay không.
Test Script
Một Test Script là một nhóm mã lệnh dạng đặc tả kịch bản dùng để tự động hóa một trình tự kiểm tra, giúp cho việc kiểm tra nhanh hơn, hoặc cho những trường hợp mà kiểm tra bằng tay sẽ rất khó khăn hoặc không khả thi
36 of 42
Trang 37Quy trình kiểm thử cơ bản
Các bước:
37 of 42
Trang 39Triết lý của kiểm tra phần mềm
Góc nhìn khi kiểm thử - rà soát khác
so với khi phát triển phần mềm Đứng trên lập trường của người phát triển Người phát triển có lỗi suy nghĩ đúng →
có thể tự kiểm tra mã mình viết Tuy nhiên, việc tách riêng cho Tester là đặc thù giúp hỗ trợ tập trung và cung cấp lợi ích gia tăng.
Ở mức độ độc lập nào đó, thường có hiệu quả trong tìm kiếm khiếm khuyết
và hoạt động không mong đợi.
39 of 42
Trang 40Triết lý của kiểm tra phần mềm
Các mức độ độc lập:
Thiết kế kiểm thử bởi người viết mã
Thiết kế kiểm thử bởi người khác
Thiết kế kiểm thử bởi người từ tổ chức khác
Thiết kế kiểm thử bởi nhóm người từ tổ chức khác
40 of 42
Trang 41Triết lý của kiểm tra phần mềm
Một Tester cần có các kỹ năng giao tiếp, quan hệ tốt Bắt đầu từ sự cộng tác hơn là đối đầu Truyền thông những kết quả lỗi theo ý trung lập, tập trung
sự kiện, không chỉ trích Cố gắng hiểu người khác cảm nhận ra sao và tại sao
họ phản ứng lại Xác nhận lại những gì
đã hiểu và chưa hiểu.
41 of 42
Trang 42Cảm ơn vì đã lắng nghe và theo dõi