Bài giảng Kiểm thử và bảo đảm chất lượng phần mềm
MỞ ĐẦU.4
CHƯƠNG 1: CÁC KHÁI NIỆM .5
1.1. Các định nghĩa.5
1.2. Vòng đời của việc kiểm nghiệm (testing life cycle):.6
1.3. Phân loại kiểm nghiệm: .7
1.4. Sựtương quan giữa các công đoạn xây dụng phần mềm và loại kiểm
nghiệm: Mô hình chữV.8
1.5. Sơlượt các kỹthuật và công đoạn kiểm nghiệm:.9
CHƯƠNG 2: KIỂM CHỨNG VÀ XÁC NHẬN (V & V ) .13
2.1. Kiểm chứng và hợp lệhoá.13
2.1.1. Tổchức việc kiểm thửphần mềm .14
2.1.2. Chiến lược kiểm thửphần mềm .15
2.1.3. Tiêu chuẩn hoàn thành kiểm thử.17
2.2. Phát triển phần mềm phòng sạch (cleanroom software development) .18
2.2.1. Nghệthuật của việc gỡrối.18
2.2.2. Tiến trình gỡlỗi.18
2.2.3. Xem xét tâm lý .19
2.2.4. Cách tiếp cận gỡlỗi .19
CHƯƠNG 3: KIỂM THỬPHẦN MỀM.22
3.1. Quá trình kiểm thử.22
3.2. Kiểm thửhệthống .24
3.3. Kiểm thửtích hợp.25
3.4. Kiểm thửphát hành .27
3.5. Kiểm thửhiệu năng .31
3.6. Kiểm thửthành phần .32
3.7. Kiểm thửgiao diện .33
3.8. Thiết kếtrường hợp thử(Test case design) .35
3.9. Tự động hóa kiểm thử(Test automation) .45
CHƯƠNG 4: CÁC PHƯƠNG PHÁP KIỂM THỬ.49
4.1. Phương pháp white-box:.50
4.2. Phương pháp black-box:.59
CHƯƠNG 5: KIỂM THỬTÍCH HỢP.66
5.1. Tích hợp trên xuống. .66
5.2. Tích hợp dưới lên. .68
5.3. Kiểm thửnội quy.69
5.4. Gợi ý vềviệc kiểm thửtích hợp .71
5.5. Lập tài liệu vềkiểm thửtích hợp.72
CHƯƠNG 6: KỸNGHỆ ĐỘTIN CẬY PHẦN MỀM .75
6.1. Giới thiệu .75
6.2. Xác nhận tính tin cậy .76
6.2.1. Sơthảo hoạt động .78
6.2.2. Dự đoán tính tin cậy .79
6.3. Đảm bảo tính an toàn.82
6.3.1. Những luận chứng vềtính an toàn.83
6.3.2. Đảm bảo quy trình .86
6.3.3. Kiểm tra tính an toàn khi thực hiện .88
6.4. Các trường hợp an toàn và tin cậy được.89
3
CHƯƠNG 7: KIỂM THỬPHẦN MỀM TRONG CÔNG NGHIỆP .95
7.1. QUY TRÌNH KIỂM TRA PHẦN MỀM CƠBẢN.95
7.2. MÔ HÌNH KIỂM TRA PHẦN MỀM TMM (TESTING MATURITY
MODEL).99
7.3. Các công cụkiểm thử(Test tools).105
7.3.1. TẠI SAO PHẢI DÙNG TEST TOOL .105
7.3.2. KHÁI QUÁT VỀKTTĐ.106
7.3.3. GIỚI THIỆU CÔNG CỤKTTĐ: QUICKTEST PROFESSIONAL.108
7.3.4. Kiểm thử đơn vịvới JUnit.112
CHƯƠNG 8: ƯỚC LƯỢNG GIÁ THÀNH PHẦN MỀM.129
8.1. Giới thiệu .129
8.2. Năng suất phần mền .131
8.3. Kỹthuật ước lượng.135
8.4. Mô hình hoá chi phí thuật toán.137
8.5. Mô hình COCOMO.139
8.6. Mô hình chi phí giải thuật trong kếhoạch dựán.147
8.7. Nhân viên và khoảng thời gian của dựán .149
CHƯƠNG 9: QUẢN LÝ CHẤT LƯỢNG PHẦN MỀM.153
9.1. Chất lượng quá trình và chất lượng sản phẩm:.153
9.2. Chất lượng quá trình và chất lượng sản phẩm:.155
9.3. Đảm bảo chất lượng và các chuẩn chất lượng.156
9.4. Lập kếhoạch chất lượng.163
9.5. Kiểm soát chất lượng.164
9.6. CMM/CMMi .165
9.6.2. Cấu trúc của CMM .166
9.6.3. So sánh giữa CMM và CMMi .172
CHƯƠNG 10: QUẢN LÝ CẤU HÌNH.174
10.1. Giới thiệu .174
10.2. Kếhoạch quản trịcấu hình .176
11.2. Quản lý việc thay đổi.179
11.3. Quản lý phiên bản và bản phát hành.183
11.4. Quản lý bản phát hành .186
11.5. Xây dựng hệthống .189
11.6. Các công cụCASE cho quản trịcấu hình .190
PHỤLỤC- CÁC CÂU HỎI ÔN TẬP.197
1. Chất lượng và đảm bảo chất lượng phần mềm.197
2. Các độ đo đặc trưng chất lượng phần mềm.198
3. Kiểm thửphần mềm .199
4. Quản lý cấu hình phần mềm.201
TÀI LIỆU THAM KHẢO.202
h hưởng lên chất lượng của mối loại nhân tố (đặc trưng chức năng, khả năng thích nghi với thay đổi, khả năng thích nghi với môi trường) ? 6. Có thể đo trực tiếp chất lượng phần mềm không? Tại sao? Vậy phải đo bằng cách nào? 7. Kể ra các độ đo đặc trưng chất lượng chính của McCall và giải thích nội dung của nó? 8. Giải thích nội dung các thuộc tính chất lượng phần mềm sau đây và nêu ra các độ đo liên quan được sử dụng để đo thuộc tính đó: Tính đúng đắn, Tính tin cậy được, Tính hiệu quả, Tính toàn vẹn, Tính khả dụng, Tính bảo trì được, Tính mềm dẻo, Tính thử nghiệm được, Tính khả chuyển, Tính liên tác được? 9. Nêu các đặc trưng chất lượng theo Hawlett? Giải thích nội dung mỗi loại? 1.2. Tiến hóa của hoạt động đảm bảo chất lượng 10. Đảm bảo chất lượng phần mềm xuất phát từ đâu? Tiến triển của nó như thế nào? 11. Tại sao cần đảm bảo chất lượng phần mềm? Nó đóng vai trò gì trong một doanh nghiệp phát triển phần mềm? 12. Khi nào cần thực hiện các hoạt động đảm bảo chất lượng phần mềm? 13. Trong một tổ chức, những ai tham gia vào hoạt động đảm bảo chất lượng? Vai trò và trách nhiệm của mỗi đối tượng đó là gì? 14. Mục tiêu của SQA là gì? Các hoạt động chính đảm bảo chất lượng phần mềm là những hoạt động nào? 15. Giải thích nội dung tóm tắt của mỗi hoạt động chính đảm bảo chất lượng? 1.3. Rà soát phần mềm 16. Rà soát phần mềm được hiểu là gì (Khái niệm, mục tiêu, cách thức áp dụng)? Nêu các lợi ích của việc rà soát? Nếu không thực hiện rà soát thì sao? 17. Các hình thức của hoạt động rà soát? Trình bày khái niệm, mục tiêu của rà soát kỹ thuật chính thức? 198 18. Vẽ sơ đồ tiến trình của hoạt động rà soát và giải thích sơ bộ nội dung mỗi bước? 19. Trình bày nội dung cơ bản một cuộc họp rà soát: thành phần, thời gian, công việc cần làm, phương châm ? 20. Các sản phẩm của cuộc họp rà soát là gì? Nội dung, vài trò của mỗi sản phẩm đó? 21. Khi náo tiến hành ra soát? cần ra soát những sản phẩm gì? 22. Trình bày nội dung, danh mục rà soát của a. rà soát kỹ nghệ hệ thống? b. rà soát việc lập kế hoạch? c. rà soát phân tích yêu cầu phần mềm ? e. rà soát thiết kế phần mềm ? f. rà soát khâu lập mã phần mềm? g. rà soát kiểm thử phần mềm ? 2. Các độ đo đặc trưng chất lượng phần mềm 2.1. Các độ đo chỉ số chất lượng chương trình 23. Nêu các ký hiệu và giải thích nội dung, ý nghĩa các đại lượng : s1,s2,s3,s4,s5,s6,s7 và các độ đo trung gian: D1=1&0, (D2=1-s2/s1), (D3=1-s3/s1), (D4=1-s5/s4), (D5=1- s6/s4), (D6=1-s7/s1)? 24. Sử dụng công thức ΣwiDi với Σwi = 1 như thế nào và để làm gì? 25. Giải thích nội dung các thành phần và ý nghĩa của độ đo SMI = và cách sử dụng nó? 26. Số đo độ phức tạp của McCabe dựa trên cái gì và những đại lượng cụ thể nào? 27. Đảm bảo chất lượng phần mềm dựa trên thống kê nghĩa là gì? Nó gồm những công việc gì? Kể ít nhất 5 nguyên nhân của những khiểm khuyết trong phần mềm? 28. Nêu công thức tính khiếm khuyết của sản phầm ở một pha phát triển? và công thức tính khiếm khuyểt của sản phẩm cuối cùng? Giải thích ý nghĩa của nó? 29. Tiếp cận hình thức cho SQA nghĩa là gì? Quá trình phòng sạch là gì? Phương châm của kỹ thuật này là gì? 2.2. Các độ đo về sự tin cậy và an toàn 30. Độ tin cậy của phần mềm hiểu là cái gì? Đo độ tin cậy dựa trên những dữ liệu nào? 31. Thế nào là thất bại của phần mềm? Có mấy thang bậc? là những thang bậc nào? 32. Nêu chỉ tiêu để tính độ tin cây? Nêu công thức tính độ sẵn sàng? Giải thích ý nghĩa của chúng? 33. Có những mô hình độ tin cậy nào? Nó dựa trên tham biến nào và trên giả thiết nào? Mô hình độ tin cậy gieo hạt dựa trên ý tưởng nào? Mục tiêu để làm gì? MT – Fa – Fc -Fd MT 199 34. Độ an toàn phần mềm là cái gì? Có những phương pháp nào để phân tích độ an toàn? 35. Khảo sát nhu cầu SQA gồm những nội dung gì? nhằm trả lời cho câu hỏi gì? Nếu có nhu cầu thì làm gì? 36. Có những vấn đề gì đặt ra khi triển khai SQA? Lợi ích của SQA là gì? Nguyên tắc chi phí hiệu quả của SQA là gì? 3. Kiểm thử phần mềm 3.1. Khái niệm về kiểm thử 37. Tại sao phải kiểm thử phần mềm? Mục tiêu kiểm thử là gì? Từ đó có những quan niệm sai gì về kiểm thử phần mềm? 38. Thế nào là một ca kiểm thử tốt? ca kiểm thử thành công? Lợi ích phụ của kiểm thử là gì? 39. Biểu đồ dòng thông tin kiểm thử mô tả cái gì? vẽ biểu đồ của nó? 40. Nêu các đối tượng, các phương pháp kiểm thử phần mềm? chúng thường được sử dụng vào giai đọan nào của quá trình phát triển? 41. Một ca kiểm thử là cái gì? Mục tiêu thiết kế ca kiểm thử? các bước để thiết kế môt ca kiểm thử? 42. Kiểm thử hộp trắng là cái gi? Nêu các đặc trưng của nó? 43. Kiểm thử hộp đen là cái gì? Nêu các đặc trưng của nó? 44. Chiến lược kiểm thử phần mềm là cái gì? Nêu các nguyên tắc trong chiến lược kiểm thử phần mềm? 45. Nêu các bước của chiến lược kiểm thử thời gian thực và giải thích nội dung mỗi bước? 46. Có những loại công cụ tự động nào trợ giúp kiểm thử? Mô tả nội dung mỗi loại? 47. Ai là người phải tham gia kiểm thử phần mềm? Nêu vai trò và trách nhiệm của mối đối tượng? 3.2. Các phương pháp kiểm thử a. Kiểm thử hộp trắng 48. Kiểm thử hộp trắng dựa trên cơ sơ nào để thiết kế các ca kiểm thử? Thiết kế ca kiểm thử phải đảm bảo điều kiện gì? 49. Đồ thị dòng gồm những yếu tố nào? xây dựng nó dựa vào đâu? Nó có các đặc trưng gì? Đồ thị dòng dùng để làm gì? 50. Con đường cơ bản trong đồ thị dòng là cái gì? Độ phức tạp của chu trình là gì? Nêu các công thức tính độ phức tạp? 51. Ma trận thử nghiệm được cấu trúc như thế nào? Nó dùng để làm gì? 52. Nêu các loại điều kiện trong cấu điều khiển và cho ví dụ? Có những loại sai nào trong điều kiện khi kiểm thử? 200 53. Chiến lược kiểm thử phân nhánh nghĩa là gì? Yêu cầu đặt ra cho kiểm thử phân nhánh là gì? 54. Chiến lược kiểm thử miền là cái gì? Nó dựa trên tư tưởng nào? 55. Chiến lược kiểm thử BRO là cái gì? Nó dựa trên tư tưởng nào? 56. Lấy ví dụ về các điều kiện “ràng buộc ra” cho các trường hợp: 1 biến Bool, hợp của biến Bool và biểu thức quan hệ , hợp của hai biểu thức quan hệ? 57. Kiểm thử điều khiển dòng dữ liệu nghĩa là gì? Cho ví dụ? 58. Kiểm thử điều khiển vòng lặp ghĩa là gì? Cho ví dụ? b. Kiểm thử hộp đen 59. Mô hình của kiểm thử hộp đen quan tâm đến nhân tố nào của phần mềm? Nó nhằm tìm ra các loại sai nào? Nêu các phương pháp áp dụng cho nó? 60. Trình bày phương pháp phân hoach: nguyên tắc, mục tiêu và thiết kế ca kiểm thử? Phương châm xác định lớp tương đương là gì? 61. Phân tích giá trị biên nghiã là gì? Phương châm phân tích giá trị biên là gì? 62. Kỹ thuật nhân quả nghĩa là gì? Nêu các bước của ký thuật này? 63. Chiến lươc kểm thử thời gian thực gồm mấy bước? là những bước nào? Giải thích nội dung cơ bản mỗi bước? c. Kiểm thử đơn vị 64. Kiểm thử đơn vị là gì? Quan hệ của nó với hoạt động mã hóa như thế nào? 65. Hoạt động kiểm thử đơn vị gồm những nội dung gỉ? Nó liên quan đến những nhân tố nào? Nêu một vài câu hỏi cần kiểm thử cho các nhân tố đó? 66. Kỹ thuật kiểm thử đơn vị sử dụng là gì? vì sao phải sử dụng ký thuật đó? Có những khó khăn, thuận lợi gì? d. Kiểm thử tích hợp 67. Kiểm thử tích hợp thực hiện khi nào? Tại sao phải kiểm thử tích hợp?Nêu một số câu hỏi đặt ra cho kiểm thử tích hợp? 68. Có những phương pháp gì được áp dụng cho kiểm thử tích hợp? mô tả tóm tắt nội dung mỗi phương pháp? 69. Nêu các bước kiểm thử tích hợp từ trên xuống? Ưu nhược điểm của cách tiếp cận này? 70. Nêu các bước kiểm thử tích hợp từ dưới lên? Ưu nhược điểm của cách tiếp cận này? 71. Các tài liệu kiểm thử tích hợp gồm những loại gì? e. Kiểm thử hệ thống 72. Kiểm thử Beta là cái gì? Kiểm thử Alpha là cái gì? Nêu sự giống và khác nhau cơ bản giữa chúng ? 201 73. Nội dung chính của kiểm thử hệ thống ? Nêu một số câu hỏi đặt ra cho việc kiểm thử hệ thống ? 74. Kiểm thử phục hồi là gì ? 75. Kiểm thử an ninh là gì ? 76. Kiểm thử áp lực là gì 77. Kiểm thử thi hành là gì 78. Gỡ rối được hiểu là gì ? Nó thực hiện khi nào ? Khó khăn của việc gỡ rối là gì? 79. Trình bày tiến trình gỡ rối ? các cách thức gỡ rối ? ưu nhược điểm của chúng? 4. Quản lý cấu hình phần mềm 80. Quản lý cấu hình phần mềm là gi? Nội dung của hoạt động quản lý cấu hình gồm những công việc gì? 81. Cấu hình phần mềm được hiểu là cái gì? nội dung các khoản mục chính của cấu hình phần gồm những gì? 82. Quản lý cấu hình nhằm mục tiêu gì? Năm nhiệm vụ của quản lý cấu hình là gì? 83. Phương pháp gì được áp dụng cho việc quản lý cấu hình? Mốc giới là cái gì? Sử dụng mốc giới để kiểm soát sự thay đổi như thế nào? 84. Trình bày tiến trình kiểm soát sự thay đổi? 85. Phiên bản là cái gì? Làm thế nào để kiểm soát các phiên bản 86. Kiểm toán cấu hình phần mềm nghĩa là gì? Hoạt động kiểm toán cần trả lời những câu hỏi gì? 87. Báo cáo hiện trạng nghĩa là gì? Nó cần trả lời được những câu hỏi gì? Đầu ra của báo cáo hiện trang dành cho ai? mục tiêu của nó là gì? 202 TÀI LIỆU THAM KHẢO [1] Hoàng Văn Kiếm, Giáo trình chuyên đề Nguyên lý và phương pháp ngôn ngữ lập trình, Đại học Quốc gia TP. Hồ Chí Minh, 2005. [2] Cem Kaner, James Bach, Bret Pettichord, Lessons Learned in Software Testing. A Context-Driven Approach, John Wiley & Sons, 2001. [3] Software Testing and Quality Control - Knowledge Bases, center.com/tpsw12-t.htm [4] Cem Kaner, James Bach, Black Box Software Testing, Center for Software Testing Education & Research, Florida Institute of Technology, 2005. [5] The Test Management Guide - A to Z and FAQs, [6] The Test Management Guide - A to Z and FAQs, [8] IPL, An Introduction to Software Testing, IPL Information Processing Ltd, 2002. [9] [BEI90] Beizer, B.,Software Testing Techniques, 2d ed., Van Nostrand Reinhold, 1990, [10] [DEU79] Detsch, M., “Verification and Validation” in software Engineering,(R. Jensen and C. Tonies, eds.) Prentice-Hall, 1979, pp 329-408. [11] Software Engineering A Practitioner’s Approach, Roger S. Pressman.
File đính kèm:
- Bài giảng Kiểm thử và bảo đảm chất lượng phần mềm.pdf