Nhập môn công nghệ phần mềm
Kiểm thử phần mềm I Tổng quan 1.Khái niệm: Kiểm thử khâu điển hình rà sốt đặc tả thiết kế & lập mã kiểm thử phần mềm theo GlenMyers: Là trình vận hành chương trình để tìm lỗi Cần vận hành để hiệu suất tìm lỗi cao ? chí phí (thời gian, cơng sức) nhất? I.2.Lý Muốn nhìn thấy phần mềm phần tử hệ thống hoạt động (xem sản phẩm) Hạn chế chi phí phải trả cho thất bại lỗi gây sau (hiệu quả) Có kế hoạch tốt nâng cao chất lượng cho suốt trình phát triển (giải pháp) I.3.Vai trị Chi phí kiểm thử chiếm: 40% tổng công sức phát triển ≥ 30% tổng thời gian phát triển Với phần mềm có ảnh hưởng tới sinh mạng, chi phí gấp từ đến lần tổng chi phí khác cộng lại Kiếm thử tốt sẽ: Giảm chi phí phát triển Tăng độ tin cậy sản phẩm phần mềm I.4.Mục tiêu Mục tiêu trước mắt: cố gắng tạo ca kiểm thử để lỗi phần mềm xây dựng (tức “đánh đổ” phần mềm) Nghe mang tính “phá hoại”, => dễ gây vấn đề tâm lý Mục đích cuối cùng: có chương trình tốt, chi phí => xây dựng I.5.Lợi ích Một ca kiểm thử thắng lợi làm lộ khiếm khuyết, đồng thời mang lại lợi ích phụ: Thuyết minh chức phần mềm tương ứng với đặc tả (xác minh), Yêu cầu thực thi phù hợp (thẩm định), Cung cấp thêm số độ tin cậy số chất lượng phần mềm nói chung (thẩm định) Tuy nhiên, kiểm thử khơng thể khẳng định phầnmềm khơng có khiếm khuyết I.6.Tiến trình kiểm thử I.7.Các loại hình kiểm thử Kiểm thử đơn vị (unit testing) Kiểm thử tích hợp (integration testing) Kiểm thử hệ thống (system testing) Kiểm thử phục hồi (recovery testing) Kiểm thử áp lực (stress testing) Kiểm thử thi hành (performance testing) Kiểm thử an ninh (security testing) Kiểm thử chấp nhận (aceptance testing) Kiểm thử alpha (alpha testing) Người phát triển thực Trong môi trường quản lý Kiểm thử beta (beta testing) Người dùng thực Trong môi trường thực I.8.Các phương pháp chiến lược Hai phương pháp phổ biến: Kiểm thử hộp trắng (white box) Kiểm thử hộp đen (black box) Các chiến lược Kiểm thử Với loại kiểm thử thường sử dụng phương pháp chiến lược thích hợp Một số chiến lược: Kiểm thử từ xuống/dưới lên (tích hợp) Kiểm thử vụ nổ lớn (big bang –tích hợp) Kiểm thử hồi quy (q trình tích hợp) Kiểm thử luồn sợi (hệ thời gian thực) I.9.Ca kiểm thử Mục tiêu thiết kế ca kiểm thử nhằm: tìm nhiều sai với nỗ lực & thời gian nhỏ Trong thập kỷ 80-90 nghiên cứu nhiều loại phương pháp thiết kế ca kiểm thử Các phương pháp tốt phải cho chế: bảo đảm tính đầy đủ (khơng sót phần nào) cung cấp khả thật phát sai phần mềm V.Chiến lược kiểm thử Một chiến lược kiểm thử phần mềm tích hợp kỹ thuật thiết kế ca kiểm thử tạo thành kế hoạch gồm dãy bước để hướng dẫn q trình kiểm thử phần mềm thành cơng Nó đưa đồ đường để: Nhà phát triển tổ chức bảo đảm chất lượng Khách hàng: biết phần việc kiểm thử với công sức, thời gian nguồn lực cần thiết V.1.Yêu cầu chiến lược kiểm thử Phải tích hợp việc lập kế hoạch thử nghiệm, việc thiết kế ca kiểm thử, việc tiến hành kiểm thử việc thu thập đánh giá thông tin kết Phải đủ mềm dẻo để cổ vũ óc sáng tạo việc theo ý khách hàng (mà tất hệ thống lớn dựa máy tính cần kiểm thử tương xứng) Kiểm thử tập hoạt động lập kế hoạch trước tiến hành cách có hệ thống Chính mà cần xác định khuôn mẫu (template) kiểm thử phần mềm tiến trình kỹ nghệ phần mềm V.2.Đặc trưng Các đặc trưng có tính khn mẫu: Bắt đầu mức môđun tiếp tục tích hợp mức hệ thống dựa máy tính trọn vẹn Các kỹ thuật kiểm thử khác thích hợp cho thời điểm khác Được người phát triển nhóm kiểm thử độc lập tiến hành kiểm thử trước gỡ lỗi, song việc gỡ lỗi phải thích ứng với chiến lược kiểm thử VII.Tổ chức kiểm thử Kiểm thử phần mềm phần hoạt động lớn “xác minh thẩm định”: Xác minh tập hợp hoạt động để bảo đảm phần mềm thực chức đặc tả Thẩm định tập hợp hoạt động để bảo đảm phần mềm đáp ứng yêu cầu khách hàng VII.1 Tiến trình kiểm thử Tiến trình kiểm thử theo sát tiến trình phát triển (chẳng hạn tiến trình xoắn ốc) Tiến trình kiểm thử thông thường VII.2 Đối tượng phương pháp VII.3 Kiểm thử đơn vị kiểm thử đơn vị có nội dung sau : kiểm thử giao diện khám nghiệm cấu trúc liệu cục kiểm thử với điều kiện biên Các đường Độc lập Các đường xử lý sai VII.4 Kiểm thử tích hợp Kiểm thử tích hợp (integration testing) nhằm nhận phần hay toàn hệ thống mong đợi Khi tích hợp thành phần gặp sai: Dữ liệu bị qua giao diện hiệu ứng bất lợi mơđun vơ tình gây đối môđun khác Sự kết hợp chức phụ khơng sinh chức mong muốn Sự phóng đại sai sót riêng rẽ bị đến mức không chấp nhận Vấn đề cấu trúc liệu tồn cục để lộ VII.4 Kiểm thử tích hợp Kiểm thử tích hợp (integration testing) nhằm nhận phần hay tồn hệ thống mong đợi Khi tích hợp thành phần gặp sai: Dữ liệu bị qua giao diện hiệu ứng bất lợi môđun vơ tình gây đối mơđun khác Sự kết hợp chức phụ khơng sinh chức mong muốn Sự phóng đại sai sót riêng rẽ bị đến mức khơng chấp nhận Vấn đề cấu trúc liệu toàn cục để lộ VII.4 Kiểm thử tích hợp (t) kiểm thử tích hợp lỹ thuật có tính hệ thống để xây dựng cấu trúc chương trình (ngay tiến hành kiểm thử để phát sai liên kết với giao diện) Mục đích tận dụng mơđun kiểm thử đơn vị xây dựng cấu trúc chương trình cho đảm bảo tuân theo thiết kế Có hai hướng tích hợp chương trình Tích hợp dần Tích hợp đồng thời lúc: “big bang” VII.5 Kiểm thử thẩm định Khi kết thúc kiểm thử tích hợp, phần mềm hồn tồn lắp ráp gói, sai giao diện chỉnh sửa, loạt kiểm thử phần mềm cuối bắt đầu - kiểm thử thẩm định (validation testing) Thẩm định thắng lợi chức phần mềm chừng mức thoả mãn mongđợi hợp lý người đặt hàng Mục tiêu thẩm định: xem phần mềm có đáp ứng yêu cầu khách hàng không? VII.5 Kiểm thử thẩm định (t) Cái “mong đợi hợp lý” khách hàng xác định Đặc tả yêu cầu phần mềm bao gồm mô tả gọi tiêu chuẩn kiểm thử phần mềm Thẩm định phần mềm thực thông qua loạt kiểm thử hộp đen để thuyết minh phù hợp với yêu cầu Gồm chiến lược kiểm thử Alpha Beta kiểm thử alpha bên phát triển tiến hành Phần mềm người dùng dùng bối cảnh tự nhiên để người phát triển “nhòm qua vai” người sử dụng báo cáo sai vấn đề sử dụng (vì gọi kiểm thử sau lưng) kiểm thử bêta nhiều người đặt hàng tiến hành, khơng có mặt Người phát triển VII.6 Kiểm thử hệ thống Hệ thống dựa vào máy tính nhiều bên xây dựng, người phát triển phần mềm Việc kiểm thử hệ thống dễ có nguy “đổ lỗi cho nhau” Người phát triển phần mềm cần đốn trước vấn đề giao diện nảy ra, Phát thiết kế đường xử lý sai thông qua kiểm thử tất thông tin đến từ phần tử khác hệ thống VII.6 Kiểm thử hệ thống (t) Tiến hành kiểm thử mô liệu xấu sai tiềm tàng khác giao diện phần mềm Báo cáo kết kiểm thử để làm chứng phòng ngừa đổ lỗi cho Những người tham gia vào việc hoạch định vàthiết kế kiểm thử hệ thống cho kế hoạch vàkiểm thử bảo đảm phần mềm kiểm thử đầy đủ Các chiến lược: Kiểm thử phục hồi, kiểm thử an ninh, kiểm thử áp lực, kiểm thử thi hành VII.7 Kiểm thử chấp nhận Là minh chứng cuối đắn đặc điểm phần mềm Được viết khách hàng, Được viết phối hợp khách hàng nhóm phát triển phần mềm mục đích chung Hai hoạt động kiểm thử alpha kiểm thử beta