Bài giảng Kỹ nghệ phần mềm - Bài 9: Xác minh và thẩm định - Nguyễn Văn Vy

pdf 64 trang huongle 2390
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ nghệ phần mềm - Bài 9: Xác minh và thẩm định - Nguyễn Văn Vy", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_ky_nghe_phan_mem_bai_9_xac_minh_va_tham_dinh_nguye.pdf

Nội dung text: Bài giảng Kỹ nghệ phần mềm - Bài 9: Xác minh và thẩm định - Nguyễn Văn Vy

  1. Kỹ nghệ phần mềm Software Engeneering NguyÔn V¨n Vþ Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN Email: vynv@coltech.vnu.vn
  2. Bài 9: Xác minh & thẩm định NguyễnVănVỵ Nội dung „ Kh¸i niÖm x¸c minh, thÈm ®Þnh „ Rμ sãat phần mềm „ KiÓm thö phÇn mÒm Bộ môn Công nghệ phần mềm – ĐHCN 2
  3. TÀI LiỆU THAM KHẢO NguyễnVănVỵ 1. Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008 2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling language User Guid. Addison-Wesley, 1998. 3. M. Ould. Managing Software Quality and Business Risk, John Wiley and Sons, 1999. 4. Roger S.Pressman, Software Engineering, a Practitioner’s Approach. Fifth Edition, McGraw Hill, 2001. 5. Ian Sommerville, Software Engineering. Sixth Edition, Addison- Wasley, 2001. 6. Nguyễn Văn Vỵ. Phân tích thiết kế hệ thống thông tin hiện đại. Hướng cấu trúc và hướng đối tượng, NXB Thống kê, 2002, Hà Nội. Bộ môn Công nghệ phần mềm – ĐHCN 3
  4. Kh¸i niÖm x¸c minh & thÈm ®Þnh NguyễnVănVỵ X¸c minh (Verification) KiÓm tra xem phÇn mÒm lμm ra cã đóng ®Æc t¶ (yªu cÇu, thiÕt kÕ) hay kh«ng ThÈm ®Þnh (Validation) kiÓm tra xem phÇn mÒm cã ®¸p øng yªu cÇu ng−êi dïng kh«ng ™ Đ©y lμ 2 ho¹t ®éng cèt yÕu ®Ó ®¶m b¶o chÊt l−îng phÇn mÒm, diÔn ra suèt qu¸ tr×nh ph¸t triÓn Bộ môn Công nghệ phần mềm – ĐHCN 4
  5. Hoạt động kiểm chứng phần mềm NguyễnVănVỵ phần các đặc thiết mềm kế đặc tả tốt yêu tả và Xác minh phần Xác minh các cầu Thẩm định Yêu mềm đặc đặc tả chưa tốt phần cầu Xác minh trưng chưa đặc tả mềm Thẩm định chất luợng Thẩm định và xác minh thực hiện ở mọi giai đoạn phát triển,với sản phẩm khác nhau, do đối tượng khác nhau thực hiện Bộ môn Công nghệ phần mềm – ĐHCN 5
  6. C¸c hoạt động x¸c minh NguyễnVănVỵ „ C¬ së cho ho¹t ®éng x¸c minh  B¶n ®Æc t¶ yªu cÇu  C¸c bản thiÕt kÕ  M· nguån Ho¹t ®éng x¸c minh  Rμ so¸t (thanh tra, xÐt duyệt, kiÓm to¸n)  KiÓm thö (®¬n vÞ, tÝch hîp, hÖ thèng) Bộ môn Công nghệ phần mềm – ĐHCN 6
  7. C¸c hoạt động thÈm ®Þnh NguyễnVănVỵ „ C¬ së cho ho¹t ®éng x¸c minh  B¶n ®Æc t¶ yªu cÇu  M· nguån Ho¹t ®éng x¸c minh  Rμ so¸t (thanh tra, xÐt duyÖt)  KiÓm to¸n  KiÓm thö thÈm ®Þnh(chÊp nhËn) ™ Hai hoạt động chÝnh của thẩm định vμ x¸c minh lμ: rμ so¸t vμ kiÓm thö.à Bộ môn Công nghệ phần mềm – ĐHCN 7
  8. ThÈm ®Þnh/x¸c minh tÜnh NguyễnVănVỵ  rà soát, xét duyệt các tài liệu phần mềm: kÕ ho¹ch, yªu cÇu, thiÕt kÕ, m· nguån  phát hiện một số loại lỗi nhất định  khã ®¸nh gi¸ tÝnh hiÖu qu¶ cña s¶n phÈm Bộ môn Công nghệ phần mềm – ĐHCN 8
  9. ThÈm ®Þnh/x¸c minh động NguyễnVănVỵ „ thực hiện trên cơ sở cho vận hành sản phẩm phần mềm:  Làm mẫu yêu cầu  Vận hành chương trình (kiểm thử)  Mô phỏng hệ thống „ người phát triển/người dùng trực tiếp kiểm tra đánh giá „ phát hiện mọi lỗi và khiểm khuyết phần mềm, hiệu quả cao Bộ môn Công nghệ phần mềm – ĐHCN 9
  10. Rà soát phần mềm NguyễnVănVỵ ■ Rà soát là xem xét, đánh giá sản phẩm được tiến hành mỗi giai đoạn để phát hiện ra những khiểm khuyết cần sửa trước khi sang giai đoạn sau ■ Mục tiêu: •Chỉ ra các khiếm khuyết cần phải cải thiện. •Khẳng định những sản phẩm đạt yêu cầu. •Kiểm soát việc đạt chất lượng kỹ thuật tối thiểu của sản phẩm (có diện mạo không đổi, ổn định) ■ Áp dụng tại các thời điểm khác nhau trong quá trình phát triển phần mềm. Bộ môn Công nghệ phần mềm – ĐHCN 10
  11. Các hình thức rà soát NguyễnVănVỵ ■ Các kiểu rà soát:  Thanh tra  Họp xét duyệt không chính thức,  Họp chính thức với các thành viên: khách hàng, nhà quản lý, nhân viên kỹ thuật. (rà soát kỹ thuật chính thức – formal technical review: FTR) ■ FTR chủ yếu do các kỹ sư phần mềm thực hiện (là một phương tiện hiệu quả để cải thiện chất lượng) Bộ môn Công nghệ phần mềm – ĐHCN 11
  12. Rà soát kỹ thuật chính thức (formal technical review - FTR) NguyễnVănVỵ ■ Rà soát kỹ thuật chính thức là hoạt động bảo đảm chất lượng phần mềm do những người đang tham gia phát triển thực hiện. ■ Mục tiêu cụ thể là:  Phát hiện các lỗi trong chức năng, logic (chương trình) và triển khai (implementation).  Kiểm thử sự phù hợp của phần mềm với yêu cầu  Khẳng định phần đã đạt yêu cầu Bộ môn Công nghệ phần mềm – ĐHCN 12
  13. Mục tiêu rà soát kỹ thuật chính thức NguyễnVănVỵ ■ Mục tiêu cụ thể (t):  Bảo đảm FM phù hợp với các chuẩn đã định  Đảm bảo FM được phát triển theo một cách thức nhất quán (uniform manner)  Làm cho dự án dễ quản lý hơn  Ngoài ra, làm cơ sở huấn luyện các kỹ sư trẻ và có ích ngay cả cho những kỹ sư đã có kinh nghiệm Bộ môn Công nghệ phần mềm – ĐHCN 13
  14. Tiến trình hoạt động rà soát NguyễnVănVỵ Người phát triển Người thực hiện Cá nhân báo Xem xét, sao chép, rà soát, cáo sản phẩm yêu cầu phân công lập báo cáo cần rà soát rà soát rà soát lập chương họp rà soát, Người quản lý trình họp lập báo cáo rà soát Hội đồng rà soát Bộ môn Công nghệ phần mềm – ĐHCN 14
  15. Cuộc họp rà soát NguyễnVănVỵ ■ Thành phần: lãnh đạoràsoát, các cá nhân rà soát và người tạo ra sản phẩm được rà soát (+ khách). ■ Kết luân đưa ra 1 trong 3 quyết định sau: •Chấp nhận sản phẩm không cần chỉnh sửa •Khước từ sản phẩm vì những lỗi nghiêm trọng •Chấp nhận cho chỉnh sửa sản phẩm, sau khi chỉnh sửa phải rà soát lại ■ Mọi thành viên tham gia cuộc họp phải ký vào quyết định Bộ môn Công nghệ phần mềm – ĐHCN 15
  16. Sản phẩm rà soát NguyễnVănVỵ ■ Sản phẩm cuộc họp rà soát: • 1 Báo cáo các vấn đề nảy sinh do cá nhân rà soát nêu ra • 1 danh sách các vấn đề cần giải quyết •1 bản tổng kết cuộc họp ■ Bản tổng kết họp rà soát phải chỉ rõ: • Đã rà soát cái gì • Ai rà soát • Tìm thấy cái gì và Kết luận ra sao Bộ môn Công nghệ phần mềm – ĐHCN 16
  17. Sản phẩm rà soát (t) NguyễnVănVỵ ■ Danh sách các vấn đề tồn tại phục vụ:  Nhận ra các vùng có vấn đề trong sản phẩm được rà soát  Dùng như 1 danh sách các khoản mục để chỉ cho các người làm ra sản phẩm cần chỉnh sửa  Thiết lập thủ tục để bảo đảm rằng các khoản mục trong danh sách đósẽ được chỉnh sửa thực sự Bộ môn Công nghệ phần mềm – ĐHCN 17
  18. Tiến hành rà soát NguyễnVănVỵ ■ Mọi sản phẩm được tao ra ở mỗi bước đều được rà soát (không chỉ sản phẩm cuối cùng) ■ Tiến trình phát triển chung nhất gồm 4 -5 giai đoạn:  Kỹ nghệ hệ thống (KH triển khai)  Phân tích, xác định yêu cầu phần mềm (đặc tả yêu cầu)  Thiết kế phần mềm (thiết kế)  Lập mã (mã nguồn)  Kiểm thử phần mềm (kế hoạch kiểm thử)  Bao trì (kế hoạch bảo trì) Rà soát bám sát theo sản phẩm của các giai đoạn này Bộ môn Công nghệ phần mềm – ĐHCN 18
  19. C¸c danh môc s¶n phÈm cÇn rμ so¸t NguyễnVănVỵ Danh mục rà soát kỹ nghệ hệ thống Danh mục rà soát lập kế hoạch dự án Danh mục rà soát phân tích yêu cầu phần mềm Danh mục rà soát thiết kế phần mềm Danh mục rà soát khâu lập mã Danh mục rà soát kiểm thử phần mềm Danh mục rà soát bảo trì phần mềm Bộ môn Công nghệ phần mềm – ĐHCN 19
  20. Kiểm thử phần mềm – software testing NguyễnVănVỵ ■ Kiểm thử là tổ chức vận hành phần mềm 1 cách có kế hoạch và phương pháp để tìm ra lỗi ■ Cần vận hành như thế nào để:  hiệu suất tìm ra lỗi là cao nhất ?  chí phí (thời gian, công sức) ít nhất? ■ Nội dung hoạt động kiểm thử bao gồm:  Kế hoạch kiểm thử  phương pháp kiểm thử,  chiến lược kiểm thử và  kỹ thuật sử dụng Bộ môn Công nghệ phần mềm – ĐHCN - 20
  21. Mô hình chữ V - Các mức kiểm thử NguyễnVănVỵ Phân tích test chấp yêu cầu nhận Thẩm định Đặc tả test hệ phần mềm thống Thiết kế test tích kiến trúc hợp Xác Thiết kế test đơn minh chi tiết vị Lập rà soát trình mã Bộ môn Công nghệ phần mềm – ĐHCN 21
  22. Các loại kiểm thử NguyễnVănVỵ Tương ứng với mô hình chữ V có các loại 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) y Kiểm thử phục hồi (recovery testing) y Kiểm thử áp lực (stress testing) y Kiểm thử thi hành (performance testing) y Kiểm thử an ninh (security testing)  Kiểm thử thẩm định/chấp nhận (aceptance testing: alpha testing, beta testing) Bộ môn Công nghệ phần mềm – ĐHCN - 22
  23. Kế hoạch kiểm thử NguyễnVănVỵ ■ Kế hoạch kiểm thử tổng thể: 1. Giới thiệu chung ƒ Mô tả hệ thống cần kiểm thử ƒ Các mục tiêu kiểm thử ƒ Phương pháp sử dụng ƒ Tài liệu hỗ trợ 2. Kế hoạch ƒ Thời gian, địa điểm ƒ Tài liệu kiểm thử: các ca kiểm thử, tiến trình, lịch trình ƒ Điều kiện 3. Các yêu cầu: phần cứng, phần mềm, nhân sự 4. Kiểm soát quá trình kiểm thử Bộ môn Công nghệ phần mềm – ĐHCN - 23
  24. Phương pháp và chiến lược kiểm thử NguyễnVănVỵ „ 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ử  Ứng dụng cho các mức & loại kiểm thử khác nhau.  Một số chiến lược: ƒ Chiến lược nhánh & toán tử quan hệ: BRO(đơn vị) ƒ Kiểm thử từ trên xuống/dưới lên/lai (tích hợp) ƒ Kiểm thử vụ nổ lớn (big bang – tích hợp) ƒ Kiểm thử hồi quy (tích hợp) ƒ Kiểm thử luồn sợi (hệ thời gian thực) Bộ môn Công nghệ phần mềm – ĐHCN 24
  25. Biểu đồ dòng thông tin kiểm thử NguyễnVănVỵ ‰ Sơ đồ dòng thông tin của tiến trình kiểm thử Phần mềm Phần Đặc tả kiểm thử gỡ lỗi phần mềm chỉnh sửa mềm chưa xây dựng tin Cấu hình Dự đoán đánh giá Mô hình cậy kiểm thử đô tin cậy độ tin cậy Phần mềm tin cậy Bộ môn Công nghệ phần mềm – ĐHCN 25
  26. Tiến trình thực hiện ca kiểm thử NguyễnVănVỵ Kế hoạch Các ca Dữ liệu Kết quả Báo cáo kiểm thử kiểm thử kiểm thử kiểm thử kiểm thử Lập kế kế Thiết kế Chuẩn bị Tiến hành So sánh, hoạch KT Ca kiểm thử dữ liệu,đk kiểm thử đánh giá Yêu cầu, Nhật ký mã nguồn Bộ môn Công nghệ phần mềm – ĐHCN 26
  27. Khái niệm về thiết kế ca kiểm thử NguyễnVănVỵ „ Mục tiêu thiết kế ca kiểm thử nhằm:  tìm ra nhiều sai nhất  với nỗ lực & thời gian nhỏ nhất. „ Các phương pháp tốt phải cho một cơ chế:  bảo đảm tính đầy đủ (không sót phần nào) và  cung cấp khả năng thật sự phát hiện được các sai  Ca kiểm thử hiệu quả là ca kiểm thử phát hiện ra ít nhất 1 lỗi Bộ môn Công nghệ phần mềm – ĐHCN 27
  28. Kiểm thử hộp trắng NguyễnVănVỵ „ Khái niệm kiểm thử hộp trắng ‰ Đối tượng: mã nguồn ‰ Mức: các mô đun đơn vị ‰ Nội dung là khám xét: các chi tiết thủ tục (thuật toán) con đường logic (luồng điều khiển) các trạng thái của chương trình (dữ liệu). Bộ môn Công nghệ phần mềm – ĐHCN 28
  29. Yêu cầu kiểm thử hộp trắng NguyễnVănVỵ „ 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 được thực hiện cả hai phía đúng (true) & phía sai (false).  Tất cả các vòng lặp ở biên của nó & cả các biên vận hành phải được thực hiên.  Mọi cấu trúc dữ liệu nội tại được dùng để bảo đảm hiệu lực thi hành của nó Bộ môn Công nghệ phần mềm – ĐHCN 29
  30. Các kỹ thuật sử dụng NguyễnVănVỵ 1. Đồ thị dòng (Tom McCabe đưa ra đầu tiên). 2. Ma trận kiểm thử (số đường đi, trọng số). 3. Điều kiện lôgic – chiến lược miền và BRO 4. Điều khiển theo dòng dữ liệu 5. Các cấu trúc chu trình – giá trị đặc trưng Bộ môn Công nghệ phần mềm – ĐHCN 30
  31. Ví dụ: cấu trúc điều khiển 1 chương trình NguyễnVănVỵ „ xét biểu đồ điều khiển của một 1 chương trình lệnh 2 rẽ nhánh 4 đường đi độc lập: 3 1-11 1-2-3-4-5-10 6 4 1-2-3-6-7-9-10 7 8 1-2-3-6-8-9-10 5 11 9 10 Bộ môn Công nghệ phần mềm – ĐHCN 31
  32. Đồ thị dòng của chương trình NguyễnVănVỵ „ luồng điều khiển „ đồ thị dòng 1 1 2 2,3 6 3 4,5 6 4 7 8 7 8 5 11 9 10 11 9 10 Bộ môn Công nghệ phần mềm – ĐHCN 32
  33. Độ phức tạp của chu trình NguyễnVănVỵ „ Để mọi lệnh đều đượckiểm thử ít nhất một lần, cần tìm được tất cả các đường điều khiển độc lập trong chương trình (khác với các đường khác ít nhất một lệnh). „ Số các đường độc lập của 1 chương trình là giới hạn trên số các kiểm thử cần phải thực hiện. Nó được gọi là độ phức tạp chu trình của chương trình „ Các đường độc lập của 1 chương trình trùng với các đường độc lập của đồ thì dòng (tim đơn giản hơn). Bộ môn Công nghệ phần mềm – ĐHCN 33
  34. Tính độ phức tạp chu trình từ đồ thị dòng NguyễnVănVỵ „ Đồ thị dòng trên gồm: 9 nút, trong đó:5 nút là vị tự, 11 cung, Chia mặt phẳng thành 4 miền Độ phức tạp chu trình V(G) của đồ thị G được tính theo các cách sau: ƒ V(G) = E - N + 2 = 11-9+2 = 4 ƒ V(G) = số miền phẳng = 4 ƒ V(G) = P – 1 = 5-1 = 4 Trong đó: E = số cung; N = số nút; P = số nút vị từ Bộ môn Công nghệ phần mềm – ĐHCN 34
  35. Xác định các ca kiểm thử NguyễnVănVỵ Vẽđồ Tính độ phức Xác định tập Chuẩn bị các thị dòng Tạp chu trình đường cơ bản ca kiểm thử Yêu cầu, Các ca kiểm thử mã nguồn và nội dung Bộ môn Công nghệ phần mềm – ĐHCN 35
  36. Ví dụ ma trận kiểm thử NguyễnVănVỵ 1 23 45 6 7 8 9 10 11 1 11 1 23 11 2,3 45 1 6 4,5 6 11 =A 7 1 7 8 8 1 11 9 10 9 1 10 1 11 Bộ môn Công nghệ phần mềm – ĐHCN 36
  37. Ví dụ ma trận kiểm thử (t) NguyễnVănVỵ 1 23 45 6 7 8 9 10 11 số trong ma trận 111 cho biết số con 23 1 1 đường có hai cạnh 45 1 đi qua cung đó 2 62 A = Ma trận này giúp 71lựa chọn đường để 81lập ca kiểm thử 9 10 11 1 1 Bộ môn Công nghệ phần mềm – ĐHCN 37
  38. Điều kiện logic và các chiến lược NguyễnVănVỵ Trong chương trình, mỗi rẽ nhánh xác định bằng biểu thức logic. Điều kiện lôgic có thể là: „ Điều kiện đơn là 1biến Bool (có thể có toán tử phủ định): X „ Điều kiện đơn là biểu thức quan hệ giữa 2 biểu thức số học C = (A Θ B) , với Θ là phép so sánh: , ≥ hay ≠ A, B là biểu thức số học „ Điều kiện phức hợp cấu thành từ hơn 1 điều kiện đơn nhờ các toán tử Bool: hoặc (∪), và (∩), phủ định (┘) D = X1 & X 2 & Xn , trong đó Xi là điều kiện đơn, & là toán tử bool Bộ môn Công nghệ phần mềm – ĐHCN 38
  39. Chiến lược phân nhánh, miền và BRO NguyễnVănVỵ „ Kiểm thử từng điều kiệnlogic trong chương trình. „ Kiểm thử không chỉ phát hiện sai trong điều kiện mà còn là phát hiện sai khác của chương trình liên quan. „ Nguyên tắc kiểm thử nhánh: với mỗi điều kiện phức hợp C, thì mỗi nhánh “true” và “false” của C, mỗi điều kiện đơn trong C phải được kiểm thử ít nhất một lần. „ Chiến lược kiểm thử miền cần 3 hoặc 4 kiểm thử cho một biểu thức quan hệ gồm các trường hợp: , = và có thể ≠ nữa. „ Chiến lược BRO là kết hợp 2 chiến lược trên  Làm sao chỉ ra tất cả các trường hợp cần kiểm thử? Bộ môn Công nghệ phần mềm – ĐHCN 39
  40. Ví du: Chiến lược BRO – tạo ràng buộc2 NguyễnVănVỵ „ Xét điều kiện C là hội biến Bool và biểu thức quan hệ: C= A ∪ (B = E) Khi đócác ràng buộc của C là các cặp (t,t), (t,f) & (f,t); với (B = E) có giá trị t tương ứng với “=“, và giá trị f tương ứng với “ ”; Bởi vậy tập các đầu vào để kiểm tra C phải gồm 4 phần tử: (t,=), (t, ) và (f,=). „ Đầu vào phủ các ràng buộc C này bảo đảm phát hiện được mọi sai biến Bool hoặc toán tử quan hệ trong C. Bộ môn Công nghệ phần mềm – ĐHCN 40
  41. Kiểm thử hộp đen – khái niệm NguyễnVănVỵ Đối tượng kiểm thử xem như hộp đen, thông qua giao diện để đưa dữ liệu vào và nhận thông tin ra ‰ Là kiểm thử yêu cầu chức năng ‰ Đối tương: mô đun, hệ con, toàn hệ thống ‰ Đặc trưng:  Thuyết minh: các chức năng đủ & vận hành đúng  Thực hiện: qua giao diện  Cơ sở: đặc tả, điềukiệ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ó Bộ môn Công nghệ phần mềm – ĐHCN 41
  42. Mô hình khái niệm kiểm thử hộp đen NguyễnVănVỵ Khởi đầu –kết thúc ? Đặc tả Giao diện ? hệ 1. 2 . Chức thống năng ? phần Phần n dữ mềm mềm liệu ? Dữ liệu Kết quả đầu ra vào Đầu ra liên quan Bộ môn Công nghệ phần mềm – ĐHCN 42
  43. Mục đích kiểm thử hộp đen NguyễnVănVỵ ‰ Tìm các loại sai liên quan:  Chức năng: đủ, đúng đắn  Giao diện: vào, ra: đủ, phù hợp, đúng, tiện lợi  Cấu trúc, truy cập dữ liệu: thông suốt, đúng đắn  Thực thi: trôi chảy, kịp thời, chịu lỗi, phục hồi được  Khởi đầu - kết thúc: mỗi tiến trình bình thường Bộ môn Công nghệ phần mềm – ĐHCN 43
  44. Các kỹ thuật kiểm thử hộp đen NguyễnVănVỵ 1. Phân hoạch tương đương  Chia tập dữ liệu thành từng lớp tương đương  Mỗi lớp hoặc là đúng hay sai, chỉ cần kiểm tra 1 số giá trị đặc trưng của nó Æ rút được số ca kiểm thử 2. Phân tích giá trị biên  Các sai thường ở giá trị biên  Lựa chọn các giá trị biên của lớp phân hoạch để kiểm thử 3. Đồ thị nhân quả  Lập các đồ thị nhân quả làm cơ sở xây dựng ca kiểm thử Bộ môn Công nghệ phần mềm – ĐHCN 44
  45. Mô hình phân hoạch & phân tích giá trị biên NguyễnVănVỵ x x xx b x max x x x Chọn xx Chọn Lớp x Ca tương x kiểm x đương xx thử x x aminx x xx Miền rộng Nhiều giá trị Miền giới hạn Một số giá trị Bộ môn Công nghệ phần mềm – ĐHCN 45
  46. Kỹ thuật đồ thị nhân quả NguyễnVănVỵ ƒ Là một kỹ thuật để thiết kế ca kiểm thử ƒ Cung cấp một biểu diễn chính xác giữa các điều kiện logic (đầu vào) và các hành động tương ứng (đầu ra- kêt quả). ƒ Được xây dựng dựa trên các mô đun chức năng, lôgíc tiến trình và đặc tả hệ thống ƒ Kỹ thuật gồm 4 bước Bộ môn Công nghệ phần mềm – ĐHCN 46
  47. Tiến trình kỹ thuật nhân quả NguyễnVănVỵ Đặc tả hệ thống phần mềm Lập DS nguyên Phát triển Chuyển đồ Xây dựng các nhân-kết quả đồ thị thi Æ bảng ca kiểm thử theo theo môđun nhân-quả quyết định luật của bảng Các mô đun chức năng Bộ môn Công nghệ phần mềm – ĐHCN 47
  48. Ví dụ: kỹ thuật đồ thị nhân quả NguyễnVănVỵ † Danh sách nhân quả theo modul Modul Nguyên nhân Kết quả Định danh A Số > a đúng A1 Số≥a nghi ngờ A2 Số = a nghi ngờ A3 Số < a sai A4 B Số nguyên đúng B1 Bộ môn Công nghệ phần mềm – ĐHCN 48
  49. Ví dụ: bảng quyết định đồ thị nhân quả NguyễnVănVỵ Định danh Điều kiện đúng nghi ngờ sai A1 Số > a X A2,A3 Số≥a X A4 Số a Môđun A1 Môđun B đúng số ≤a Môđun A3 Môđun B ? Môđun A4 Bộ môn Công nghệ phần mềm – ĐHCN 49
  50. Kiểm thử đơn vị NguyễnVănVỵ Đối tượng: các mô đun đơn vị chương trình Nội dung kiểm thử:  giao diện: dữ liệu qua giao diện, dữ liệu vào ra  cấu trúc dữ liệu sử dụng cục bộ  đường điều khiển  điều kiện lôgic  phép toán xử lý Phương pháp sử dủ dụng: Phương pháp hộp trắng Kỹ thuật: các kỹ thuật phương pháp hộp trắng và bộ lái, cuống Bộ môn Công nghệ phần mềm – ĐHCN 50
  51. Kiểm thử tích hợp – khái niệm NguyễnVănVỵ Kiểm thử tích hợp (integration testing) nhằm nhận được 1 bộ phận chức năng hay 1 hệ con tốt. Một kỹ thuật có tính hệ thống để xây dựng cấu trúc chương trình: từ các môđun đã kiểm, xây dựng cấu trúc chương trình đảm bảo tuân theo thiết kế. Có hai cách tích hợp  Tích hợp dần: từ trên xuống, dưới lên, kẹp  Tích hợp đồng thời 1 lúc: “big bang” Phương pháp: phương pháp hộp đen Kỹ thuật: bộ lái, cuống Bộ môn Công nghệ phần mềm – ĐHCN 51
  52. Các sai gặp khi tích hợp mô đun NguyễnVănVỵ Các sai có thể gặp khi tích hợp : „ Dữ liệu bị mất khi đi qua một giao diện. „ Hiệu ứng bất lợi 1 môđun vô tình gây ra đối các môđun khác. „ Sự kết hợp các chức năng phụ có thể không sinh ra chức năng chính mong muốn. „ Sự phóng đại các sai sót riêng rẽ có thể bị đến mức không chấp nhận được. „ Vấn đề của cấu trúc dữ liệu toàn cục có thể để lộ ra . Bộ môn Công nghệ phần mềm – ĐHCN 52
  53. Sơ đồ - tích hợp trên xuống NguyễnVănVỵ A A Kiểm thử A A B C D B Cuống (C,D) B Cuống C E F I K Cuống(E,F) Cuống (D,I,K) G H Cuống(E,F) Chưa xong Kết hợp theo Kết hợp theo Hệ cần kiểm thử chiều rộng chiều sâu Bộ môn Công nghệ phần mềm – ĐHCN 53
  54. Sơ đồ - tích hợp dưới lên NguyễnVănVỵ Cụm Bộ lái Bộ lái Bộ lái Vòng 1 Vòng 2 Vòng 3 Bộ môn Công nghệ phần mềm – ĐHCN 54
  55. Nhận xét phương pháp tích hợp NguyễnVănVỵ ‰ Chiến lược Big bang  dùng cho chương trình nhỏ  phức tạp, không hiệu quả ‰ Chiến lược trên-xuống  nhược điểm: cần các cuống  những khó khăn kèm theo cuống.  có ngay chức năng điều khiển hệ thống. ‰ Chiến lược dưới –lên:  luôn chưa có chương trình chỉnh thể  thiết kế ca kiểm thử dễ và không cần cuống. Bộ môn Công nghệ phần mềm – ĐHCN 55
  56. Kiểm thử hệ thống NguyễnVănVỵ Khái niệm kiểm thử hệ thống ‰ Hệ thống dựa trên máy tính (phần cứng & phần mềm) do nhiều bên xây dựng, người phát triển phần mềm chỉ là một. Chúng cần được kiểm tra tổng thể ‰ Những sai cần kiểm tra:  Các dữ liệu qua giao diện của các thành phần được kiểm thử  Đường xử lý liên kết các thành phần  Sự tích hợp lỗi từ các thành phần khác nhau  Những hạn chế khác đến năng lực do ảnh hưởng từ các thành phân: chịu lỗi, an toàn, thực thi Bộ môn Công nghệ phần mềm – ĐHCN 56
  57. Các loại kiểm thử hệ thống NguyễnVănVỵ 1. Kiểm thử chức năng (mức hệ thống) bao gồm các chức năng giao diện, các chức năng mức người dùng hay đầu ra cuối cùng khỏi hệ thống 2. Kiểm thử phục hồi (chịu lỗi)  kiểm thử phục hồi là bắt phần mềm phải thất bại để xem khả năng phục hồi của nó đến đâu. Có 2 mức phục hồi: phụ hồi tự động hay cần đến sự cán thiệp của con người  Độ tin cây là một độ đo đánh giá khả năng phục hồi Bộ môn Công nghệ phần mềm – ĐHCN 57
  58. Các loại kiểm thử hệ thống NguyễnVănVỵ 3. Kiểm thử an ninh (sức chịu tấn công)  kiểm tra mọi cơ chế bảo vệđược xây dựng xem có đạt hiệu quả đề ra trước các đột nhậphay không?  người kiểm thử đóng vai trò của kẻ đột nhập thực hiện mọi đột nhập có thể để đánh giá. 4. Kiểm thử thi hành (thông suốt, kịp thời)  kiểm thử thi hành được thiết kế để kiểm tra sự vận hành của phần mềm khi hệ thống được tích hợp.  Việc thi hành đúng bao gồm cả số lượng, chất lượng (hoạt động và hiệu năng) Bộ môn Công nghệ phần mềm – ĐHCN 58
  59. Các loại kiểm thử hệ thống NguyễnVănVỵ 5. Kiểm thử chịu tải (qui mô, giá trị nhạy cảm)  là vận hành hệ thống khi sử dụng nguồn lực với số lượng, tần suất và cường độ dị thường.  Ví dụ: vận hành 1 cơ sở dữ liệu với số bản ghi cực lớn, vận hành hệ điều hành mạng với số máy nhiều dần. Bộ môn Công nghệ phần mềm – ĐHCN 59
  60. Kiểm thử chấp nhận- thẩm định NguyễnVănVỵ ‰ Mục tiêu: xem phần mềm có đáp ứng được yêu cầu khách hàng/người dùng không? ‰ Thực hiện thông qua 1 loạt các kiểm thử hộp đen ‰ Kế hoạch & thủ tục được thiết kế bảo đảm rằng:  Tất cả các yêu cầu được thoả mãn,  Các yêu cầu thi hành đã chính xác,  Tài liệu đúng đắn và  Các yêu cầu khác là thoả đáng. ‰ Có hai loại: kiểm thử Alpha và kiểm thử Beta Bộ môn Công nghệ phần mềm – ĐHCN 60
  61. Kiểm thử Alpha và kiểm thử Beta NguyễnVănVỵ „ Kiểm thử alpha do phát triển tiến hành:  Phần mềm được người dùng thực hiện trong bối cảnh “tự nhiên”, trong một môi trường được điều khiển  Người phát triển “nhòm qua vai” người sử dụng để báo cáo các sai và các vấn đề sử dụng (vì thế còn gọi là kiểm thử sau lưng). Dữ liệu thường là dữ liệu mô phỏng „ Kiểm thử Beta do khách hàng tiến hành  Tiến hành trong môi trường thực  Khách hàng báo cáo tất cả các vấn đề họ gặp trong quá trình kiểm thử cho người phát triển 1 cách định kỳ. Bộ môn Công nghệ phần mềm – ĐHCN 61
  62. C©u hái cñng cè NguyễnVănVỵ 1. §Þnh nghÜa thÈm ®Þnh vμ x¸c minh? 2. Sù kh¸c nhau gi÷a thÈm ®Þnh,x¸c minh tÜnh vμ ®éng? 3. C¸c hoạt động chÝnh cña thÈm ®Þnh vμ x¸c minh lμ g×? 4. Rμ so¸t lμ g×? Cã nh÷ng lo¹i rμ so¸t nμo? 5. Môc tiªu, ®èi t−îng cña rμ so¸t kü thuËt chÝnh thøc 6. TiÕn tr×nh rμ so¸t kü thuËt chÝnh thøc? 7. Thμnh phÇn, néi dung, kÕt qu¶ häp rμ so¸t chÝnh thøc? 8. Nªu danh môc c¸c s¶n phÈm cÇn rμ so¸t? 9. KiÓm thö phÇn mÒm lμ g×? Néi dung cña ho¹t ®éng kiÓm thö gåm nh÷ng g×? Bộ môn Công nghệ phần mềm – ĐHCN 62
  63. C©u hái cñng cè NguyễnVănVỵ 10. Tr×nh bμy ®Ò c−¬ng néi dung kÕ ho¹ch kiÓm thö? 11. VÏ s¬ ®å dßng th«ng tin kiÓm thö? 12. VÏ s¬ ®å tiÕn tr×nh thùc hiÖn mét ca kiÓm thö 13. Cã nh÷ng lo¹i kiÓm thö nμo? §èi t−îng cña nã lμ g×? 14. Cã nh÷ng ph−¬ng ph¸p vμ chiÕn l−îc kiÓm thö nμo? 15. Tr×nh bμy tãm t¾t mçi ph−¬ng ph¸p kiÓm thö: ®èi t−îng, nh÷ng sai cÇn kiÓm tra, c¸c chiÕn l−îc vμ kü thuËt sö dông? 16. Trình bày các loại hình kiểm thử: định nghĩa, mục tiêu, các sai cần kiểm tra, chiến lược và kỹ thuật sử dụng, cách thức tiến hành? Bộ môn Công nghệ phần mềm – ĐHCN 63
  64. C©u hái và thảo luận NguyễnVănVỵ Bộ môn Công nghệ phần mềm – ĐHCN 64