Bài giảng Công nghệ phần mềm - Phần 5: Kiểm thử và bảo trì

10/20/2011  
PHẦN V:  
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
1. Khái niệm kiểm thử  
Là mấu chốt của đảm bảo chất lượng  
phần mềm  
Là tiến trình (và là nghệ thuật) nhằm  
phát hiện lỗi bằng việc xem xét lại đặc  
tả, thiết kế và mã nguồn.  
Kiểm thử thành công là phát hiện ra  
lỗi; kiểm thử không phát hiện ra lỗi là  
kiểm thử dở  
2
1
10/20/2011  
Khó khăn  
Nâng cao chất lượng phần mềm nhưng không  
vượt quá chất lượng khi thiết kế: chỉ phát hiện  
các lỗi tiềm tàng và sửa chúng  
Phát hiện lỗi bị hạn chế do thủ công là chính  
Dễ bị ảnh hưởng tâm lý khi kiểm thử  
Khó đảm bảo tính đầy đủ của kiểm thử  
3
Lưu ý khi kiểm thử  
1. Chất lượng phần mềm do khâu thiết kế quyết định là chủ  
yếu, chứ không phải khâu kiểm thử  
2. Tính dễ kiểm thử phụ thuộc vào cấu trúc chương trình  
3. Người kiểm thử và người phát triển nên khác nhau  
4. Dữ liệu thử cho kết quả bình thường thì không có ý nghĩa  
nhiều, cần có những dữ liệu kiểm thử mà phát hiện ra lỗi  
5. Khi thiết kế trường hợp thử, không chỉ dữ liệu kiểm thử  
nhập vào, mà phải thiết kế trước cả dữ liệu kết quả sẽ có  
6. Khi phát sinh thêm trường hợp thử thì nên thử lại những  
trường hợp thử trướcđó để tránh ảnh hưởng lan truyền  
sóng  
4
2
10/20/2011  
Tương ứng giữa vòng đời dự án và  
kiểm thử  
Đối tượng và phạm vi  
Kiểm thử chấp nhận  
Đặc tả chức năng/  
Thiết kế lô gíc  
Kiểm thử hệ thống  
Kiểm thử  
tích hợp  
Kiểm thử  
hồi quy  
Thiết kế Vật lý  
Cấu trúc chương trình  
Kiểm thử đơn vị  
chương trình  
và đặc tả module  
Mã hoá module  
chương trình  
5
2.1. Kiểm thử tĩnh  
Kiểm thử trên bàn: giấy và bút trên  
bàn, kiểm tra logic, lần từng chi tiết  
ngay sau khi lập trình xong.  
Đi xuyên suốt (walk through)  
Thanh tra (inspection)  
6
3
10/20/2011  
2.2. Kiểm thử trên máy  
Gỡ lỗi bằng máy (machine debug) hay kiểm thử  
động: Dùng máy chạy chương trình để điều tra  
trạng thái từng động tác của chương trình  
9 bước của trình tự kiểm thử bằng máy:  
7
Trình tự kiểm thử bằng máy  
1. Thiết kế trường hợp thử  
theo thử trên bàn  
5. Nhập dữ liệu đã thiết kế  
cho trường hợp kiểm thử  
2. Trường hợp thử phải có cả 6. Điều chỉnh môi trường  
kết quả kỳ vọng sẽ thu  
được  
thực hiện module tải (tạo  
thủ tục đưa các tệp truy  
cập tệp vào chương trình)  
7. Thực hiện module tải và  
ghi nhận kết quả  
3. Dịch chương trình nguồn  
và tạo module tải để thực  
hiện  
4. Khi trường hợp thử có xử  
lý tệp vào-ra, phải làm  
trước trên bàn việc xác  
định miền của các tệp  
8. Xác nhận kết quả với kết  
quả kỳ vọng  
9. Lặp lại thao tác (5)-(8)  
8
4
10/20/2011  
3. Kỹ thuật thiết kế trường hợp thử  
Kỹ thuật thiết kế trường hợp thử dựa trên đặc tả  
bề ngoài của chương trình: Kiểm thử hộp đen  
(Black box test): WHAT ?  
Kỹ thuật thiết kế trường hợp thử dựa trên đặc tả  
bên trong của chương trình: Kiểm thử hộp trắng  
(white box test): HOW ?  
Kiểm thử Top-Down hay Bottom-Up  
9
3.1. Kiểm thử hộp đen  
Phân đoạn tương đương  
Phân tích giá trị biên  
Đoán lỗi  
Và 1 số kỹ thuật khác  
Input  
Results  
Black Box  
Black box Data Testing Strategy  
10  
5
10/20/2011  
a. Phương pháp phân đoạn tương  
đương (Equivalence Partition)  
Mục đích: giảm số lượng test bằng cách chọn các  
tập dữ liệu đại diện  
Thực hiện: Chia dữ kiệu vào thành các đoạn, mỗi  
đoạn đại diện cho một số dữ liệu => việc kiểm  
thử chỉ thực hiện trên đại diện đó  
Ưu điểm: Test theo mức trừu tượng hơn là  
trường.  
Áp dụng: màn hình, menu hay mức quá trình.  
Ví dụ:  
11  
b. Phương pháp phân tích giá trị biên  
(Boundary value analysis)  
1 trường hợp riêng của phân đoạn  
Thí dụ: nếu miền dữ liệu là tháng thì giá trị 0 hay  
>12 là không hợp lệ  
Thường sử dụng trong kiểm thử module  
12  
6
10/20/2011  
c. Phương pháp đoán lỗi  
(Error Guessing)  
Dựa vào trực giác và kinh nghiệm  
Thí dụ lỗi chia cho 0. Nếu module có phép chia  
thì phải kiểm thử lỗi này  
Nhược điểm: không phát hiện hết lỗi  
13  
d. Phương pháp đồ thị nguyên nhân -  
kết quả (Cause-effect Graphing)  
SEQUENCE  
AND  
NOT  
OR  
DO UNTIL  
14  
7
10/20/2011  
3.2. Kiểm thử hộp trắng  
Là phương pháp kiểm thử dựa vào cấu trúc điều  
khiển của các thủ tục để thiết kế các trường hợp  
kiểm thử.  
Input  
Results  
   
   
White Box Data Testing Strategy  
15  
Kiểm thử hộp trắng (tiếp)  
Người KSPM có thể đảm bảo:  
Kiểm tra tất cả các lộ trình độc lập bên trong 1 mô đun  
ít nhất 1 lần  
Kiểm tra tất cả các nhánh đúng/sai của lựa chọn  
Kiểm tra việc thực hiện của vòng lặp tại các biên và bên  
trong vòng lặp  
Kiểm tra các cấu trúc dữ liệu để đảm bảo tính hợp thức.  
Các kỹ thuật:  
Kiểm thử theo lộ trình (Basis path testing)  
Kiểm thử theo cấu trúc điều khiển.  
16  
8
10/20/2011  
a. Kiểm thử theo lộ trình  
Là kỹ thuật do Tom McCabe đề xuất cho phép  
nhà kiểm thử tiến hành 1 số đo về độ phức tạp lô  
gic của các thủ tục và số đo này được sử dụng để  
giúp cho việc định nghĩa các lộ trình cơ bản sao  
cho các lệnh trong chương trình được thực hiện ít  
nhất 1 lần trong quá trình kiểm thử.  
Sử dụng Ký pháp đồ hoạ luồng/ đồ thị chương  
trình:  
Mỗi nút đồ thị biểu diễn 1 lệnh/ 1 dãy lệnh liên tiếp  
Cung của đồ thị biểu diễn luồng điều kiện (trình tự thực  
hiện).  
17  
Ví dụ: lưu đồ khối chương trình  
1
11  
2
3
4
5
6
7
8
9
10  
18  
9
10/20/2011  
Ví dụ: Đồ thị chương trình  
1
2,  
3
4,  
5
6
3
7
2
8
1
9
10  
4
11  
19  
Chú ý  
Một cung bao giờ cũng phải kết thúc tại 1 nút (có  
thể nút này không tương ứng với bất kỳ lệnh nào  
trong thủ tục).  
Vùng bao bởi các cung và nút gọi là Region (khi  
tính, ta phải tính cả vùng bao ngoài).  
Thí dụ đồ thị chương trình ở slide trước gồm 4  
vùng (các số in nghiêng).  
Với điều kiện phức tạp (nhiều hơn 1 phép so  
sánh) thì mỗi so sánh lại tách thành 1 nút riêng.  
Thí dụ: If a OR b then X else Y Endif  
20  
10  
10/20/2011  
Độ phức tạp lặp (Cyclomatic  
Complexity)  
Độ phức tạp lặp là 1 số đo phần mềm, cung cấp 1 đơn  
vị đo định lượng về độ phức tạp lô gic của CT.  
Trong ngữ cảnh áp dụng kiểm thử theo lộ trình, giá trị  
này sẽ cung cấp số lượng các lộ trình (path) độc lập  
trong 1 chương trình và đó được coi như là cận trên  
của số lượng test phải tiến hành để đảm bảo mọi lệnh  
đều được thực hiện ít nhất 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  
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à scung, 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  
11  
10/20/2011  
Thí dụ: chương trình viết bằng PDL  
i = 1  
1
2
TotalInput = TotalValid = 0  
Sum = 0  
3
While value(i) <>-999 And TotalInput < 100 Do  
TotalInput = TotalInput +1  
4
If Value(i) >= Minimum And value(i) <= Maximum  
Then TotalValid = TotalValid +1  
5
6
7
Sum = Sum + value(i)  
Else Skip  
Endif  
i = i +1  
EndDo  
8
9
10 If TotalValid > 0 Then Average = Sum / TotalValid  
11  
Else Average = -999  
12  
Endif  
13  
LastUpdate 8-07  
Dept. of SE, 2001  
SE-V.23  
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  
12  
10/20/2011  
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  
13  
10/20/2011  
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)  
Mức 4  
Mức 3  
Mức 2  
Mức 1  
28  
14  
10/20/2011  
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)  
Mức 1  
Mức 2  
Mức 3  
Mức 4  
30  
15  
10/20/2011  
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  
16  
10/20/2011  
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  
17  
10/20/2011  
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  
18  
10/20/2011  
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.  
Kỹ nghệ ngược (Reverse  
Engineering): dò lại thiết  
kế để tu sửa.  
Một số nguyên nhân điển  
Những lưu ý  
hình  
Mức trừu tượng  
Tính đầy đủ  
Kỹ sư phần mềm và khách  
hiểu nhầm nhau.  
Tính tương tác  
Tính định hướng  
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 đó).  
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  
19  
10/20/2011  
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.  
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.  
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.  
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ý  
Mở rộng thêm chức năng  
Biên dịch bảng chân lí  
Tái cấu trúc phần mềm  
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.  
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.  
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ế  
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ì  
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  
phòng ngừa nếu như  
phần mềm được thiết  
kế tốt.  
40  
20  
Tải về để xem bản đầy đủ
pdf 27 trang baolam 28/04/2022 7260
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Phần 5: Kiểm thử và bảo trì", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_phan_5_kiem_thu_va_bao_tri.pdf