Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan

Xác minh và thẩm định

 Xác minh (Verification)

 Có đúng đặc tả, có đúng thiết kế

 Phát hiện lỗi lập trình

 Thẩm định (Validation)

 Có đáp ứng nhu cầu người dùng

 Phát hiện lỗi phân tích, thiết kế

Xác minh và thẩm định

 V & V = Verification and Validation

 Mục tiêu là phát hiện và sửa lỗi phần mềm,

đánh giá tính dùng được của phần mềm

 Thứ tự thực hiện: Verification  Validation

 Verification chiếm 80%, Validation chiếm

20% công việc

 Validation tác động 80% hiệu quả chung

Tại sao có lỗi?

 Phần mềm viết bởi con người

 Biết nhiều thứ, nhưng không phải mọi thứ

 Có kỹ năng, nhưng không hoàn hảo

 Luôn phạm sai lầm

 Làm việc dưới điều kiện căng thẳng để

kịp bàn giao đúng tiến độ

 Không có thời gian kiểm tra, giả định bị sai

 Hệ thống chưa hoàn chỉnh

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 1

Trang 1

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 2

Trang 2

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 3

Trang 3

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 4

Trang 4

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 5

Trang 5

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 6

Trang 6

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 7

Trang 7

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 8

Trang 8

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 9

Trang 9

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 44 trang duykhanh 6420
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan

Bài giảng Công cụ kiểm thử phần mềm - Bài 1: Tổng quan
 Bài 1 – Tổng quan
Công cụ kiểm thử phần mềm
 Nội dung
 Kiểm thử phần mềm là gì?
 Tại sao kiểm thử quan trọng?
 Qui trình kiểm thử phần mềm
 Vai trò và thái độ
 Các cấp độ kiểm thử
 Các loại kiểm thử
 2
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử phần mềm là gì?
 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 lỗi
 The Art of Software Testing
 Là hoạt động kiểm tra xem phần mềm có 
 chạy chính xác hay không (Verification) và 
 có thoả mãn yêu cầu của khách hàng hay 
 không (Validation) nhằm hướng tới mục tiêu 
 Chất lượng cho phần mềm.
 3
 2/4/2015 Công cụ kiểm thử phần mềm
 Xác minh và thẩm định
 Xác minh (Verification)
 Có đúng đặc tả, có đúng thiết kế
 Phát hiện lỗi lập trình Phần mềm
 Thẩm định (Validation)
 Có đáp ứng nhu cầu người dùng
 Phát hiện lỗi phân tích, thiết kế
 Nhu cầu Đặc tả
 4
 2/4/2015 Công cụ kiểm thử phần mềm
 Xác minh và thẩm định
 V & V = Verification and Validation
 Mục tiêu là phát hiện và sửa lỗi phần mềm, 
 đánh giá tính dùng được của phần mềm
 Thứ tự thực hiện: Verification Validation
 Verification chiếm 80%, Validation chiếm
 20% công việc
 Validation tác động 80% hiệu quả chung
 5
 2/4/2015 Công cụ kiểm thử phần mềm
 Nội dung
 Kiểm thử phần mềm là gì?
 Tại sao kiểm thử quan trọng?
 Qui trình kiểm thử phần mềm
 Vai trò và thái độ
 Các cấp độ kiểm thử
 Các loại kiểm thử
 6
 2/4/2015 Công cụ kiểm thử phần mềm
 Tại sao có lỗi?
 Phần mềm viết bởi con người
 Biết nhiều thứ, nhưng không phải mọi thứ
 Có kỹ năng, nhưng không hoàn hảo
 Luôn phạm sai lầm
 Làm việc dưới điều kiện căng thẳng để
 kịp bàn giao đúng tiến độ
 Không có thời gian kiểm tra, giả định bị sai
 Hệ thống chưa hoàn chỉnh
 7
 2/4/2015 Công cụ kiểm thử phần mềm
 Chi phí lỗi
 Có thể rất lớn: 
 Ariane 5: 7 tỉ đô la,
 Mariner space probe to Venus: 250 triệu đô
 la,
 American Airlines: 50 triệu đô la
 Có thể gây chết người: 
 Therac-25
 Airbus & Korean Airlines
 Có thể không đáng kể: 
 8
 2/4/2015hơi bất tiện, ảnhCônghưởng cụ kiểm thử phầnkhông mềm nhìn thấy
 được
 Không tuyến tính: 1 lỗi nhỏ nhưng có hậu
 Tại sao kiểm thử cần thiết?
 Vì:
 Phần mềm luôn tồn tại lỗi
 Đánh giá độ tin cậy
 Chi phí lỗi có thể rất cao
 Tránh bị kiện từ khách hàng
 Giữ uy tính trong kinh doanh
 Không vì:
 Lấp khoản thời gian giữa ngày hoàn thành và
 ngày bàn giao
 Chứng minh là phần mềm không lỗi
 Kiểm thử là một phần của kế hoạch dự án
 9
 2/4/2015 Công cụ kiểm thử phần mềm
 Nội dung
 Kiểm thử phần mềm là gì?
 Tại sao kiểm thử quan trọng?
 Qui trình kiểm thử phần mềm
 Vai trò và thái độ
 Các cấp độ kiểm thử
 Các loại kiểm thử
 10
 2/4/2015 Công cụ kiểm thử phần mềm
 Qui trình kiểm thử
 Dữ liệu KT
 (Test data)
 Đặc tả YC
 Kế hoạch KT Ca kiểm thử Kết quả KT Báo cáo KT
