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

pdf202 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 4508 | Lượt tải: 2download
Tóm tắt nội dung Bài giảng Kiểm thử và bảo đảm chất lượng phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfBài giảng Kiểm thử và bảo đảm chất lượng phần mềm.pdf