Bài giảng Kiểm thử phần mềm

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) Kiểm thử beta (beta testing)

ppt46 trang | Chia sẻ: haohao89 | Lượt xem: 2325 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Kiểm thử phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KIỂM THỬ PHẦN MỀM I. TỔNG QUAN 1. Khái niệm: Kiểm thử phần mềm là xây dựng một cách có chủ đích những tập dữ liệu và dãy các thao tác nhằm đánh giá một số hoặc toàn bộ các tiêu chuẩn của sản phẩm phần mềm Kiểm thử phần mềm là một hoạt động được thực hiện xuyên suốt toàn bộ quá trình phát triển phần mềm 2 . Lý do Kiểm thử để hợp thức hóa : Hạn chế chi phí phải trả cho các thất bại do lỗi gây ra sau này Có kế hoạch tốt nâng cao chất lượng cho suốt quá trình phát triển I. TỔNG QUAN (t) 3. Vai trò Chi phí của 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 các phần mềm có ảnh hưởng tới sinh mạng, chi phí có thể gấp từ 3 đến 5 lần tổng các 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 của sản phẩm phần mềm I. TỔNG QUAN (t) 4. Mục tiêu : Mục tiêu của kiểm thử phần mềm là tìm ra lỗi (nếu có) với chi phí thấp nhất Kiểm định phần mềm giúp : Phát hiện lỗi trong chương trình nếu có Chứng minh được PM đã hoạt động đúng như thiết kế Chứng minh được PM đã đáp ứng được yêu cầu của người dùng I. TỔNG QUAN (t) 5. Lợi ích Một ca kiểm thử thắng lợi làm lộ ra khiếm khuyết, đồng thời mang lại các lợi ích phụ: Thuyết minh rằng các chức năng phần mềm tương ứng với đặc tả (xác minh), Yêu cầu thực thi là phù hợp (thẩm định), Cung cấp thêm các chỉ số độ tin cậy và chỉ số chất lượng phần mềm nói chung (thẩm định). I. TỔNG QUAN (t) 6. Tiến trình kiểm thử I. TỔNG QUAN (t) 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) Kiểm thử beta (beta testing) I. TỔNG QUAN (t) 8. Các phương pháp và 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 mỗi loại kiểm thử thường sử dụng các phương pháp và chiến lược thích hợp. Một số chiến lược: Kiểm thử từ trên 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 (quá trình tích hợp) Kiểm thử luồn sợi (hệ thời gian thực) I. TỔNG QUAN (t) II. KIỂM THỬ HỘP TRẮNG 1. Khái niệm kiểm thử hộp trắng (White Box) Thực hiện trực tiếp trên mã nguồn Kiểm thử hộp trắng là kỹ thuật đi vào cấu trúc bên trong của hệ thống hay thành phần. Nội dung khám xét : Các chi tiết thủ tục Các con đường logic Các trạng thái của chương trình. 2. Đối tượng kiểm thử hộp trắng Cách thức: Sử dụng cấu trúc điều khiển của thiết kế thủ tục để hình thành các ca kiểm thử Kiểm thử cái gì ? Mọi lệnh được thực hiện Mọi điều kiện được kiểm tra Mọi chu trình được duyệt qua Mọi cấu trúc dữ liệu được dùng Mọi tiến trình từ đầu đến khi kết thúc II. KIỂM THỬ HỘP TRẮNG (t) 3. Yêu cầu kiểm thử hộp trắng Yêu cầu đặt ra: Mọi con đường độc lập trong một môđun cần được thực hiện ít nhất một lần. Mọi ràng buộc logic Tất cả các vòng lặp Mọi cấu trúc dữ liệu nội tại II. KIỂM THỬ HỘP TRẮNG (t) 4. Các kỹ thuật sử dụng : Đồ thị dòng Ma trận kiểm thử Điều kiện logic Điều khiển theo dòng dữ liệu Các cấu trúc chu trình II. KIỂM THỬ HỘP TRẮNG (t) Kỹ thuật đồ thị dòng Là một kỹ thuật dựa trên cấu trúc điều khiển của chương trình Nhận được từ đồ thị luồng điều khiển bằng cách : Gộp các lệnh tuần tự liên tiếp và lệnh rẽ nhánh sau nó thành 1 nút Thay lệnh rẽ nhánh (độc lập) hay điểm hợp nhất của các đường rẽ nhánh bằng một nút tự vị II. KIỂM THỬ HỘP TRẮNG (t) Kỹ thuật đồ thị dòng Các cấu trúc cơ bản của đồ thị dòng II. KIỂM THỬ HỘP TRẮNG (t) Kỹ thuật đồ thị dòng II. KIỂM THỬ HỘP TRẮNG (t) Kỹ thuật đồ thị dòng Xác định các ca kiểm thử : II. KIỂM THỬ HỘP TRẮNG (t) Xác định các tập đường cơ bản : D1 : 1, 11 D2 : 1, 2-3, 6, 7,9,10,1,… D3: 1, 2-3, 6,8,9,10, 1, … D4: 1, 2-3, 4-5, 10, 1, …. Kỹ thuật đồ thị dòng Xác định các ca kiểm thử : II. KIỂM THỬ HỘP TRẮNG (t) III. KIỂM THỬ HỘP ĐEN 1. Phương pháp kiểm thử Phương pháp kiểm thử hộp đen tập trung vào các yêu cầu chức năng của phần mềm.. Đặc trưng: Nhằm thuyết minh: các chức năng phần mềm đủ & vận hành đúng Thực hiện các phép thử qua giao diện Cơ sở: đặc tả, các điều kiện vào/ra và cấu trúc dữ liệu Ít chú ý tới cấu trúc logic nội tại của nó 2. Mô hình kiểm thử hộp đen 3. Mục tiêu Kiểm thử hộp đen nhằm tìm ra các loại sai: Chức năng thiếu hoặc không đúng đắn. Sai về giao diện. Sai trong cấu trúc hoặc trong truy cập dữ liệu ngoài. Sai thực thi chức năng. Sai khởi đầu hoặc kết thúc mô đun. III. KIỂM THỬ HỘP ĐEN (t) 4. Thiết lập câu hỏi Kiểm thử hộp đen tập trung trả lời các câu hỏi: Hiệu lực chức năng (chức năng, hiệu suất) được kiểm thử đến đâu? Lớp đầu vào nào cho các ca kiểm thử tốt? Sự nhạy cảm của môđun với giá trị vào nào? Các biên của lớp dữ liệu được cô lập chưa? Dung thứ lỗi đối với các nhịp điệu/khối lượng dữ liệu như thế nào? Tổ hợp dữ liệu đặc biệt ảnh hưởng gì đến hoạt động hệ thống. III. KIỂM THỬ HỘP ĐEN (t) 5. Tiêu chuẩn Áp dụng kỹ thuật kiểm thử hộp đen, cần tìm ra các ca kiểm thử thoả mãn các tiêu chuẩn: Thu gọn (ít, đơn giản). Cho biết về sự tồn tại hoặc vắng mặt của một lớp sai (không phải về một sai cụ thể gắn với một kiểm thử riêng biệt) III. KIỂM THỬ HỘP ĐEN (t) 6. Các kỹ thuật kiểm thử hộp đen Phân hoạch tương đương Phân tích giá trị biên Đồ thị nhân quả III. KIỂM THỬ HỘP ĐEN (t) Phân tích giá trị biên Cơ sở : lỗi thường xuất hiện ở gần các giá trị biên của miền dữ liệu Tập trung phân tích các giá trị biên của miền dữ liệu để xây dựng dữ liệu kiểm thử Nguyên tắc : kiểm thử các dữ liệu vào gồm: Giá trị nhỏ nhất Giá trị gần kề lớn hơn giá trị nhỏ nhất Giá trị bình thường Giá trị gần kề nhỏ hơn giá trị lớn nhất Giá trị lớn nhất III. KIỂM THỬ HỘP ĐEN (t) Phân tích giá trị biên III. KIỂM THỬ HỘP ĐEN (t) Phân hoạch tương đương III. KIỂM THỬ HỘP ĐEN (t) Ý tưởng : Chia miền vào chương trình thành các lớp dữ liệu để lập các ca kiểm thử theo các lớp đó Mỗi lớp dùng để kiểm thử một chức năng, gọi là lớp tương đương Đồ thị nhân quả Cung cấp cách biểu diễn chính xác các điều kiện logic và các hành động tương ứng Các bước tiến hành : Lập danh sách nguyên nhân kết quả theo modul Phát triển đồ thị nhân quả Chuyển đồ thị sang bảng kết quả Xây dựng các ca kiểm thử theo luật của bảng III. KIỂM THỬ HỘP ĐEN (t) IV. KIỂM THỬ SO SÁNH Kiểm thử so sánh (comparision testing) còn được gọi là kiểm thử dựa vào nhau (back-to-back testing): Khi triển khai nhiều bản phần mềm từ cùng 1 đặc tả. Kiểm thử hộp đen cho các sản phẩm này được thực hiện với cùng ca kiểm thử & cùng các dữ liệu vào. So sánh các kết quả thu được: nếu có khác biệt nghĩa là có sai trong một sản phẩm nào đó! IV. KIỂM THỬ HỆ THỜI GIAN THỰC Hệ thời gian thực là hệ thống đáp ứng đúng, chính xác các sự kiện của môi trường Mô hình chung: IV. KIỂM THỬ HỆ THỜI GIAN THỰC Chiến lược kiểm thử thời gian thực gồm 4 bước : Kiểm thử tác vụ: Kiểm thử ứng xử: Kiểm thử liên tác : Kiểm thử hệ thống : V. CHIẾN LƯỢC KIỂM THỬ Một chiến lược kiểm thử phần mềm là sự tích hợp các kỹ thuật thiết kế ca kiểm thử tạo thành một kế hoạch gồm dãy các bước để hướng dẫn quá trình kiểm thử phần mềm thành công. Nó đưa ra một bản đồ các đường đi 1. Yêu cầu chiến lược kiểm thử Phải tích hợp được 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ử và việc thu thập và đánh giá các thông tin kết quả. Phải đủ mềm dẻo để cổ vũ óc sáng tạo và việc theo ý khách hàng (mà tất cả các hệ thống lớn dựa trên máy tính đều cần kiểm thử tương xứng). V. CHIẾN LƯỢC KIỂM THỬ (t) 1. Yêu cầu chiến lược kiểm thử (t) Kiểm thử là một tập các hoạt động có thể lập kế hoạch trước và được tiến hành một cách có hệ thống. Chính vì thế mà cần xác định một khuôn mẫu (template) kiểm thử phần mềm trong tiến trình kỹ nghệ phần mềm. V. CHIẾN LƯỢC KIỂM THỬ (t) 2. Đặc trưng Các đặc trưng có tính khuôn mẫu: Bắt đầu ở mức môđun và tiếp tục cho đến khi tích hợp ở mức hệ thống dựa trên máy tính trọn vẹn. Các kỹ thuật kiểm thử khác nhau là thích hợp cho những thời điểm khác nhau. Được cả người phát triển và nhóm kiểm thử độc lập cùng tiến hành. kiểm thử đi trước gỡ lỗi, song việc gỡ lỗi phải thích ứng với từng chiến lược kiểm thử . V. CHIẾN LƯỢC KIỂM THỬ (t) VI. TỔ CHỨC KIỂM THỬ Kiểm thử phần mềm là một phần của hoạt động lớn hơn là “xác minh và thẩm định”: Xác minh là một tập hợp các hoạt động để bảo đảm rằng phần mềm thực hiện đúng chức năng đã được đặc tả Thẩm định là một tập hợp các hoạt động để bảo đảm rằng phần mềm đã được đáp ứng đúng yêu cầu của khách hàng. 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 như tiến trình xoắn ốc). Tiến trình kiểm thử thông thường VI. TỔ CHỨC KIỂM THỬ (t) 2. Đối tượng và phương pháp VI. TỔ CHỨC KIỂM THỬ (t) 3. Kiểm thử đơn vị (unit testing) Là kiểm thử trên các đơn vị chạy độc lập : Để tìm lỗi trong mỗi units, đảm bảo cho các chức năng gắn với unit được thực thi đúng VI. TỔ CHỨC KIỂM THỬ (t) 3. Kiểm thử đơn vị (unit testing) kiểm thử đơn vị có các nội dung sau : Kiểm thử giao diện Khám nghiệm cấu trúc dữ liệu cục bộ. Kiểm thử với các điều kiện biên. Các đường Độc lập. Các đường xử lý sai. VI. TỔ CHỨC KIỂM THỬ (t) 4. Kiểm thử tích hợp Kiểm thử tích hợp (integration testing) Kiểm thử tích hợp nhằm mục đích kiểm tra cách kết hợp các đơn vị chương trình thành một hệ thống. VI. TỔ CHỨC KIỂM THỬ (t) Kiểm thử tích hợp là một kỹ thuật có tính hệ thống để xây dựng cấu trúc chương trình (ngay khi đang tiến hành kiểm thử để phát hiện sai liên kết với giao diện). Mục đích là tận dụng các môđun đã kiểm thử đơn vị và xây dựng cấu trúc chương trình sao cho nó đảm bảo tuân theo thiết kế. VI. TỔ CHỨC KIỂM THỬ (t) Kiểm thử tích hợp từ dưới lên Testing… Kiểm thử tích hợp từ trên xuống 5. Kiểm thử chấp nhận Kiểm thử chấp nhận (aceptance testing) : vận hành hệ thống trong môi trường của người sử dụng Kiểm thử alpha (alpha testing) Người phát triển thực hiện số liệu giả lập Trong môi trường vận hành Kiểm thử beta (beta testing) Người dùng thực hiện số liệu thực Trong môi trường ứng dụng thực VI. TỔ CHỨC KIỂM THỬ (t) 6. Kiểm thử hệ thống Mục đích của kiểm thử hệ thống là kiểm thử 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. System Test bắt đầu khi tất cả các bộ phận của PM đã được tích hợp thành công. Thông thường loại kiểm thử này tốn rất nhiều công sức và thời gian VI. TỔ CHỨC KIỂM THỬ (t) 6. Kiểm thử hệ thống (t) 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ử an ninh (security testing) : VI. TỔ CHỨC KIỂM THỬ (t)