(Requirement 
 (Test plan) (Test cases) (Test result) (Test report)
 spec)
 Thiết kế kiểm Thực hiện Báo cáo
 Lập kế hoạch
 thử kiểm thử kết quả
 11
 2/4/2015 Công cụ kiểm thử phần mềm
 Lập kế hoạch
 Mục đích: chỉ định, mô tả các chiến lược
 kiểm thử
 Kết quả: bản kế hoạch kiểm thử (Test 
 plan)
 Nội dung TestPlan:
 Giới thiệu
 Yêu cầu
 Chiến lược
 Thời gian
 12
 2/4/2015Tài nguyên Công cụ kiểm thử phần mềm
 Thiết kế
 Mục đích: bảo đảm tất cả các tình huống 
 kiểm tra “quét” hết tất cả yêu cầu cần 
 kiểm tra
 Kết quả: ca kiểm thử (Test cases), dữ liệu
 kiểm thử (Test data)
 Nội dung Testcase:
 Dữ liệu kiểm thử
 Các bước thực hiện
 Đầu ra mong đợi
 13
 2/4/2015 Công cụ kiểm thử phần mềm
 Thực hiện
 Mục đích: thực hiện các ca kiểm thử, ghi
 nhận kết quả
 Kết quả: bảng báo cáo (Test result) là kết
 quả thực tế của việc chạy testcase trên
 phần mềm
 14
 2/4/2015 Công cụ kiểm thử phần mềm
 Báo cáo kiểm thử
 Mục đích: xem xét và đánh giá kết quả
 kiểm tra, liệt kê lỗi, chỉ định các yêu cầu
 thay đổi, thống kê số liệu
 Kết quả: báo báo kiểm thử (Test report), 
 có 2 loại
 Test summary report: báo cáo thống kê
 Bug report: báo cáo lỗi
 15
 2/4/2015 Công cụ kiểm thử phần mềm
 Nội dung
 Kiểm thử phần mềm là gì?
 Tại sao kiểm thử quan trọng?
 Qui trình kiểm thử phần mềm
 Vai trò và thái độ
 Các cấp độ kiểm thử
 Các loại kiểm thử
 16
 2/4/2015 Công cụ kiểm thử phần mềm
 Vai trò QA, QC
 QC – Quality Control
 Những hoạt động, những kỹ thuật nhằm đảm
 bảo chất lượng sản phẩm.
 QA – Quality Assurance
 Những kế hoạch, những hoạt động mang
 tính hệ thống nhằm đảm bảo quá trình sản
 xuất sẽ tạo ra những sản phẩm có chất
 lượng.
 Định nghĩa của ISO 9000
 17
 2/4/2015 Công cụ kiểm thử phần mềm
 Vai trò QA, QC
 QC QA
 Sản phẩm Tiến trình
 Phản ứng Tiên đoán, ước tính
 Tìm lỗi Ngăn ngừa lỗi
 Ví dụ Ví dụ
 Kiểm duyệt Đảm bảo chất lượng
 Kiểm thử Định nghĩa tiến trình
 Thanh tra Chọn lựa công cụ
 Kiểm tra lại Huấn luyện
