Nói cách khác, khối lượng công việcđược thực hiệntrong suốt thờikỳ dự án đòi hòi sự tham gia của nhiều ngườinềnmuốndự án hoàn thành đúng thời hạn.- Để thực hiệnđược dự án cần có nhiều ch
ĐẢM BẢO CHẤT LƯỢNG PHẦN MÈM Phan Thị Hoài Phương Hà NỘI-2010 Giói thiệu Trước Iihừng thách thức trình phát triển phần mềm, việc đàm bão chất lượng phần mềm (Software Quality Assurance-SQA) quan trọng, đòi hòi phài nghiên cím cách nghiêm túc để thực thi hiệu quà Tài liệu cmig cấp nhừng kiến thức chất lượng phần mềm, đàm bão chất lượng dự án phát triển phần mềm Qui trinh xây dựng hệ thống đàm bào chất lượng phần mềm đirợc trinh bày nội dưng giăng Qua đó, sinh viên hiểu cách thức xây dựng hệ thống đâm bão chất hrợng phần mềm vai trò nhùng thành viên hệ thống Một số chuẩn đàm bào chất lượng giới thiệu nhùng chtrơng cuối Thông qua nội dimg giăng sinh viên nắm kỳ rà soát kiểm thử phần mềm Tài liệu soạn phần lớn dựa sách Software Quality! Assurance From Theory to Implementation Daniel Galin A tài liệu kỳ nghệ phần mềm, nhằm hỗ trợ cho sinh viên gặp khó khăn đọc cá *ài liệu nguyên gốc tiếng Anh Nội dung giảng xây dựng bây chươiK Chuông Khái niệm chất lượng pT>n n> 'I V U to chất lượng phần mềm Nhùng khái niệm mở đầu ‘ă ';èu gi thiệu chương Bất đầu với khái niệm phần mềm, chất lượng f hần m ụ đàm bão chất lượng phần mềm, phần phân tích yếu tố chất niọ •’ phần rm Chuông Các thành phân h*a lượng phẩn mềm tiền dự án Chương trình bày X ; dung hên quan đến thành phần đâm bào chất lượng phần mềm tiều dự án bao gôm việc rà soát họp đồng, kế hoạch phát triển dự án phần mềm kể hoạch chất lượng phần mềm Chuông Các thành phần SQA vòng đòi dự án Chương đề cập đến thành phần đàm bào chất lượng phần mềm vòng đời dự án phần mềm Nhừng nội dung trình bày hong chương bao gồm : phân tích số mơ hình phát triển phần mềm phồ biển, phương pháp rà soát, bào trì phần mềm cơng cụ CASE Riêng kiểm thử phần mềm bước quan trọng sè trinh bày riêng chương Chưong Kiêm thử phần mềm Chương đề cập đến kiểm thừ phần mềm Nhùng nội dung trinh bày chương bao gồm : khái niệm bàn, mức kiểm thừ, kỳ thuật kiểm thừ, trình kiểm thừ Chương Phân loại phần mềm phục vụ kiêm Chương đề cập đến loại thành phần dùng kiểm thử phần mềm Nhùng nội dnng đrrợc trình bày chương bao gồm : phần mềm phục vụ kiểm thử thư viện JUnit sử dụng rộng rãi kiềm thử đơn vị cho ngôn ngừ lập trinh Java Chương Các thành phần chất lượng phần mềm Các thành phần bân chất lượng phần mềm bao gồm thủ tục (procedure), chi dần (instruction), khuôn mầu (templates), checklists (danh mục kiểm tra) Đó chinh nội dung trình bày phần đầu chương Phần sè trình bày hoạt động đàm bào chất lượng phần mềm khác : đào tạo cấp chímg chi, ngăn ngừa sữa lỗi, quàn lý cấu hình kiểm sốt tài liệu Chương Các thành phần quản lý chất lượng phần mềm Ngoài yếu tổ kỳ thuật, dự án phát trier phân mềm đại, yểu tổ quản lý đóng vai trị quan trọng Chương trÌỊ?’ấ b vấn đề liên quan đến quản lý chất lượng phầrr mềm ulnr: điều khiển tiếu đô dự án, đọ O chất lượng phần mềm, chi phí chất lượng phần mềm Chương Các chuân, chứng v' hoạt động I 'ib giá Chương đề cập tới chum qua ’v chất lượng ISO 9001 ISO 9000-3, CMM CMMI chir.1t tiẽi rình dự Ề IEEE/EIA Std 12207, IEEE Std 1012, IEEE Std 1028 Chương Tô chức đê đảm ba 'hất lượng Trong nhùng tổ chức lớn, quàn lý nguồn nhân lực yếu tố đinh thành công Chương đề cập đến tác nhân tham gia vào hệ thống đàm bào chất lượng phần mềm, vai trò, trách nhiệm mồi tác nhàn phân tích cụ thề đề mục chương Phụ lục Truth bày lỗi thường gặp viết chương trinh MỤC LỤC Giới thiệu Chương Khái niệm chất lượng phần mềm yếu tổ chất lượng phần mềm 1.1 Đặc điềm cùa phần mềm môi trường phát triển phần mềm 1.2 Khái niệm phần mềm 11 1.3 Lỗi phần mềm phàn loại nguyên nhân gây lỗi phần mềm 12 1.3.1 Lỗiphầnmềm 12 1.3.2 Nguyên nhân gây lỗi phần mềm 12 1.4 Định nghĩa chất lượng phần mềm đãm bào chất hrợug phần mềm .15 1.5 Nhừng mục tiêu đảm bảo chất lượng phần mềm 15 1.6 Phàn loại yêu cầu phần mềm ứng VỚI yếu tố chất lượng phần mềm 16 Chương Các thành phần chất lượng phần mềm tiền dự án 20 2.1 Rà soát hợp đồng .20 2.1.1 Tiên trình rà sốt hợp đơng birớc thực 20 2.1.2 Các mục tiêu rà soát hợp đồng 21 2.1.3 Thực thi rà soát hợp đồng 24 2.1.4 Nlùmg klió khãn thực xem lại đồng cho đề xuất 25 2.1.5 Khuyển cáo cho việc thực duyệt Ịsl hợp đồng chinh 26 2.1.6 Các đổi tượng rà soát hợp đồng 27 2.1.7 Rà soát hợp đồng cho dự án nụ 27 2.2 Các kế hoạch phát triền kế hoạc’ 'hất lượng 30 2.2.1 Những mục tiêu kế hoa- h phe ‘rìển kế iioạcli chất hrợug .31 2.2.2 Các thành phần kế lv ạch phát ti ' 31 2.2.3 Các thành phần lơ 11L 'h chất lượn 35 2.2.4 Các kế hoạch phát trờn K ^oạch chất lượng cho dự án nhỏ dự án nội 38 Chương Các thành pb1 SQA ong vòng đời dự án 41 3.1 Tích hợp hoạt đt r nất lượng vòng đời dự án 41 3.1.1 Phiĩơng pháp phát ■ An phần mềm truyền thống phương pháp khác 41 3.1.2 Các yếu tổ ânh hưởng oạt động đàm bão chất hrợng phần mềm 51 3.1.3 Xác minh, thẩm định đánh giá chất lượng 52 3.2 Rà soát 53 3.2.1 Mục tiêu rà soát 53 3.2.2 Nlùmg rà soát thiết kể hình thiĩc 54 3.2.3 Các rà soát ngang hàng (peer review) 56 3.2.4 Các ý kiến chuyên gia 57 3.3 Đàm bão chất lượng cùa thành phần bão trì phần mềm 59 3.3.1 Giới thiệu 59 3.3.2 Cơ sở cho chất hrợng bảo trì cao 61 3.3.3 Các thành phần chất hrợng phần mềm tiền bào trì 64 3.3.4 Các công cụ đàm bão chất krợug bào trì phần mềm 68 3.4 Các CASE tool ảnh hường chàt hrợng phần 77 3.4.1 Khái niệm CASE tool 77 3.4.2 Đónggóp cùa CASE tool cho chất hrợng sản phẩm phần mềm 79 3.4.3 Đónggóp CASE tool cho chất hrợng bâo trì phần mềm 81 3.4.4 Đónggóp CASE tool cho quàn lý dự án 82 3.5 Đàm bào chất lượng phần mềm yến tổ bên ngồi cìmg tham gia .82 3.5.1 Nlrirng thàiili phan bên ngồi đóng góp vào dự án phần mềm 82 3.5.2 Rủi ro lợi ích giới thiệu người tham dự ngồi 83 3.5.3 Nhưng mục tiêu đảm bão chất lượng đóng góp người tham gia bên ngồi 84 3.5.4 Các cơng cụ đàm bão chàt lượng nhùng đóng góp thành viên đóng góp bên ngồi 85 Chương Kiểm thử phần mềm 86 4.1 Một số khái niệm bàn 86 4.1.1 Ví dụ lỗi phần mềm 86 4.1.2 Đặc tà lỗi phần mềm: .87 4.1.3 Kiềm thừ tiến trinh kiểm thừ 88 4.1.4 Các mức kiểm thử .90 4.1.5 Một sổ thuật ngừ 91 4.2 Các cấp độ kiểm thử 94 4.2.1 Kiềm thừ đơn vị - Unit Testing 95 4.2.2 Kiềm thừ tích hợp - Integration Testing .95 4.2.3 Kiểm thừ hệ thông - System Testing 100 4.2.4 Kiểm thừ chấp nhận - Acceptance T,Si ự» 101 4.3 Các kỳ thuật kiểm thử 102 4.3.1 Kiềm thừ hộp đen - Black-box ’Sting 102 4.3.2 Kiểm thừ hộp trắng - White box ’ting (WB X) 108 4.3.3 Kiểm thừ gia tăng - Inci'f mental Tes g lố 4.3.4 Thread Testing 116 4.3.5 Bàng tóm tắt Testing Levels Techniques 116 4.4 Quá trình kiểm thừ 116 4.4.1 Xác định tiêr huẩn c ất lượng phần mềm phù hợp 116 4.4.2 Lập kế hoạch CL fe'xí 119 4.4.3 Thiết kế kiểm thừ V ">t design) 121 4.4.4 Tiến trình test 124 4.4.5 Thiết kế trường họp kiểm thừ(Test Case Design) 125 Chương Phân loại phần mềm phục vụ kiểm thừ 127 5.1 Phần mềm phục vụ kiểm thừ 127 5.1.1 Phần mềm hỗ trợ viết tài liệu 127 5.1.2 Phần mềm quàn lý lỗi .127 5.1.3 Công cụ kiềm thử ựr động 129 5.2 Unit test thư viện JUnit 133 5.2.1 Tống quan Unit Testing .133 5.2.2 Tổng quan thư viện Juuit 135 Chương Các thành phần bân chất lượng phần mềm 139 6.1 Thủ tục, chi dầu thiết bị hỗ trợ chất hrợug 139 6.1.1 Các thủ tục clù dần .139 6.1.2 Chuẩn bị, thực thi cập nhật thủ tục vàchi dần 142 6.1.3 Khuôn mầu (templates) .143 6.1.4 Danh mục kiềm tra (Checklists) .146 6.2 Đào tạo đội ngũ cấp chứng chi 148 6.2.1 Mục tiêu đào tạo cấp clnhig chi .149 6.2.2 Tièn trình đào tạo câp chímg clii 149 6.2.3 Xác định yêu cầu kiến thức chuyên môn cần thiết đào tạo cập nhật 150 6.2.4 Xác định nhu cầu đào tạo cập nhật (updating) 150 6.2.5 Lên kế hoạch đào tạo clnrơng trình cập nhật .151 6.2.6 Định nghía vị trí yêu cầu cấp cluing chi .151 6.2.7 Lên kế hoạch tiến trình cấp chứng chi 152 6.2.8 Phân phổi chương trình đào tạo cấp chímg chi 153 6.2.9 Nlnrng công việc cùa việc đào tạo vàcap chimg chi 153 6.3 Các hành động sửa lỗi phòng ngừa .154 6.3.1 Định nghía hoạt động sửa lồi phòng ngừa 154 6.3.2 Tiến trình hành động sửa lỗi phịng ngừa 154 6.3.3 Thu thập, phân tích thông tiu 155 6.3.4 Phát triển giài pháp thực thi 155 6.3.5 Tổ chức hành động phòng ngừa sửa lỗi 156 6.4 Quàn lý cấu hình 157 6.4.1 Các thành phần cấu hình phần mềm 157 6.4.2 Quàn lý cấu hình phần mềm 157 6.4.3 Kiểm soát thay đổi phần mềm 157 6.4.4 Kiềm sốt qn lý cấu hình pb' mêm .158 6.4.5 Các cơng cụ máy tính quản ’4- câu ;uli phân mem 159 6.5 Kiểm soát tài liệu .159 6.5.1 Các tài liệu kiểm soát/à nghi chất L Jiig 159 6.5.2 Danh sách tài liệu I U11 soát 160 6.5.3 Chuẩn bị, phê chueu ’ưu trừ Vu 'm hồi tài liệukiểm soát 160 Chương Các thành pb'Ằ quàn Ị chất lượng phần mềm 163 7.1 Điều khiển tiến độ G m 163 7.1.1 Các thành phần đìu khiển tiến độ dự án 163 7.1.2 Điêu khiên tiên độ cu -ác dự án nội thành phàn bên ngồi 163 7.1.3 Thực till kiểm sốt tiến độ dự án .163 7.1.4 Các cơng cụ kiềm sốt tiến độ phần mềm 164 7.2 Độ đo chất hrợng phần mềm 165 7.2.1 Các mục tiêu đo lường phần mềm phân loạicác độ đo 166 7.2.2 Các độ đo tiến trình 167 7.2.3 Các độ đo sàn phẩm 170 7.2.4 Thực đo chất lượng phần mềm 172 7.2.5 Nliìrng giới hạn độ đo phân mềm 173 7.3 Giá thành cùa chất hrợng phần mềm 174 7.3.1 Các mục tiêu tính giá thành độ đo chất lượng phần mềm 174 7.3.2 Mơ hình truyền thống tính giá chất lượng phần mềm .174 7.3.3 Mơ hình mờ rộng tính giá chất lượng phau mềm .175 7.3.4 Các vấn đề hong áp dụng tính giá độ đo chất lượng phần mềm 177 Chương Các chuẩn, chửng chi hoạt động đánh giá 178 8.1 Cácchuẩn quàn lý chất lượng 178 8.1.1 Phạm vi chuân quăn lý chàt hrợug .178 8.1.2 ISO 9001 ISO 9000-3 178 8.1.3 Các mỏ hình tăng trưởng khà - phương pháp đánh giá CMM CMMI 180 8.2 Các chuẩn tiến trình dự án SQA 181 8.2.1 IEEE/EIA Std 12207- tiến trịnh vòng đời phần mềm 182 8.2.2 IEEE Std 1012 - xác minh thẩm định 184 8.2.3 IEEE Std 1028 - rà soát 185 Chương Tổ chức đề đàm bào chất lượng .187 9.1 Giới thiệu 187 9.1.1 Cơ cấu tổ chức phát triển phần mềm 187 9.1.2 Killing tổ chức phát triền phần mềm 187 9.2 Quàn lý vai trò cùa quàn lý đăm bào chất lượng phần mềm 188 9.2.1 Các hoạt động đàm bão chất lượng quản lý mức cao 188 9.2.2 Nhùng trách nhiệm quàn lý phòng ban 190 9.2.3 Nliừng trách nhiệm quàn lý dự án 191 9.3 Đơn vị SQA tác nhàu khác frong hệ thống SQA 192 9.3.1 ĐơnvịSQA 192 9.3.2 Nliìrng ủy viên SQA nhiệm vụ 193 9.3.3 Hội đồng SQA nhiệm vụ 194 9.3.4 Nliiệm vụ phương thức hoạt đội ọ cừa hiđànSQA 194 Tài liệu tham khảo ' .197 Phụ lục 198 Chương Khái niệm chất lượng phần mềm yếu tố chất lượng phần mềm 1.1 Đặc điêm phần mềm mơi trường phát triển phần mềm Có thề nói phần mềm sản phẩm đặc biệt, khơng giống sân phẩm cơng nghiệp khác nên người ta thường gọi phát triển phần mềm Đề phân biệt khác sân phẩm phần mềm VỚI sàn phẩm khác ta xem xét ba đặc điểm sau : (1) Độ phức tạp cùa sàn phẩm : Độ phức tạp sàn phẩm đo sổ lượng phrrơng thức vận hành sàn phẩm Một sàn phẩm công nghiệp chí máy tiên tiến không cho phép nhiều vài trăm phương thức vận hành Trong đó, gói phần mềm có tới hàng triệu khà vận hành Do đó, vấn đề đảm bảo vơ số kliả vận hành xác định phát triền thách thức cơng nghiệp phần mềm (2) Tính trực quan cùa sân phầm : Trong cár san phẩm công nghiệp nhìn thấy được, thi sàn phẩm phần mềm hình Hầu hết nhược điểm sàn phầm công nghiệp phát k tiến trình sản xuất Hơn nừa, dề dàng nhận thấy sụ uyết thiểu" phần sàn phẩm cơng nghiệp ( ví dụ : nk ứi ơtc 'hơng có cửa sổ ) Trái lại, nhược điểm sản phẩm pLc mềm (đưọ< '"71 tnr đìa mềm hay CD) khơng nhìn thấy vi vạ_ thực tế la phần gói phần mềm có thể thiếu hr đầu (3) Tiến trình sàn xuàt ohíi triển phân mềm : Các pha tiến trinh sãn xuất sàn phẩm - Phát triển sản phàm : sân xuất công nghiệp, người thiết kế nhàn viên đăm bão chất lượng kiểm tra nguyên mầu để phát khuyết điềm cuả chúng Trong sản xuất phần mềm, chuyên gia đâm bão chất lượng đội phát triển có xu hướng tìm lỗi săn phẩm vốn có Kết quà cuối pha nguyên mầu đà phê chuẩn, sần sàng đẻ sân xuất - Lập kế hoạch sàn xuất sàn phấm : pha này, ngành cơng nghiệp, tiến trình sàn xuất công cụ thiết kế chuẩn bị Một số dòng sàn phẩm đặc biệt cầu phải thiết kể xây dựng Do đó, pha đà tạo thêm hội xem xét sân phẩm, phát khuyết điểm đà bị người rà soát kiểm thử bò qua pha phát triều Ngược lại, pha khôug yêu cầu troug tiếu trình sàn xuất phần mềm, bời việc sân xuất bàn copy phần mềm in sách hướng dần phần mềm thực tự động Điều áp dụng cho sàn phẩm phần mềm nào, từ nhỏ tới lớn Săn xuất : Trong pha này, thủ tục đãm bão chất lượng săn xuất công nghiệp áp dụng để phát lỗi sân xuất Các khuyết điểm sản phẩm phát giai đoạn trình sàn xuất hiệu chinh thay đổi thiết kế sản phẩm nguyên liệu, hay cơng cụ sàn xuất Nhờ tránh khuyết điềm sàn phẩm sản xuất tương lai Ngirợc lại, nhtr đà nói phần trước, việc sân xuất phần mềm đơn giãn clũ chép sản phẩm in sách hướng dần, việc phát khuyết điềm cùa sàn phẩm khó khăn Kỳ nghệ phần mềm đà có nliừng bước phát hiển đáng kể vượt qua nhiều giai đoạn khủng hoãng Những kết quà nghiên cứu kỳ nghệ phần mềm đà giúp tổ chức phát triển phần mềm cách chun nghiệp Mơi ■’rịng phát triều phần mềm mang nhùng nét đặc trưng riêng Với bày đặc trư tg sau ta có thê hiểu rị vê mơi trường phát triền mơi trường bào trì ph m 'm chuyên nghiệp: (1) Các điều kiện hợp đồng : Là kết quà ~ủa can ’’ết điều kiện bân hợp đồng nhà phát triển phần IIV’U Vi hách hàng, họat động bào tù phát triền phần mềm cần đương đầ' với vân • - Một danh sách y< cầu chức xác định mà phần mềm phát Iiei công Vã bão tri phải thực - Ngân sáci hrafi - Thời gian biểu I ủn Nhà quàn lý việc phát triển phần mềm bào trì dự án cầu nỗ lực lớn việc giám sát hoạt động để đạt yêu cầu cùa hợp đồng (2) Mối quan hệ khách hàng - nhà cung cấp : Trong suốt trình phát triển bào trì phần mềm, hoạt động nằm giám sát cùa khách hàng Đội dự án phải hợp tác liêu tục với khách hàug : để xem xét yêu cầu thay đổi, để thào luậu nliừng khách hàng khơng lịng kliía cạnh khách dự án, để đạt chấp thuận cho thay đổi theo sáng kiến đội phát hiểu (3) Yêu cầu làm việc theo nhóm : nhâu tổ thường thúc đầy việc thành lập đội dự án thay giao dự án cho chuyên gia : - Các yêu cầu thời gian biểu Nói cách khác, khối lượng cơng việc thực suốt thời kỳ dự án đòi hòi tham gia nhiều người muốn dự án hoàn thành thời hạn - Để thực dự án cần có nhiều chuyên ngành khác Sự rà soát lại hỗ trợ lần cùa chuyên gia làm tăng chất lượng dự án (4) Hợp tác phối hợp với đội phần mềm khác : Đẻ thực dự án, đặc biệt dự án có quy mơ lớn, cần nhiều đội dự án Đây điều phổ biến công nghiệp phần niềm Trong trường hợp thế, có thề địi hói phải hợp tác với: - Các đội phát triển phần mềm khác tổ chức - Các đội phát hiểu phần cứng tồ chức - Các đội phát hiểu phần cứng bần mềm nhà cung cấp khác - Các đội phát hiển phần cúng ph mềm cùa khách hàng - nliừng người tham gia phần I li phát hì dự án (5) Các giao diệu với hệ thốp- ohầu mềm 'ác ■ Ngày uay, hầu hết hệ thổug phầu mềm có giao diệr VỚI ’" gói phầr mềm khác Các giao diệu uày cho phép dừ liệu d’’ ■ 'lạng điệx “chày” giừa hệ thống phần mềm Có thể định nghía c 'c loại J ao diệu c 111111 sau ■ - Các giao Ũ1 đầu vào - uơi hệ thốug phầu mềm khác truyền dừ liệu tới hệ thổnt '!iần mềm bạn - Các giao diệu đầu - uơi hệ thống phần mềm bạn truyền dừ liệu đà xữ lý tới hệ thống phần mềm khác - Các giao diện đầu vào đầu tới bàng điều khiếu máy, uhư hệ thống kiểm sốt thí nghiệm hệ thống y tế, thiết bị chế biểu kim loại (6) Sự cần thiết phải tiếp tục thực dự án thành viên đội có thay đổi : Việc thành viên đội rời khỏi đội thời gian phát triều dự án phổ biển, việc thăng chức với công việc cấp cao hơn, chuyển sang thành phố khác Người lành đạo đội phãi thay thành viên đội bời nhân viên khác bời nhân viên tuyền dụng Không kể đến nỗ lực cần đầu tư vào việc đào tạo thành viên mới, việc thay đổi thành viên sè kéo theo thời gian thực hiệu dự án sè thay đổi 10