Software Testing and Quality Assurance - Lecture 1: Introduction - Đào Nam Anh

► Kiểm chứng phần mềm là gì? Mục đích? Cách thức? ► Tâm lý của kiểm thử ► Verification,Validation, và Testing ► Kiểm chứng/Thẩm định tĩnh và động ► Mô hình phát triển “V” ► Kiểm thử phần mềm (Testing) ► Yêu cầu đối với kiểm thử ► Các nguyên lý kiểm thử PM ► Các loại kiểm chứng phần mềm Tổng Quan “Testing is the process of executing a program with the intent of finding errors.” Glen Myers Tổng Quan Kiểm chứng phần mềm là gì? Mục đích? Cách thức? ►KCPM là quá trình thực thi một hệ thống phần mềm để quyết định xem nó có thực hiện đúng như bản đặc tả và trong môi trường mong đợi hay không.

pdf25 trang | Chia sẻ: candy98 | Lượt xem: 451 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Software Testing and Quality Assurance - Lecture 1: Introduction - Đào Nam Anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1Software Testing and Quality Assurance Lecture 1: Introduction Dr. Dao Nam Anh Faculty of Information Technology University of Technology and Management 2Resources ► Pressman, Software Engineering, McGraw Hill (chapter 18 & 19) ► Sommerville, Software Engineering, Addison-Wesley (chapter 22 & 23) ► Software Testing and QA Theory and Practics, Chapter 7, WILEY Publish ► Foundations Of Software Testing, Istqb Certification, Dorothy Graham, Erik Van Veenendaal, Isabel Evans, Rex Black ► Jovanović, Irena, Software Testing Methods and Techniques ► Lâm Quang Vũ, 3Nội dung ► Kiểm chứng phần mềm là gì? Mục đích? Cách thức? ► Tâm lý của kiểm thử ► Verification,Validation, và Testing ► Kiểm chứng/Thẩm định tĩnh và động ►Mô hình phát triển “V” ► Kiểm thử phần mềm (Testing) ► Yêu cầu đối với kiểm thử ► Các nguyên lý kiểm thử PM ► Các loại kiểm chứng phần mềm 4Tổng Quan “Testing is the process of executing a program with the intent of finding errors.” Glen Myers 5Tổng Quan Kiểm chứng phần mềm là gì? Mục đích? Cách thức? ►KCPM là quá trình thực thi một hệ thống phần mềm để quyết định xem nó có thực hiện đúng như bản đặc tả và trong môi trường mong đợi hay không. 6Tổng Quan Kiểm chứng phần mềm là gì? Mục đích? Cách thức? 7Tổng Quan Kiểm chứng phần mềm là gì? Mục đích? Cách thức? 8Tổng Quan Kiểm chứng phần mềm là gì? Mục đích? Cách thức? ►Mục đích của việc kiểm tra chương trình là để tìm lỗi. Mục đích của tìm lỗi để lỗi được sửa. ► Không thể kiểm tra trọn vẹn một phần mềm vì có rất nhiều trường hợp không thể kiểm tra, dữ liệu đầu vào quá lớn hoặc vấn đề giao diện quá phức tạp. ► Tìm ra lỗi là thành công. Thiếu hay dư tính năng cũng là một lỗi. Khi test cần test các trường hợp không mong đợi. 9Tổng Quan Kiểm chứng phần mềm là gì? Mục đích? Cách thức? ►Cần phải test các đặc tính phần mềm, yêu cầu và mục đích của phần mềm. ►Test bằng phương thức, giả định, tổ chức. ►Người test là lập trình viên, người dùng hoặc bên thứ ba. Thường thì người lập trình sẽ không tự test phần mềm của mình. 10 Tổng Quan Tâm lý của kiểm thử Cẩn thận: + Thường phỏng đoán, không kết luận. + Thường thừa nhận “Tôi không biết”. + Nhờ người khác kiểm tra công việc. Tò mò + Chuyện gì xảy ra nếu? + Nó làm việc ra sao? + Tại sao điều đó xảy ra? Chỉ trích, phê phán + Thường phỏng đoán, bác bỏ. + Chủ động tìm phản chứng. 11 Tổng Quan Tâm lý của kiểm thử Một trong những nguyên nhân chính của thử nghiệm chương trình kém là một thực tế rằng hầu hết các lập trình viên bắt đầu với một định nghĩa sai lầm về thuật ngữ này. Họ có thể nói: ► • "Thử nghiệm là quá trình chứng minh rằng là không có thấy lỗi." ► hoặc ► • "Mục đích của thử nghiệm là để cho thấy rằng chương trình thực hiện chức năng dự định của nó một cách chính xác." ► hoặc ► • "Thử nghiệm là quá trình thiết lập sự tự tin rằng chương trình làm những gì nó phải làm." 12 Tổng Quan Tâm lý của kiểm thử Khi bạn thử nghiệm một chương trình, bạn muốn thêm tạo thêm giá trị cho nó. Thêm giá trị thông qua thử nghiệm có nghĩa là nâng cao chất lượng, độ tin cậy của chương trình. Nâng cao độ tin cậy của chương trình bằng cách tìm kiếm và loại bỏ các lỗi. Vì vậy, thử nghiệm một chương trình không phải để thấy rằng nó hoạt động, thay vào đó, bạn nên bắt đầu với giả định rằng chương trình có lỗi (một giả định hợp lệ cho chương trình hầu như bất kỳ) và sau đó kiểm tra chương trình để tìm thấy nhiều lỗi càng tốt . Vì vậy, một định nghĩa thích hợp hơn là điều này: Thử nghiệm là quá trình thực hiện chương trình với mục đích tìm kiếm các lỗi. 13 Tổng Quan Verification,Validation, và Testing 14 Tổng Quan Verification,Validation, và Testing Kiểm chứng (Verification) − có đúng đặc tả không, có đúng thiết kế không − phát hiện lỗi lập trình Thẩm định (Validation) − có đáp ứng nhu cầu người dùng không − có hoạt động hiệu quả không − phát hiện lỗi phân tích, lỗi thiết kế (lỗi mức cao) V&V = Verification and Validation − mục tiêu là phát hiện và sửa lỗi PM, đánh giá tính dùng được của PM Thứ tự thực hiện: Verification -> Validation 15 Tổng Quan Kiểm chứng/Thẩm định tĩnh và động Kiểm chứng/Thẩm định tĩnh − không thực hiện chương trình − xét duyệt yêu cầu, thiết kế, mã nguồn − tiến hành ở mọi công đoạn phát triển − khó đánh giá tính hiệu quả của sản phẩm Kiểm chứng/Thẩm định động (kiểm thử - Testing) − thực hiện chương trình − cần có mã nguồn − phát hiện lỗi lập trình − đánh giá tính hiệu quả phần mềm − là cách duy nhất để kiểm tra yêu cầu phi chức năng 16 Tổng Quan Mô hình phát triển “V” 17 Tổng Quan Mô hình phát triển “V” 18 Tổng Quan Mô hình phát triển “V” 19 Tổng Quan Kiểm thử phần mềm (Testing) Tập các hoạt động với mục đích khám phá các lỗi và khuyết tật/khiếm khuyết Mỗi phép kiểm thử (a test) chỉ thành công khi − một lỗi được phát hiện − một kết quả chỉ ra sự thất bại của thủ tục kiểm thử được trả lại 20 Tổng Quan Kiểm thử phần mềm (Testing) Kiểm thử tìm khuyết tật − tìm lỗi lập trình − tiến hành dựa trên phân tích đặc tả chức năng, − phân tích mã nguồn Kiểm thử thống kê − đánh giá tính dùng được của sản phẩm − sử dụng dữ liệu thực (dựa trên thống kê) − số người truy cập − số giao tác − cơ sở dữ liệu lớn 21 Tổng Quan Yêu cầu đối với kiểm thử Tính lặp lại − Kiểm thử phải lặp lại được (kiểm tra xem lỗi đã được sửa hay chưa) − phải mô tả được dữ liệu/trạng thái Tính hệ thống − đảm bảo kiểm tra hết các trường hợp (coverage) Được lập tài liệu − kiểm soát tiến trình/kết quả 22 Tổng Quan Các nguyên lý kiểm thử PM Các phép kiểm thử phải tương ứng với các yêu cầu của HT Mỗi phép kiểm thử nên được lập kế hoạch từ rất sớm trước khi tiến hành kiểm thử Qui luật Pareto hay qui luật 80/20 (qui luật thiểu số quan trọng và phân bố nhân tố) − khoảng 80% kết quả là do 20% nguyên nhân gây ra − “80% of all errors uncovered during testing will likely be traceable to 20% of all program modules or classes” 23 Tổng Quan Các loại kiểm chứng phần mềm ► Function Testing: test từng chức năng và đảm bảo từng chức năng đó hoạt động đúng. ►Domain Testing: chia để trị dữ liệu. ► Stress Testing: tìm ngưỡng của sản phẩm để khuyến cáo và đưa ra thông số an toàn. ► Flow Testing: test tuần tự, theo một luồng trong chương trình được quy định trước. ► Scenario Testing: test theo kịch bản cho trước. ►User Testing: người dùng hoặc đại diện người dùng sẽ test. 24 Tổng Quan Các loại kiểm chứng phần mềm ►User Testing: người dùng hoặc đại diện người dùng sẽ test. ► Regression Testing: test hồi quy, lặp đi lặp lại. ► Claims Testing: test theo yêu cầu của khách hàng. ► Risk-based Testing: xác định rủi ro và tìm nó. ► Random Testing: chạy các test ngẫu nhiên, khác nhau rất ít và số lượng rất lớn. ► Khác: Stochastic Testing, GUI regression testing, Multi Variable Testing, Exploratory Testing. 25 Q & A