2/4/2015 Công cụ kiểm thử phần mềm 18
 Thái độ của Tester
 Cẩn thận (Cautious)
 Phỏng đoán chứ không kết luận
 Tập thừa nhận “Tôi không biết”
 Có người khác kiểm tra lại
 Tò mò (Curious) Good testers are 
 Điều gì xảy ra nếu ?
 Nó hoạt động như thế nào? hard to fool.
 Tại sao nó xảy ra?
 Chỉ trích, phê phán (Critical)
 Tiến hành phỏng đoán và bác bỏ
 Tích cực tìm kiếm phản chứng
 Can đảm (Courageous)
 19
 2/4/2015 Công cụ kiểm thử phần mềm
 Kỹ năng của Tester
 Kỹ năng giao tiếp
 Kỹ năng đọc
 Kỹ năng giải quyết vấn đề
 Kỹ năng lập báo cáo
 Kỹ năng quảng lý bản thân
 Kỹ năng ngoại ngữ
 20
 2/4/2015 Công cụ kiểm thử phần mềm
 Nội dung
 Kiểm thử phần mềm là gì?
 Tại sao kiểm thử quan trọng?
 Qui trình kiểm thử phần mềm
 Vai trò và thái độ
 Các cấp độ kiểm thử
 Các loại kiểm thử
 21
 2/4/2015 Công cụ kiểm thử phần mềm
 Mô hình chữ V
 Đặc tả Kiểm thử
 yêu cầu chấp nhận
 Đặc tả Kiểm thử
 hệ thống hệ thống
 Thiết kế Kiểm thử
 mức cao tích hợp
 Thiết kế Chạy kiểm
 thử
