NHẬP MÔN CÔNG NGHỆ PHẦN MỀM (INTRODUCTION TO SOFTWARE ENGINEERING) 1 1 Chương 8 Quản lý chất lượng phần mềm • Mô hình V & V • Kiểm thử • Bảo trì 2 2 1 Mô hình V & V • Mô hình V cũng được gọi là – Xác[.]
Chương 8: Quản lý chất lượng phần mềm • Mơ hình V & V • Kiểm thử NHẬP MƠN CƠNG NGHỆ PHẦN MỀM (INTRODUCTION TO SOFTWARE ENGINEERING) co ng c om • Bảo trì an • Mơ hình V gọi Mơ hình V & V du o Mơ hình V & V ng th • Mơ hình V – Xác minh (verification) : Xác minh kỹ thuật phân tích tĩnh Trong kiểm thử, kỹ thuật thực mà khơng phải chạy code Nó bao gồm số hoạt đông xem lại (review), kiểm tra (inspection) kiểm tra từ đầu tới cuối (walkthrough) – Xác nhận (validation): Xác nhận kỹ thuật phân tích động, việc kiểm thử thực cách thực code Ví dụ bao gồm kỹ thuật kiểm tra chức (function) phi chức (nonfunction) cu u – Xác minh (verification) : Xác minh kỹ thuật phân tích tĩnh Trong kiểm thử, kỹ thuật thực mà chạy code Nó bao gồm số hoạt đơng xem lại (review), kiểm tra (inspection) kiểm tra từ đầu tới cuối (walkthrough) – Xác nhận (validation): Xác nhận kỹ thuật phân tích động, việc kiểm thử thực cách thực code Ví dụ bao gồm kỹ thuật kiểm tra chức (function) phi chức (nonfunction) CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 8: Quản lý chất lượng phần mềm Mơ hình V & V • Mơ hình V & V • Kiểm thử co ng c om Khái niệm kiểm thử Phương pháp kiểm thử Kỹ thuật thiết kế trường hợp thử phương pháp kiểm thử Kiểm thử module Kiểm thử hệ thống Kiểm thử chấp nhận an 6 Khó khăn du o Khái niệm kiểm thử ng th • Bảo trì • 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 cu u • 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ã nguồn • Dễ bị ảnh hưởng tâm lý kiểm thử • Khó đảm bảo tính đầy đủ kiểm thử • Kiểm thử thành công phát lỗi; kiểm thử không phát lỗi kiểm thử dở 7 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt Tương ứng vòng đời dự án kiểm thử Lưu ý kiểm thử Đối tượng phạm vi 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 thử tích hợp Cấu trúc chương trình đặc tả module Kiểm thử đơn vị chương trình co ng c om Chất lượng phần mềm khâu thiết kế định chủ yếu, khơng phải khâu kiểm thử Tính dễ kiểm thử phụ thuộc vào cấu trúc chương trình Người kiểm thử người phát triển nên khác 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 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ó 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 an Mã hố module chương trình 10 10 Kiểm thử máy du o Phương pháp kiểm thử ng th Kiểm thử hồi quy • 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: cu u Kiểm thử tĩnh • Kiểm thử bàn: giấy bút bàn, kiểm tra logic, lần chi tiết sau lập trình xong • Đi xuyên suốt (walk through) • Thanh tra (inspection) 11 11 12 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt begin Begin tự kiểm thử y >= 0máy yes if ( y >= Trình 0) 0; hợp thử y =kế0cho 1.then Thiếtykế= trường Nhập liệu thiết trường hợp kiểm thử abs = y;theo thử bàn abs môi = ytrường thực Trường hợp thử phải có Điều chỉnh thu module tải (tạo thủ tục end; kết kỳ vọng test case-1: 2001-10-10 no đưa tệp truy cập tệp vào Dịch chương trình nguồn tạo module tải để thựcinput: y = chương trình) 7.result: Thực0hiện module tải ghi Khi trường hợp thử cóexpected xử lý tệp vào-ra, phải làm trước actual result:nhận ? kết bàn việc xác định miền Xác nhận kết với kết PUM-I, Mariam Kamkar, IDA tệp kỳ vọng Lặp lại thao tác (5)-(8) yes yes z=foo (x,y) Test case-1: co 2001-10-10 an 13 input: y = test case-2: test end; case-1: y = 0result: 0input: x = 12, y = 12 input: x =input: -4,expected y = 30 test case-1: test case-2: actual expected result: result: ? expected result: expected-result: input: x = -4, y = 30 input: x = 12, y = 12 actual result: ? Kamkar, IDA actual result: ? PUM-I, Mariam expected result: expected result: actual result: ? actual result: ? actual result: ? 2001-10-10 PUM-I, Mariam Kamkar, IDA 14 2001-10-10 14 PUM-I, Mariam Kamkar, IDA Branch Coverage du o Ví dụ: Branch coverage ng th 13 begin u y >= no cu Begin if ( yBegin >= 0) If (y >= 0) thenthen y =y = 0; 0; Abs = y; abs =End; y; end; begin c om Begin Begin Begin Begin x=&& if If((yyif>=>= ( x < 0) 10 && y > 20) { yes x20 if ( x < 10 && y > 20) { && Abs = y; then y = 0; y = 0y>20 End;z = foo (x,y); else z =fie (x,y); z=fie (x,y) z=foo (x,y) abs = y; z = foo (x,y); else z =fie (x,y); abs = y } z=fie (x,y) end;end; } test case-1: ng Statement Coverage Ví dụ: Statement coverage / Branch Coverage Branch Coverage Ví dụ:Condition Condition/branch coverage Condition / Branch Coverage Begin Begin Begin if ( x < 10 && y > 20) { yes begin y=0 yes Testcase-2: case-2: Test testcase-1: case-1: test input: input: input: yy==-5-5 input: y =y0= expected result: expected result: 55 expected-result: expected-result: actual result: ? actual result: ? actual result: ? actual result: ? 2001-10-10 PUM-I, Mariam Kamkar, IDA test-case-1: t t x20 test case-1: test-case:2 t f test case-2: input: y =f0 input: y = -5 test-case-3: test-case-1: t t t expected result: 0f expected result: test-case-4 f test-case:2 t f actual result: ? actual result: ? 2001-10-10 PUM-I, Mariam Kamkar, IDA 2001-10-10 15 test-case-3: f t PUM-I, Mariam Kamkar, IDA test-case-4 f f 2001-10-10 PUM-I, Mariam Kamkar, IDA 16 CuuDuongThanCong.com yes no abs = y 15 no x < 10 10 &&Begin y > 20) if If((xy< >= 0) z = foo (x,y); else z =fie (x,y); > 20 yes z = foo(x,y);if ( x < 10 && y > 20) { y >= no xy yes < 10 Else} then y = 0; z = foo (x,y); else z =fie (x,y);no no y = (x,y) y > 20 z=fie (x,y) z=foo absz =end; =fie(x,y); y; } End; yes x20 end; abs = y(x,y) end; z=fie z=foo (x,y) - https://fb.com/tailieudientucntt 16 Kỹ thuật thiết kế trường hợp thử phương pháp kiểm thử 3.1 Kiểm thử hộp đen • Kỹ thuật thiết kế trường hợp thử dựa đặc tả bề ngồi 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 ? • Phân đoạn tương đương • Phân tích giá trị biên c om • Đốn lỗi • Và số kỹ thuật khác Đầu vào Hộp đen Chiến lược kiểm tra liệu hộp đen co ng • Kiểm thử Top-Down hay Bottom-Up Kết an 17 18 th 17 18 b Phương pháp phân tích giá trị biên (Boundary value analysis) du o ng a Phương pháp phân đoạn tương đương (Equivalence Partition) • 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 q trình • Ví dụ: cu u • 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ử module 19 19 20 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt c Phương pháp đoán lỗi (Error Guessing) d Phương pháp đồ thị nguyên nhân kết (Cause-effect Graphing) • Dựa vào trực giác kinh nghiệm • Thí dụ lỗi chia cho Nếu module có phép chia phải kiểm thử lỗi SEQUENCE c om AND NOT • Nhược điểm: khơng phát hết lỗi DO UNTIL co ng OR an 21 22 Kiểm thử hộp trắng (tiếp) du o 3.2 Kiểm thử hộp trắng ng th 21 22 • Người KSPM đảm bảo: • Là phương pháp kiểm thử dựa vào cấu trúc điều khiển thủ tục để thiết kế trường hợp kiểm thử cu u – Kiểm tra tất lộ trình độc lập bên mơ đun lần – Kiểm tra tất nhánh đúng/sai lựa chọn – Kiểm tra việc thực vòng lặp biên bên vòng lặp – Kiểm tra cấu trúc liệu để đảm bảo tính hợp thức Đầu vào hh Kết • Các kỹ thuật: hh – Kiểm thử theo lộ trình (Basis path testing) – Kiểm thử theo cấu trúc điều khiển Chiến lược kiểm tra liệu hộp trắng 23 23 24 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt a Kiểm thử theo lộ trình Ví dụ: lưu đồ khối chương trình • Là kỹ thuật Tom McCabe đề xuất cho phép nhà kiểm thử tiến hành số đo độ phức tạp lô gic thủ tục số đo sử dụng để giúp cho việc định nghĩa lộ trình cho lệnh chương trình thực lần q trình kiểm thử • Sử dụng Ký pháp đồ hoạ luồng/ đồ thị chương trình: c om 11 – Mỗi nút đồ thị biểu diễn lệnh/ dãy lệnh liên tiếp – Cung đồ thị biểu diễn luồng điều kiện (trình tự thực hiện) co ng an 25 10 26 26 cu • Một cung phải kết thúc nút (có thể nút khơng tương ứng với lệnh thủ tục) • Vùng bao cung nút gọi Region (khi tính, ta phải tính vùng bao ngồi) • Thí dụ đồ thị chương trình slide trước gồm vùng (các số in nghiêng) • Với điều kiện phức tạp (nhiều phép so sánh) so sánh lại tách thành nút riêng • Thí dụ: If a OR b then X else Y Endif u 2, Chú ý du o Ví dụ: Đồ thị chương trình ng th 25 4, 10 11 27 27 28 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... 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 cu u • 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)... trúc chương trình đặc tả module Kiểm thử đơn vị chương trình co ng c om Chất lượng phần mềm khâu thiết kế định chủ yếu, khơng phải khâu kiểm thử Tính dễ kiểm thử phụ thuộc vào cấu trúc chương. . .Chương 8: Quản lý chất lượng phần mềm Mô hình V & V • Mơ hình V & V • Kiểm thử co ng c om Khái niệm kiểm thử Phương