Dưới đây là bài giảng Nhập môn Công nghệ học phần mềm (Phần V: Kiểm thử và bảo trì Test and Maintenance) – Chương 9: Phương pháp kiểm thử. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về khái niệm kiểm thử, phương pháp thử, kỹ thuật thiết kế trường hợp thử, phương pháp thử các môđun.
Phần V Kiểm thử Bảo trì Test and Maintenance Nhập môn Công nghệ học Phần mềm Introduction to Software Engineering Department of Software Engineering Faculty of Information Technology Hanoi University of Technology 9.1 9.2 9.3 9.4 TEL: 04-8682595 FAX: 04-8692906 Email: cnpm@it-hut.edu.vn HUT, Falt of IT Dept of SE, 2001 SE-V.1 9.1 Khái niệm kiểm thử Dept of SE, 2001 SE-V.3 (1) Chất lượng phần mềm khâu thiết kế định chủ yếu, khâu kiểm thử (2) Tính dễ kiểm thử phụ thuộc vào cấu trúc chương trình (3) Người kiểm thử người phát triển nên khác Dept of SE, 2001 Dept of SE, 2001 SE-V.2 • Nâng cao chất lượng phần mềm không vượt chất lượng thiết kế: phát lỗi tiềm tàng sửa chúng • Phát lỗi bị hạn chế thủ công • Dễ bị ảnh hưởng tâm lý kiểm thử • Khó đảm bảo tính đầy đủ kiểm thử HUT, Falt of IT Dept of SE, 2001 SE-V.4 điểm lưu ý kiểm thử (tiếp) điểm lưu ý kiểm thử HUT, Falt of IT HUT, Falt of IT Những khó khăn kiểm thử Định nghĩa kiểm thử: • Là mấu chốt đảm bảo chất lượng phần mềm • Là tiến trình (và nghệ thuật) nhằm phát lỗi việc xem xét lại đặc tả, thiết kế mã hố • Kiểm thử thành công phát lỗi; kiểm thử không phát lỗi kiểm thử dở (Sue A.Conger- The New SE) HUT, Falt of IT Chương 9: Phương pháp kiểm thử Khái niệm kiểm thử Phương pháp thử Kỹ thuật thiết kế trưòng hợp thử Phương pháp thử môđun SE-V.5 (4) Dữ liệu thử cho kết bình thường khơng có ý nghĩa nhiều, cần có liệu kiểm thử mà phát lỗi (5) Khi thiết kế trường hợp thử, không liệu kiểm thử nhập vào, mà phải thiết kế trước liệu kết có (6) Khi phát sinh thêm trường hợp thử nên thử lại trường hợp thử trướcđó để tránh ảnh hưởng lan truyền sóng HUT, Falt of IT Dept of SE, 2001 SE-V.6 Tương ứng vòng đời dự án kiểm thử Đối tượng phạm vi 9.2 Phương pháp thử: thử tĩnh Kiểm thử chấp nhận Đặc tả chức năng/ Thiết kế lơ gíc Kiểm thử hệ thống Thiết kế Vật lý Kiểm tích hợp Cấu trúc CT đặc tả mơđun Kiểm hồi quy • Kiểm thử bàn hay Kiểm thử tĩnh: giấy bút bàn, kiểm tra logic, lần chi tiết sau lập trình xong • Đi xun suốt (walk through) • Thanh tra (inspection) Kiểm ĐVCT Mã hố mơđun CT HUT, Falt of IT Dept of SE, 2001 SE-V.7 • Gỡ lỗi máy (machine debug) hay kiểm thử động: Dùng máy chạy chương trình để điều tra trạng thái động tác chương trình • bước trình tự kiểm thử máy Dept of SE, 2001 SE-V.9 Trình tự kiểm thử máy (tiếp) (5) Nhập liệu thiết kế cho trường hợp kiểm thử (6) Điều chỉnh môi trường thực môđun tải (tạo thủ tục đưa tệp truy cập tệp vào chương trình) (7) Thực mơđun tải ghi nhận kết (8) Xác nhận kết với kết kỳ vọng (9) Lặp lại thao tác (5)-(8) HUT, Falt of IT Dept of SE, 2001 Dept of SE, 2001 SE-V.8 Trình tự kiểm thử máy Kiểm thử máy HUT, Falt of IT HUT, Falt of IT SE-V.11 (1) Thiết kế trường hợp thử theo thử bàn (2) Trường hợp thử phải có kết kỳ vọng thu (3) Dịch chương trình nguồn tạo môđun tải để thực (4) Khi trường hợp thử có xử lý tệp vào-ra, phải làm trước bàn việc xác định miền tệp HUT, Falt of IT Dept of SE, 2001 SE-V.10 9.3 Kỹ thuật thiết kế trường hợp thử • Kỹ thuật thiết kế trường hợp thử dựa đặc tả bề chương trình: Kiểm thử hộp đen (Black box test): WHAT ? • Kỹ thuật thiết kế trường hợp thử dựa đặc tả bên chương trình: Kiểm thử hộp trắng (white box test): HOW ? • Kiểm thử Top-Down hay Bottom-Up HUT, Falt of IT Dept of SE, 2001 SE-V.12 Phương pháp phân đoạn tương đương (Equivalence Partition) Kiểm thử hộp đen • Mục đích: giảm số lượng test cách chọn tập liệu đại diện • Thực hiện: Chia kiệu vào thành đoạn, đoạn đại diện cho số liệu => việc kiểm thử thực đại diện • ưu điểm: Test theo mức trừu tượng trường áp dụng: hình, menu hay mức trình • Phân đoạn tương đương • Phân tích giá trị biên • Đốn lỗi Input Results Black Box Black box Data Testing Strategy Dept of SE, 2001 HUT, Falt of IT SE-V.13 Dept of SE, 2001 HUT, Falt of IT Phương pháp phân tích giá trị biên (Boundary value analysis) Phương pháp đốn lỗi (Error Guessing) • Là trường hợp riêng phân đoạn • Thí dụ: miền liệu tháng giá trị hay >12 khơng hợp lệ • Thường sử dụng kiểm thử môđun Dept of SE, 2001 HUT, Falt of IT SE-V.15 • Dựa vào trực giác kinh nghiệm • Thí dụ lỗi chia cho Nếu mơđun có phép chia phải kiểm thử lỗi • Nhược điểm: không phát hết lỗi Dept of SE, 2001 HUT, Falt of IT Phương pháp đồ thị nguyên nhân - kết (Cause-effect Graphing) Mã Phủ định and Or Do Until SE-V.14 SE-V.16 Kiểm thử hộp trắng • • • • Bó lệnh Bó rẽ nhánh Bó điều kiện Bó điều kiện - rẽ nhánh Input Results White Box Data Testing Strategy HUT, Falt of IT Dept of SE, 2001 SE-V.17 HUT, Falt of IT Dept of SE, 2001 SE-V.18 9.4 Kỹ thuật kiểm thử mơđun Trình tự thiết kế • Kiểm thử mơđun • Kiểm thử tích hợp - Kiểm thử tích hợp xuống - Kiểm thử tích hợp lên - Kiểm thử hồi qui HUT, Falt of IT Dept of SE, 2001 • Kiểm thử tích hợp mơđun – Kiểm thử lên (Bottom-up Test) – Kiểm thử xuống (Top-down Test) – Kiểm thử cột trụ (Big bung Test) – Kiểm thử kẹp (Sandwich Test) SE-V.19 HUT, Falt of IT Bottom-up Test Dept of SE, 2001 SE-V.20 Bottom-up Test (Tiếp) • Các mơđun mức thấp tổ hợp vào chùm thực chức • Viết trình điều khiển phối hợp vào/ kiểm thử • Kiểm thử chùm/bó • Loại bỏ trình điều khiển chuyển lên mức Mức Mức Mức Mức HUT, Falt of IT Dept of SE, 2001 SE-V.21 HUT, Falt of IT Top-down Test Dept of SE, 2001 SE-V.23 SE-V.22 Top-down Test (tiếp) • Mơđun điều khiển dùng trình điều khiển kiểm thử, gắn nút trực tiếp vào • Thay nút mơđun thực (theo chiều sâu / ngang) • Kiểm thử mơđun gắn vào • Các nút thử xong thử tiếp nút khác • Kiểm thử hồi quy HUT, Falt of IT Dept of SE, 2001 Mức Mức Mức Mức HUT, Falt of IT Dept of SE, 2001 SE-V.24 Big bung Test • • • • Sandwich Test Tích hợp khơng tăng dần Tất các môđun tổ hợp trước Tồn chương trình kiểm thử tổng thể Khó khăn: khó lập lỗi, chữa xong lỗi lỗi lại phát sinh Dept of SE, 2001 HUT, Falt of IT SE-V.25 • Tích hợp xuống cho mức cấu trúc chương trình • Tích hợp lên cho mức phụ thuộc HUT, Falt of IT Kiểm thử hệ thống • Kiểm thử phục hồi: bắt buộc phần mềm hỏng nhiều cách để kiểm chứng phục hồi • Kiểm thử an tồn: kiểm chứng chế bảo vệ • Kiểm thử gay cấn • Kiểm thử hiệu Dept of SE, 2001 HUT, Falt of IT SE-V.27 10.1 Bảo trì gì? 10.2 Trình tự nghiệp vụ bảo trì 10.3 Những vấn đề bảo trì HUT, Falt of IT Dept of SE, 2001 SE-V.28 Bảo trì để tu sửa • Định nghĩa: Bảo trì cơng việc tu sửa, thay đổi phần mềm phát triển (chương trình, liệu, JCL, loại tư liệu đặc tả, ) theo lý • Các hình thái bảo trì: bảo trì để • Là bảo trì khắc phục khiếm khuyết có phần mềm • Một số nguyên nhân điển hình – Kỹ sư phần mềm khách hiểu nhầm – Lỗi tiềm ẩn phần mềm sơ ý lập trình kiểm thử chưa bao quát hết – Vấn đề tính phần mềm: khơng đáp ứng yêu cầu nhớ, tệp, Thiết kế sai, biên tập sai – Thiếu chuẩn hóa phát triển phần mềm (trước đó) – Tu chỉnh – Thích hợp – Cải tiến – Phịng ngừa Dept of SE, 2001 SE-V.26 Chương 10: Phương pháp bảo trì Maintenance Methods 10.1 Bảo trì gì? HUT, Falt of IT Dept of SE, 2001 SE-V.29 HUT, Falt of IT Dept of SE, 2001 SE-V.30 Bảo trì để tu sửa (tiếp) Bảo trì để thích hợp • Kỹ nghệ ngược (Reverse Engineering): dò lại thiết kế để tu sửa • Những lưu ý – Mức trừu tượng – Tính đầy đủ – Tính tương tác – Tính định hướng HUT, Falt of IT • Là tu chỉnh phần mềm theo thay đổi mơi trường bên ngồi nhằm trì quản lý phần mềm theo vịng đời • Thay đổi phần mềm thích nghi với môi trường: công nghệ phần cứng, môi trường phần mềm • Những ngun nhân chính: – Thay đổi phần cứng (ngoại vi, máy chủ, .) – Thay đổi phần mềm (môi trường): đổi OS – Thay đổi cấu trúc tệp mở rộng CSDL Dept of SE, 2001 SE-V.31 HUT, Falt of IT Bảo trì để cải tiến – Do muốn nâng cao hiệu suất nên thường hay cải tiến phương thức truy cập tệp – Mở rộng thêm chức cho hệ thống – Cải tiến quản lý kéo theo cải tiến tư liệu vận hành trình tự cơng việc – Thay đổi người dùng thay đổi thao tác Dept of SE, 2001 SE-V.33 Bảo trì để phịng ngừa Dept of SE, 2001 • Cịn gọi tái kỹ nghệ (re-engineering) • Mục đích: đưa thiết kế chức có chất lượng cao • Các bước thực hiện: – – – – Xây dựng lưu đồ phần mềm Suy dẫn biểu thức Bun cho dãy xử lý Biên dịch bảng chân lí Tái cấu trúc phần mềm HUT, Falt of IT Dept of SE, 2001 SE-V.34 Bảo trì để phịng ngừa (tiếp) • Là cơng việc tu chỉnh chương trình có tính đến tương lai phần mềm mở rộng thay đổi • Thực thiết kế phần mềm phải tính đến tính mở rộng nó, nên thực tế ta gặp bảo trì phòng ngừa phần mềm thiết kế tốt HUT, Falt of IT SE-V.32 Bảo trì để cải tiến (tiếp) • Là việc tu chỉnh hệ phần mềm theo yêu cầu ngày hoàn thiện hơn, đầy đủ hơn, hợp lý • Những ngun nhân chính: HUT, Falt of IT Dept of SE, 2001 SE-V.35 • Mục đích: sửa đổi để thích hợp với yêu cầu thay đổi có người dùng • Thực thay đổi thiết kế khơng tường minh • Hiểu hoạt động bên chương trình • Thiết kế / lập trình lại • Sử dụng cơng cụ CASE HUT, Falt of IT Dept of SE, 2001 SE-V.36 10.2 Trình tự nghiệp vụ bảo trì Sơ đồ bảo trì • Quy trình bảo trì ? Đó q trình vịng đời phần mềm, tn theo pha phân tích, thiết kế, phát triển kiểm thử từ phát sinh vấn đề giải xong Hiểu phần mềm có Loại bảo trì? Phát triển phần mềm Chỉnh phần mềm có • Thao tác bảo trì: Gồm loại – Tu chỉnh cải có (loại 1) – Thêm (loại 2) Kiểm thử tính quán Kiểm thử sau bảo trì Tạo biểu quản lý bảo trì HUT, Falt of IT Dept of SE, 2001 SE-V.37 HUT, Falt of IT Hiểu phần mềm có Dept of SE, 2001 SE-V.38 Tu sửa phần mềm có • Theo tài liệu nắm chức • Theo tài liệu chi tiết nắm vững đặc tả chi tiết, điều kiện kiểm thử, • Dị đọc chương trình nguồn, hiểu trình tự xử lý chi tiết hệ thống • Bảo trì chương trình nguồn, tạo mơđun dịch lại • Thực kiểm thử unit tu chỉnh mục liên quan có tư liệu đặc tả • Chú ý theo sát tác động môđun sửa đến thành phần khác hệ thống việc công việc thực thi bàn HUT, Falt of IT Dept of SE, 2001 SE-V.39 • Khi thêm chức phải phát triển chương trình cho phù hợp với yêu cầu • Cần tiến hành từ thiết kế, lập trình, gỡ lỗi kiểm thử unit • Phản ảnh vào giao diện phần mềm (thông báo, phiên bản, ) Dept of SE, 2001 Dept of SE, 2001 SE-V.40 Kiểm chứng tính quán kiểm thử kết hợp Phát triển phần mềm HUT, Falt of IT HUT, Falt of IT SE-V.41 • Đưa đơn vị (unit) dược kiểm thử vào hoạt động hệ thống • Điều chỉnh tương tích mơđun • Dùng liệu trước kiểm thử để kiểm thử lại tính qn • Chú ý hiệu ứng sóng chỉnh sửa HUT, Falt of IT Dept of SE, 2001 SE-V.42 Kiểm tra hồn thành bảo trì • Kiểm tra nội dung mơ tả có tư liệu đặc tả • Cách ghi tư liệu có phù hợp với mơ tả môi trường phần mềm hay không ? HUT, Falt of IT Dept of SE, 2001 SE-V.43 Lập biểu quản lý bảo trì • Cần quản lý tình trạng bảo trì • Lập biểu quản lý tình trạng bảo trì – Ngày tháng, – Nguyên nhân – Tóm tắt cách khắc phục – Chi tiết khắc phục, hiệu ứng sóng – Người làm bảo trì – Số cơng HUT, Falt of IT HUT, Falt of IT Dept of SE, 2001 SE-V.45 Sáng kiến quy trình bảo trì phần mềm Dept of SE, 2001 (1) Chuẩn hóa khâu phát triển phần mềm (2) Người bảo trì chủ chốt tham gia vào giai đoạn phân tích thiết kế (3) Thiết kế để dễ bảo trì HUT, Falt of IT Dept of SE, 2001 SE-V.46 Phát triển kỹ thuật cho bảo trì (1) Sử dụng công cụ hỗ trợ phát triển phần mềm (2) Chuẩn hóa thao tác bảo trì thiết bị mơi trường bảo trì (3) Lưu lại thơng tin sử bảo trì (4) Dự án nên cử người chủ chốt làm cơng việc bảo trì sau dự án kết thưc giai đoạn phát triển HUT, Falt of IT SE-V.44 Sáng kiến quy trình phát triển phần mềm 10.3 Những vấn đề lưu ý để bảo trì Phương pháp cải tiến thao tác bảo trì: • Sáng kiến quy trình phát triển phần mềm • Sáng kiến quy trình bảo trì phần mềm • Phát triển kỹ thuật cho bảo trì Dept of SE, 2001 SE-V.47 • Cơng cụ phần mềm hỗ trợ bảo trì • Cơ sở liệu cho bảo trì • Quản lý tài liệu, quản lý liệu, quản lý chương trình nguồn, quản lý liệu thử, quản lý sử bảo trì • Trạm bảo trì tính cao hệ thống mạng lưới bảo trì với máy chủ thông minh HUT, Falt of IT Dept of SE, 2001 SE-V.48 ... Kiểm thử tích hợp xuống - Kiểm thử tích hợp lên - Kiểm thử hồi qui HUT, Falt of IT Dept of SE, 2001 • Kiểm thử tích hợp mơđun – Kiểm thử lên (Bottom-up Test) – Kiểm thử xuống (Top-down Test) – Kiểm. .. kiến quy trình phát triển phần mềm 10.3 Những vấn đề lưu ý để bảo trì Phương pháp cải tiến thao tác bảo trì: • Sáng kiến quy trình phát triển phần mềm • Sáng kiến quy trình bảo trì phần mềm • Phát... HUT, Falt of IT Kiểm thử hệ thống • Kiểm thử phục hồi: bắt buộc phần mềm hỏng nhiều cách để kiểm chứng phục hồi • Kiểm thử an tồn: kiểm chứng chế bảo vệ • Kiểm thử gay cấn • Kiểm thử hiệu Dept