kiểm thử Thiết kế Kiểm thử
 chi tiết đơn vị
 Cài đặt
 22
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử đơn vị – Unit testing
 Component/module/program testing
 Mỗi đơn vị được kiểm thử độc lập, trước khi tích
 hợp
 Mức thấp nhất và cụ thể, chi tiết nhất
 Mục tiêu:
 Đảm bảo mã nguồn từng đơn vị đúng theo đặc tả
 Bao gồm chức năng và phi chức năng
 Dựa trên:
 Yêu cầu
 Thiết kế đơn vị
 Mã nguồn
 23
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử đơn vị – Unit testing
 Ai thực hiện?
 Lập trình viên
 Báo cáo
 Lỗi được sửa ngay, không cần báo cáo
 Công cụ
 Viết trực tiếp mã nguồn
 Unit test framework
 Mocking framework
 Dependency Injection and IoC containers
 24
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử đơn vị – Unit testing
 Test driven development
 Test-first approach
 Hướng tiếp cận phát triển phần mềm dựa
 trên Unit Test
 Chuẩn bị và tự động hóa test case trước khi
 coding
 Lập trình từng phần một tất cả test case 
 điều đạt
 25
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử tích hợp – Integration 
 testing
 Kiểm tra hơn 2 đơn vị/hệ thống
 Mục tiêu:
 Kiểm thử giao diện/sự tương tác giữa các
 đơn vị/hệ thống
 Kiểm thử các tập không hoạt động độc lập
 Kiểm thử chức năng và phi chức năng
 Dựa trên:
 Thiết kế phần mềm
 Kiến trúc phần mềm
 26
 2/4/2015Workflows/Use-casesCông cụ kiểm thử phần mềm
 Kiểm thử tích hợp – Integration 
 testing
 Hai cấp độ
 Kiểm thử tích hợp đơn vị
 Kiểm thử tích hợp hệ thống
 Ai thực hiện?
 Người phát triển
 Người thiết kế
 Người kiểm thử độc lập
 27
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử hệ thống – System 
 testing
 Là bước cuối cùng của kiểm thử tích hợp
 Kiểm thử hệ thống như một tổng thể
 Mục tiêu:
 Phát hiện sai sót trong toàn bộ hệ thống chạy
 trên môi trường
 Kiểm thử chức năng và phi chức năng
 Dựa trên:
 Đặc tả yêu cầu phần mềm
 Use case
 28
 2/4/2015Tài liệu hướng dẫnCông cụsử kiểm thửdụng phần mềm
 Kiểm thử hệ thống – System 
 testing
 Ai thực hiện?
 Thường và nên nhóm kiểm thử độc lập
 Phân loại
 Kiểm thử chức năng – Functional testing
 Kiểm thử phi chức năng – Non-functional 
 testing
 29
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử chấp nhận – Acceptance 
 testing
 Bước cuối cùng của validation
 Mục tiêu:
 Xác nhận từ phía người dùng hệ thống đáp
 ứng đúng mong đợi của người dùng
 Dựa trên
 Đặc tả yêu cầu
 Ai thực hiện?
 Khách hàng/Người sử dụng
 Có thể bao gồm kiểm thử viên
 30
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử chấp nhận – Acceptance 
 testing
 Alpha testing và Beta testing
 Giống
 Khi phần mềm đã ổn định
 Nhận phản hồi về lỗi, mong đợi, đề xuất
 Khác
 Alpha testing thực hiện tại môi trường phát triển
 Beta testing thực hiện tại môi trường thực tế
 31
 2/4/2015 Công cụ kiểm thử phần mềm
 Nội dung
 Kiểm thử phần mềm là gì?
 Tại sao kiểm thử quan trọng?
 Qui trình kiểm thử phần mềm
 Vai trò và thái độ
 Các cấp độ kiểm thử
 Các loại kiểm thử
 32
 2/4/2015 Công cụ kiểm thử phần mềm
 Các loại kiểm thử
 Kiểm thử chức năng
 Functional testing/Black-box testing
 Kiểm thử phi chức năng
 Non-functional testing
 Kiểm thử cấu trúc
 Structural testing/White-box testing
 Kiểm thử liên quan thay đổi
 Confirmation testing/Re-testing & Regression 
 testing
 33
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử chức năng
 Functional testing/Black-box testing
 Dựa trên đặc tả chức năng
 Phát hiện sai sót về chức năng
 Không quan tâm đến cách cài đặt
 34
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử chức năng
 Các kỹ thuật thiết kế
 Phân hoạch tương đương (Equivalence 
 partitioning)
 Phân tích giá trị biên (Boundary value 
 analysis)
 35
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử phi chức năng
 Kiểm thử hiệu năng – Performance 
 testing
 Kiểm thử tính tiện dụng – Usability testing
 Kiểm thử bảo mật – Security testing
 Kiểm thử cấu hình/cài đặt –
 Configuration/Installation testing
 Kiểm thử sao lưu/khôi phục – Back-
 up/Recovery testing
 36
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử phi chức năng
 Kiểm thử hiệu năng – Performance 
 testing
 Kiểm thử khối lượng – Volume testing 
 Kiểm tra khả năng xử lý dữ liệu lớn của hệ thống
 Kiểm thử tải/quá tải – Load/Stress testing
 Kiểm tra yêu cầu về thời gian đáp ứng của hệ
 thống
 37
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử phi chức năng
 Kiểm thử tính tiện dụng – Usability testing
 Dễ học, sử dụng đơn giản
 Hiệu quả khi sử dụng
 Giao diện đơn giản, đồng nhất
 Hỗ trợ thông tin phản hồi
 Ngăn ngừa lỗi
 Liên kết tắt
 Thông điệp báo lỗi tốt
 38
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử phi chức năng
 Kiểm thử bảo mật – Security testing
 Kiểm tra tính hợp lệ của việc truy xuất trong
 và ngoài chương trình
 39
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử phi chức năng
 Kiểm thử cấu hình/cài đặt –
 Configuration/Installation testing
 Kiểm tra cấu hình
 Phần cứng, môi trường phần mềm khác nhau
 Cấu hình bản thân phần mềm
 Đụng độ nâng cấp phiên bản
 Kiểm tra cài đặt
 Gói cài đặt (CD, mạng, )
 Uninstall
 40
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử phi chức năng
 Kiểm thử sao lưu/khôi phục – Back-
 up/Recovery testing
 Kiểm tra khả năng sao lưu và khôi phục hệ
 thống từ sự cố
 41
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử cấu trúc
 Có nghiên cứu mã nguồn
 Phân tích thứ tự thực hiện các lệnh
 42
 2/4/2015 Công cụ kiểm thử phần mềm
 Kiểm thử liên quan thay đổi
 Kiểm tra sau khi lỗi được sửa chữa
 Kiểm thử lại – Re-testing/Confirmation testing
 Kiểm tra lại chính xác trường hợp kiểm thử đã phát
 hiện ra lỗi
 Xác nhận lỗi đã được sửa chữa
 Không bảo đảm lỗi mới không phát sinh
 Kiểm thử hồi qui – Regression testing
 Kiểm tra lại tất cả các trường hợp kiểm thử đã thỏa
 trước đó
 Tìm ra các lỗi mới phát sinh
 43
 2/4/2015 Công cụ kiểm thử phần mềm
 Thảo luận
 44
2/4/2015 Công cụ kiểm thử phần mềm

File đính kèm:

  • pdfbai_giang_cong_cu_kiem_thu_phan_mem_bai_1_tong_quan.pdf