Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
637,02 KB
Nội dung
TRƢỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN CÔNG NGHỆ PHẦN MỀM Chƣơng 6: KIỂM THỬ PHẦN MỀM Thời gian: tiết Giảng viên: ThS Dƣơng Thành Phết Email: phetcm@gmail.com Website: http://www.thayphet.net Tel: 0918158670 – facebook com/DuongThanhPhet http://www.thayphet.net NỘI DUNG Mục đích http://www.thayphet.net Nguyên tắc kiểm thử Kiểm thử theo đường Kiểm thử theo phân vùng tương đương Kiểm thử theo giá trị biên Các mức độ kiểm thử http://www.thayphet.net MỤC ĐÍCH (TESTING OBJECTIVES) http://www.thayphet.net Kiểm thử phần mềm hoạt động khảo sát thực tiễn sản phẩm phần mềm môi trường dự định triển khai Nhằm cung cấp cho người có lợi ích liên quan thông tin chất lượng sản phẩm hay dịch vụ phần mềm Mục đích kiểm thử phần mềm tìm lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu hoạt động tối ưu phần mềm http://www.thayphet.net NGUYÊN TẮC KIỂM THỬ Kiểm thử gỡ rối (Debugging) http://www.thayphet.net Kiểm thử phát hoàn toàn 100% lỗi Mục đích kiểm thử tìm lỗi nguyên nhân gây lỗi http://www.thayphet.net KIỂM THỬ THEO ĐƢỜNG CƠ BẢN http://www.thayphet.net Các đường dẫn xác định việc xây dựng đồ thị chương trình Mỗi trường hợp kiểm thử tương ứng với đường dẫn Ta gặp vấn đề đường dẫn thực http://www.thayphet.net KIỂM THỬ THEO ĐƢỜNG CƠ BẢN Đồ thị chƣơng trình http://www.thayphet.net Đồ thị chương trình đồ thị có hướng đó: + Các đỉnh đồ thị biểu diễn câu lệnh + Các cạnh biểu diễn luồng điều khiển Nghĩa là, có cạnh từ đỉnh i đến đỉnh j câu lệnh tương ứng với đỉnh j thực thi sau câu lệnh tương ứng với đỉnh i http://www.thayphet.net KIỂM THỬ THEO ĐƢỜNG CƠ BẢN http://www.thayphet.net Đồ thị chương trình toán tam giác: http://www.thayphet.net KIỂM THỬ THEO ĐƢỜNG CƠ BẢN http://www.thayphet.net Một số định nghĩa Chuỗi: đường dẫn mà đỉnh bắt đầu đỉnh kết thúc khác nhau, đỉnh bên có bậc vào =1 bậc =1 http://www.thayphet.net KIỂM THỬ THEO ĐƢỜNG CƠ BẢN Các bƣớc thực hiện: http://www.thayphet.net Xây dựng đồ thị chương trình/đồ thị đường dẫn định từ mã nguồn Tính độ phức tạp đồ thị Xác định tập hợp đường dẫn Thiết kế trường hợp kiểm thử tương ứng với đường dẫn Thực thi trường hợp kiểm thử http://www.thayphet.net KIỂM THỬ THEO ĐƢỜNG CƠ BẢN http://www.thayphet.net Một đường dẫn đường dẫn nối từ đỉnh bắt đầu đến đỉnh kết thúc 10 Số lượng đường dẫn độc lập cần kiểm thử giá trị V(G) = e-n+2*p Trong đó: G đồ thị đường dẫn định V(G) độ phức tạp đồ thị G e số cạnh, n số đỉnh, p số thành phần http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Mục đích Unit Test bảo đảm thông tin xử lý xuất (khỏi Unit) xác, mối tương quan với liệu nhập chức Unit 29 Điều thường đòi hỏi tất nhánh bên Unit phải kiểm tra để phát nhánh phát sinh lỗi Một nhánh thường chuỗi lệnh thực thi Unit Ví dụ: chuỗi lệnh sau điều kiện If nằm then … else nhánh http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Thực tế việc chọn lựa nhánh để đơn giản hóa việc kiểm tra quét hết Unit đòi hỏi phải có kỹ thuật, phải dùng thuật toán để chọn lựa 30 Cũng mức kiểm tra khác, Unit Test đòi hỏi phải chuẩn bị trước tình (test case) kịch (script), định rõ liệu vào, bước thực liệu mong chờ xuất Các test case script nên giữ lại để tái sử dụng http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ 6.2 Integration Test – Kiểm tra tích hợp http://www.thayphet.net Integration test kết hợp thành phần ứng dụng kiểm tra ứng dụng hoàn thành 31 Trong Unit Test kiểm tra thành phần Unit riêng lẻ Intgration Test kết hợp chúng lại với kiểm tra giao tiếp chúng Integration Test có mục tiêu chính: Phát lỗi giao tiếp xảy Unit Tích hợp Unit đơn lẻ thành hệ thống nhỏ (subsystem) cuối nguyên hệ thống hoàn chỉnh (system) chuẩn bị cho kiểm tra mức hệ thống (System Test) http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Trong Unit Test, lập trình viên cố gắng phát lỗi liên quan đến chức cấu trúc nội Unit 32 Có số phép kiểm tra đơn giản giao tiếp Unit với thành phần liên quan khác, nhiên giao tiếp liên quan đến Unit thật kiểm tra đầy đủ Unit tích hợp với thực Integration Test Trừ số ngoại lệ, Integration Test nên thực Unit kiểm tra cẩn thận trước Unit Test, tất lỗi mức Unit sửa chữa http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Một số người hiểu sai Unit qua giai đoạn Unit Test với giao tiếp giả lập không cần phải thực Integration Test 33 Thực tế việc tích hợp Unit dẫn đến tình hoàn toàn khác Một chiến lược cần quan tâm Integration Test nên tích hợp dần Unit Một Unit thời điểm tích hợp vào nhóm Unit khác tích hợp trước hoàn tất (passed) đợt Integration Test trước Lúc này, ta cần kiểm tra giao tiếp Unit thêm vào với hệ thống Unit tích hợp trước đó, điều làm cho số lượng kiểm tra giảm nhiều, sai sót giảm đáng kể http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Có loại kiểm tra Integration Test: Kiểm tra cấu trúc (structure): Tương tự White Box Test (kiểm tra thành phần bên chương trình chạy đúng), trọng đến hoạt động thành phần cấu trúc nội chương trình chẳng hạn lệnh nhánh bên Kiểm tra chức (functional): Tương tự Black Box Test (kiểm tra chức chương trình, không quan tâm đến cấu trúc bên trong), khảo sát chức chương trình theo yêu cầu kỹ thuật Kiểm tra hiệu (performance): Kiểm tra việc vận hành hệ thống 34 Kiểm tra khả chịu tải (stress): Kiểm tra giới hạn hệ thống http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ 6.3 System Test - Kiểm tra mức hệ thống http://www.thayphet.net Mục đích System Test kiểm tra thiết kế toàn hệ thống (sau tích hợp) có thỏa mãn yêu cầu đặt hay không 35 System Test bắt đầu tất phận phần mềm tích hợp thành công Thông thường loại kiểm tra tốn nhiều công sức thời gian Trong nhiều trường hợp, việc kiểm tra đòi hỏi số thiết bị phụ trợ, phần mềm phần cứng đặc thù, đặc biệt ứng dụng thời gian thực, hệ thống phân bố, hệ thống nhúng http://www.thayphet.net http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ 36 Ở mức độ hệ thống, người kiểm tra tìm kiếm lỗi, trọng tâm đánh giá hoạt động, thao tác, tin cậy yêu cầu khác liên quan đến chất lượng toàn hệ thống Điểm khác then chốt Integration Test System Test System Test trọng hành vi lỗi toàn hệ thống, Integration Test trọng giao tiếp đơn thể đối tượng chúng làm việc Thông thường ta phải thực Unit Test Integration Test để bảo đảm Unit tương tác chúng hoạt động xác trước thực System Test http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Sau hoàn thành Integration Test, hệ thống phần mềm hình thành với thành phần kiểm tra đầy đủ 37 Tại thời điểm này, lập trình viên kiểm tra viên (tester) bắt đầu kiểm tra phần mềm hệ thống hoàn chỉnh Việc lập kế hoạch cho System Test nên giai đoạn hình thành phân tích yêu cầu http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net System Test kiểm tra hành vi chức phần mềm lẫn yêu cầu chất lượng độ tin cậy, tính tiện lợi sử dụng, hiệu bảo mật Mức kiểm tra thích hợp cho việc phát lỗi giao tiếp với phần mềm phần cứng bên ngoài, lỗi “tắc nghẽn” (deadlock) chiếm dụng nhớ Sau giai đoạn System Test, phần mềm sẵn sàng cho khách hàng kiểm tra để chấp nhận (Acceptance Test) dùng thử (Alpha/Beta Test) Đòi hỏi nhiều công sức, thời gian tính xác, khách quan, System Test thường thực nhóm kiểm tra viên hoàn toàn độc lập với nhóm phát triển dự án 38 http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Bản thân System Test lại gồm nhiều loại kiểm tra khác nhau, phổ biến gồm: 39 Kiểm tra chức (Functional Test): bảo đảm hành vi hệ thống thỏa mãn yêu cầu thiết kế Kiểm tra khả vận hành (Performance Test): bảo đảm tối ưu việc phân bổ tài nguyên hệ thống (ví dụ nhớ) nhằm đạt tiêu thời gian xử lý hay đáp ứng câu truy vấn… http://www.thayphet.net http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ 40 Kiểm tra khả chịu tải (Stress Test hay Load Test): Bảo đảm hệ thống vận hành áp lực cao (ví dụ nhiều người truy xuất lúc) Tập trung vào trạng thái tới hạn, “điểm chết”, tình bất thường… Kiểm tra cấu hình (Configuration Test) Kiểm tra khả bảo mật (Security Test): Bảo đảm tính toàn vẹn, bảo mật liệu hệ thống Kiểm tra khả phục hồi (Recovery Test): Bảo đảm hệ thống có khả khôi phục trạng thái ổn định trước tình tài nguyên liệu; đặc biệt quan trọng hệ thống giao dịch ngân hàng trực tuyến http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Acceptance Test - Kiểm tra chấp nhận sản phẩm 41 Thông thường, sau giai đoạn System Test Acceptance Test, khách hàng thực (hoặc ủy quyền cho nhóm thứ ba thực hiện) Mục đích Acceptance Test để chứng minh phần mềm thỏa mãn tất yêu cầu khách hàng khách hàng chấp nhận sản phẩm (và trả tiền toán hợp đồng) http://www.thayphet.net CÁC MỨC ĐỘ KIỂM THỬ Regression Test - Kiểm tra hồi quy http://www.thayphet.net Regression Test kiểm tra lại phần mềm sau có 42 thay đổi xảy ra, để bảo đảm phiên phần mềm thực tốt chức phiên cũ thay đổi không gây lỗi chức vốn làm việc tốt Regression test thực mức kiểm tra http://www.thayphet.net BÀI TẬP Trình bày phương pháp kiểm thử theo giá trị biên Trình bày phương pháp kiểm thử theo phân vùng tương đương Trình bày phương pháp kiểm thử theo đường 43 43 [...]... ứng với ba cấp độ của kiểm thử: kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử hệ thống Thông thường, kiểm thử theo cấu trúc tương ứng với mức độ đơn vị, kiểm thử theo chức năng tương ứng với mức độ hệ thống 27 http://www.thayphet.net 6 CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net 6. 1 Unit Test – Kiểm tra mức đơn vị Một Unit là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm tra được Theo định... 5 KIỂM THỬ THEO GIÁ TRỊ BIÊN http://www.thayphet.net Kiểm thử theo giá trị biên đầy đủ 25 Kiểm thử theo giá trị biên đầy đủ với hai biến http://www.thayphet.net 5 KIỂM THỬ THEO GIÁ TRỊ BIÊN http://www.thayphet.net Kiểm thử theo giá trị biên xấu nhất (hai biến) Loại bỏ giả thiết chỉ có một lỗi đơn Cho phép các giá trị đầu vào có thể cùng nhận giá trị biên 26 Số lượng trường hợp kiểm thử Kiểm thử. .. x1< a, x1>d and x2g 16 http://www.thayphet.net 4 KIỂM THỬ THEO PHÂN VÙNG TƢƠNG ĐƢƠNG Các kiểu kiểm thử theo lớp tương đương: http://www.thayphet.net Kiểm thử theo lớp tương đương- lỗi đơn 17 Kiểm thử theo lớp tương đương- lỗi kết hợp Kiểm thử theo lớp tương đương- lỗi đơn đầy đủ Kiểm thử theo lớp tương đương- lỗi kết hợp đầy đủ http://www.thayphet.net 4 KIỂM THỬ THEO PHÂN VÙNG TƢƠNG ĐƢƠNG... 4n+1 Kiểm thử theo giá trị biên đầy đủ: 6n+1 Kiểm thử theo giá trị biên xấu nhất: 5n Với n là số lượng các biến Nhược điểm của kiểm thử theo giá trị biên Các biến phải độc lập với nhau Không áp dụng được cho các biến thuộc kiểu logic http://www.thayphet.net 6 CÁC MỨC ĐỘ KIỂM THỬ Các cấp độ của kiểm thử phản ánh cấp độ trong mô http://www.thayphet.net hình thác nước của vòng đời phát triển phần mềm. .. http://www.thayphet.net 3 KIỂM THỬ THEO ĐƢỜNG CƠ BẢN http://www.thayphet.net Kiểm thử theo đường dẫn cơ bản dựa vào phương pháp của Tom McCabe 15 Sử dụng đồ thị chương trình để xác định các trường hợp kiểm thử Kiểm thử theo đường dẫn cơ bản được sử dụng cho cấp độ kiểm thử đơn vị Có nhược điểm là người kiểm thử phải có kỹ năng lập trình đủ tốt để có thể hiểu được mã nguồn và luồng điều khiển trong chương trình... http://www.thayphet.net 6 CÁC MỨC ĐỘ KIỂM THỬ 6. 3 System Test - Kiểm tra mức hệ thống http://www.thayphet.net Mục đích System Test là kiểm tra thiết kế và toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không 35 System Test bắt đầu khi tất cả các bộ phận của phần mềm đã được tích hợp thành công Thông thường loại kiểm tra này tốn rất nhiều công sức và thời gian Trong nhiều trường hợp, việc kiểm. .. thiết lỗi đơn 19 Mỗi trường hợp kiểm thử tương ứng với một phần tử của tích Đề các của các lớp tương đương http://www.thayphet.net 4 KIỂM THỬ THEO PHÂN VÙNG TƢƠNG ĐƢƠNG http://www.thayphet.net 4.3 Kiểm thử theo lớp tƣơng đƣơng- lỗi đơn đầy đủ Xem xét cả các giá trị không đúng với giả thiết lỗi đơn 20 http://www.thayphet.net 4 KIỂM THỬ THEO PHÂN VÙNG TƢƠNG ĐƢƠNG 4.4 Kiểm thử theo lớp tƣơng đƣơng- lỗi... ta chỉ cần kiểm tra giao tiếp của Unit mới thêm vào với hệ thống các Unit đã tích hợp trước đó, điều này làm cho số lượng kiểm tra sẽ giảm đi rất nhiều, sai sót sẽ giảm đáng kể http://www.thayphet.net 6 CÁC MỨC ĐỘ KIỂM THỬ http://www.thayphet.net Có 4 loại kiểm tra trong Integration Test: Kiểm tra cấu trúc (structure): Tương tự White Box Test (kiểm tra các thành phần bên trong của một chương trình... thành phần cấu trúc nội tại của chương trình chẳng hạn các lệnh và nhánh bên trong Kiểm tra chức năng (functional): Tương tự Black Box Test (kiểm tra chức năng của chương trình, không quan tâm đến cấu trúc bên trong), chỉ khảo sát chức năng của chương trình theo yêu cầu kỹ thuật Kiểm tra hiệu năng (performance): Kiểm tra việc vận hành của hệ thống 34 Kiểm tra khả năng chịu tải (stress): Kiểm tra... ĐƢƠNG http://www.thayphet.net 4.1 Kiểm thử theo lớp tƣơng đƣơng- lỗi đơn Sử dụng một biến từ mỗi lớp tương đương (hay một khoảng giá trị) trong một trường hợp kiểm thử 18 Dựa trên giả thiết lỗi đơn Số lượng trường hợp kiểm thử bằng số lượng nhiều nhất các khoảng giá trị đúng mà một biến có thể nhận http://www.thayphet.net 4 KIỂM THỬ THEO PHÂN VÙNG TƢƠNG ĐƢƠNG 4.2 Kiểm thử theo lớp tƣơng đƣơng- lỗi ... vụ phần mềm Mục đích kiểm thử phần mềm tìm lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu hoạt động tối ưu phần mềm http://www.thayphet.net NGUYÊN TẮC KIỂM THỬ Kiểm thử gỡ rối (Debugging)... tiết tương ứng với ba cấp độ kiểm thử: kiểm thử đơn vị, kiểm thử tích hợp kiểm thử hệ thống Thông thường, kiểm thử theo cấu trúc tương ứng với mức độ đơn vị, kiểm thử theo chức tương ứng với... x2g 16 http://www.thayphet.net KIỂM THỬ THEO PHÂN VÙNG TƢƠNG ĐƢƠNG Các kiểu kiểm thử theo lớp tương đương: http://www.thayphet.net Kiểm thử theo lớp tương đương- lỗi đơn 17 Kiểm thử theo