Bài giảng Công nghệ phần mềm - Phần 5: Kiểm thử và bảo trì
I. Kiểm thử
1. Khái niệm kiểm thử
2. Phương pháp thử
3. Kỹ thuật thiết kế trường hợp thử
4. Kiểm thử module
5. Kiểm thử hệ thống
6. Kiểm thử chấp nhận
II. Bảo trì
1 lần. • Lộ trình độc lập? 1 phần của CT bao gồm ít nhất 1 tập lệnh hay 1 điều kiện mới. • Đồ thị CT trên có 4 lộ trình độc lập: 1-11; 1-2-3-4-5- 10-1-11; 1-2-3-6-8-9-10-1-11; 1-2-3-6-7-9-10-1-11 21 Độ phức tạp lặp • Có 3 cách tính độ phức tạp lặp ký hiệu V(G): – V(G) = E – N +2, với E là số cung, N là số nút của G – V(G) = số vùng (region) – V(G) = P +1, với P là số lượng nút Predicat (nút giả định, không có thật). 22 10/20/2011 12 Thí dụ: chương trình viết bằng PDL i = 1 TotalInput = TotalValid = 0 Sum = 0 While value(i) -999 And TotalInput < 100 Do TotalInput = TotalInput +1 If Value(i) >= Minimum And value(i) <= Maximum Then TotalValid = TotalValid +1 Sum = Sum + value(i) Else Skip Endif i = i +1 EndDo If TotalValid > 0 Then Average = Sum / TotalValid Else Average = -999 Endif LastUpdate 8-07 Dept. of SE, 2001 SE-V.23 1 2 3 4 5 6 7 8 9 10 11 12 13 Lời giải • Số lộ trình độc lập (độ phức tạp lặp) = 6 – 1-2-10-11-13; 1-2-10-12-13 – 1-2-3-10-11-13; 1-2-3-4-5-8-9-2 … – 1-2-3-4-5-6-8-9-2…; 1-2-3-4-5-6-7-8-9-2… – …: có nghĩa là phần tiếp theo còn lại đồ thị là chấp nhận được. • Đồ thị chương trình ? • Số test phải thực hiện: 6 24 10/20/2011 13 3.3. Trình tự thiết kế • Kiểm thử module • Kiểm thử tích hợp – Kiểm thử tích hợp trên xuống – Kiểm thử tích hợp dưới lên – Kiểm thử hồi qui 25 4. Kiểm thử module • Kiểm thử tích hợp module – Kiểm thử dưới lên (Bottom-up Test) – Kiểm thử trên xuống (Top-down Test) – Kiểm thử cột trụ (Big bang Test) – Kiểm thử kẹp (Sandwich Test) 26 10/20/2011 14 a. Bottom-up Test • Các module mức thấp được tổ hợp vào các chùm thực hiện một chức năng con • Viết trình điều khiển phối hợp vào/ ra và kiểm thử • Kiểm thử chùm/bó • Loại bỏ trình điều khiển và chuyển lên mức trên 27 Bottom-up Test (Tiếp) 28 Mức 4 Mức 3 Mức 2 Mức 1 10/20/2011 15 b. Top-down Test • module điều khiển chính được dùng như trình điều khiển kiểm thử, gắn các nút con trực tiếp vào nó • Thay các nút con bằng các module thực tại (theo chiều sâu / ngang) • Kiểm thử từng module được gắn vào • Các 1 nút thử xong được thử tiếp nút khác • Kiểm thử hồi quy 29 Top-down Test (tiếp) 30 Mức 1 Mức 2 Mức 3 Mức 4 10/20/2011 16 c. Big bang Test • Tích hợp không tăng dần • Tất các các module đều được tổ hợp trước • Toàn bộ chương trình được kiểm thử tổng thể • Khó khăn: khó cô lập lỗi, khi chữa xong lỗi này có thể lỗi mới lại phát sinh 31 d. Sandwich Test • Tích hợp trên xuống cho các mức trên cấu trúc chương trình • Tích hợp dưới lên cho các mức phụ thuộc 32 10/20/2011 17 5. 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 toàn: kiểm chứng cơ chế bảo vệ • Kiểm thử gay cấn • Kiểm thử hiệu năng 33 6. Kiểm thử chấp nhận • Mục đích: để bàn giao PM cho khách hàng • Đối tượng: Cần có sự tham gia của ND • Trình tự: Dựa vào Yêu cầu PM 34 10/20/2011 18 PHẦN V: KIỂM THỬ VÀ BẢO TRÌ I. Kiểm thử II. Bảo trì 1. Khái niệm 2. Quy trình nghiệp vụ 3. Các vấn đề còn tồn tại 4. Bảo trì trong các phương pháp phát triển phần mềm 35 1. Khái niệm • Bảo trì là công việc tu sửa, thay đổi phần mềm đã được phát triển (chương trình, dữ liệu, JCL, các loại tư liệu đặc tả, . . .) theo những lý do nào đó. • Các hình thái bảo trì: bảo trì để – Tu chỉnh – Thích nghi – Cải tiến – Phòng ngừa 36 10/20/2011 19 a. Bảo trì để tu sửa • Là bảo trì khắc phục những khiếm khuyết có trong phần mềm. • Một số nguyên nhân điển hình – Kỹ sư phần mềm và khách hiểu nhầm nhau. – Lỗi tiềm ẩn của phần mềm do sơ ý của lập trình hoặc khi kiểm thử chưa bao quát hết. – Vấn đề tính năng của phần mềm: không đáp ứng được yêu cầu về bộ nhớ, tệp, . . . Thiết kế sai, biên tập sai . . . – Thiếu chuẩn hóa trong phát triển phần mềm (trước đó). • 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 37 b. Bảo trì để thích hợp • Là tu chỉnh phần mềm theo thay đổi của môi trường bên ngoài nhằm duy trì và quản lý phần mềm theo vòng đời của nó. • 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 nguyên nhân chính: – Thay đổi về phần cứng (ngoại vi, máy chủ,. . .) – Thay đổi về phần mềm (môi trường): đổi OS – Thay đổi cấu trúc tệp hoặc mở rộng CSDL 38 10/20/2011 20 c. Bảo trì để cải tiến • Là việc tu chỉnh hệ phần mềm theo các yêu cầu ngày càng hoàn thiện hơn, đầy đủ hơn, hợp lý hơn. • Những nguyên nhân chính: – 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 năng mới 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 và trình tự công việc. – Thay đổi người dùng hoặc thay đổi thao tác. • Còn gọi là tái kỹ nghệ (re- engineering) • Mục đích: đưa ra một thiết kế cùng chức năng nhưng có chất lượng cao hơn. • Các bước thực hiện: – Xây dựng lưu đồ phần mềm – Suy dẫn ra biểu thức Bun cho từng dãy xử lý – Biên dịch bảng chân lí – Tái cấu trúc phần mềm 39 d. Bảo trì để phòng ngừa • Là công việc tu chỉnh chương trình có tính đến tương lai của phần mềm đó sẽ mở rộng và thay đổi như thế nào. • Thực ra trong khi thiết kế phần mềm đã phải tính đến tính mở rộng của nó, nên thực tế ít khi ta gặp bảo trì phòng ngừa nếu như phần mềm được thiết kế tốt. • Mục đích: sửa đổi để thích hợp với yêu cầu thay đổi sẽ có của người dùng. • Thực hiện những thay đổi trên thiết kế không tường minh. • Hiểu hoạt động bên trong chương trình • Thiết kế / lập trình lại. • Sử dụng công cụ CASE 40 10/20/2011 21 2. Quy trình nghiệp vụ • Quy trình bảo trì: quá trình trong vòng đời của phần mềm, cũng tuân theo các pha phân tích, thiết kế, phát triển và kiểm thử từ khi phát sinh vấn đề cho đến khi giải quyết xong. • Các nhiệm vụ bảo trì: – Phân tích/cô lập: phân tích tác động, phân tích những giá trị lợi ích, và cô lập các thành phần cần bảo trì – Thiết kế: thiết kế lại hệ thống (phải biết cách tu sửa, thay đổi). – Thực thi: thay thế mã nguồn và kiểm soát từng đơn vị thành phần hệ thống, có tính đến thời gian lập trình. • Thao tác bảo trì: Gồm 2 loại – Tu chỉnh cải đã có (loại 1) – Thêm cái mới (loại 2) 41 Sơ đồ bảo trì 42 Hiểu phần mềm đã có Loại bảo trì? Tu sứa phần mềm đã có Kiểm thử tính nhất quán Kiểm thử sau bảo trì Tạo biểu quản lý bảo trì Phát triển phần mềm mới 1 2 Thực thi “trên bàn”: -Nắm vững các chức năng của hệ thống theo tài liệu -Nắm vững đặc tả chi tiết, điều kiện kiểm thử, . . . theo tài liệu -Dò đọc chương trình nguồn, hiểu trình tự xử lý chi tiết của hệ thống -Bảo trì chương trình nguồn, tạo các module mới và dịch lại. -Thực hiện kiểm thử unit và tu chỉnh những mục liên quan có trong tư liệu đặc tả. -Chú ý theo sát tác động của module được sửa đến các thành phần khác trong hệ thống. -Khi thêm chức năng mới 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 và kiểm thử unit -Phản ảnh vào giao diện của phần mềm (thông báo, phiên bản, . . .) 10/20/2011 22 Sơ đồ bảo trì 43 Hiểu phần mềm đã có Loại bảo trì? Tu sứa phần mềm đã có Kiểm chứng tính nhất quán Kiểm thử sau bảo trì Tạo biểu quản lý bảo trì Phát triển phần mềm mới 1 2 Bằng kiểm thử tích hợp -Đưa đơn vị (unit) đã dược kiểm thử vào hoạt động trong hệ thống -Điều chỉnh sự tương tích giữa các module -Dùng các dữ liệu trước đây khi kiểm thử để kiểm thử lại tính nhất quán ! Chú ý hiệu ứng làn sóng trong chỉnh sửa Để quản lý tình trạng bảo trì, lập biểu: -Ngày tháng, giờ -Nguyên nhân -Tóm tắt cách khắc phục -Chi tiết khắc phục, hiệu ứng làn sóng -Người làm bảo trì -Số công Khi hoàn thành bảo trì: -Kiểm tra nội dung mô tả có trong 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 mới hay không ? 3. Các vấn đề còn tồn tại • Phương pháp cải tiến thao tác bảo trì: – Sáng kiến trong quy trình phát triển phần mềm – Sáng kiến trong quy trình bảo trì phần mềm – Phát triển những kỹ thuật mới cho bảo trì 44 10/20/2011 23 a. Sáng kiến trong quy trình phát triển phần mềm • Chuẩn hóa mọi khâu trong phát triển phần mềm • Người bảo trì chủ chốt tham gia vào giai đoạn phân tích và thiết kế • Thiết kế để dễ bảo trì 45 b. Sáng kiến trong quy trình bảo trì phần mềm • Sử dụng các công cụ hỗ trợ phát triển phần mềm • Chuẩn hóa thao tác bảo trì và thiết bị môi trường bảo trì • Lưu lại những thông tin sử bảo trì • Dự án nên cử một người chủ chốt của mình làm công việc bảo trì sau khi dự án kết thưc giai đoạn phát triển. 46 10/20/2011 24 c. Phát triển những kỹ thuật mới cho bảo trì • Công cụ phần mềm hỗ trợ bảo trì • Cơ sở dữ liệu cho bảo trì • Quản lý tài liệu, quản lý dữ liệu, quản lý chương trình nguồn, quản lý dữ liệu thử, quản lý sử bảo trì • Trạm bảo trì tính năng cao trong hệ thống mạng lưới bảo trì với máy chủ thông minh. 47 Bài tập về nhà • Tìm hiểu SMMM – Software Maintenance Maturity Model. 48 10/20/2011 25 a. Phát triển lặp 49 RUP 50 10/20/2011 26 Scrum 51 Agile 52 10/20/2011 27 b. Hướng thành phần • Những hoạt động bảo trì chính ở CBSD – Gắn kết hóa và gói hóa – May đo hóa – Phát hiện lỗi và cô lập – Cập nhật cấu hình thành phần – Theo dõi và kiểm tra các hành vi hệ thống – Kiểm thử các thành phần 53 c. Mã nguồn mở • Sự khác biệt với bảo trì theo phương pháp truyền thống – Phiên bản ngày tháng – Chờ đợi dịch vụ 54
File đính kèm:
- Bài giảng Công nghệ phần mềm - Phần 5 Kiểm thử và bảo trì.pdf