Bài giảng Nhập môn Công nghệ học Phần mềm (Introduction to Software Engineering) - Phần 5: Kiểm thử và Bảo trì (Test and Maintenance)

Phần V  
Kiểm thử và Bảo trì  
Test and Maintenance  
Nhập môn  
Công nghệ học Phần mềm  
Introduction to Software Engineering  
Chương 9: Phương pháp kiểm thử  
9.1 Khái niệm kiểm thử  
9.2 Phương pháp thử  
9.3 Kỹ thuật thiết kế trưòng hợp thử  
9.4 Phương pháp thử các môđun  
Department of Software Engineering  
Faculty of Information Technology  
Hanoi University of Technology  
TEL: 04-8682595 FAX: 04-8692906  
Email: cnpm@it-hut.edu.vn  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.1  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.2  
9.1 Khái niệm kiểm thử  
Những khó khăn khi kiểm thử  
Định nghĩa 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ã hoá.  
• 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ở (Sue A.Conger- The New SE)  
• 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ử  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.3  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.4  
6 điểm lưu ý khi kiểm thử (tiếp)  
6 điểm 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ử  
(4) Dữ liệu thử cho kết quả bình thườngthì  
không có ý nghĩa nhiều, cần có nhữngdữ  
liệu kiểm thử mà phát hiện ra lỗi  
(5) Khi thiết kế trườnghợp thử, không chỉ dữ  
liệu kiểm thử nhập vào, mà phảithiế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ườnghợp thử trướcđó để  
tránh ảnh hưởng lan truyền sóng  
(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  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.5  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.6  
1
Tương ứng giữa vòng đời dự án và kiểm thử  
9.2 Phương pháp thử: thử tĩnh  
• Kiểm thử trên bàn hay Kiểm thử tĩnh: 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 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  
• Đi xuyên suốt (walk through)  
• Thanh tra (inspection)  
Kiểm  
hồi quy  
Thiết kế Vật lý  
Kiểm tích hợp  
Cấu trúc CT  
và đặc tả môđun  
Kiểm ĐVCT  
Mã hoá môđun CT  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.7  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.8  
Trình tự kiểm thử bằng máy  
Kiểm thử trên máy  
(1) Thiết kế trường hợp thử theo thử trên bàn  
(2) Trường hợp thử phải có cả kết quả kỳ vọng  
sẽ thu được  
• 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  
(3) Dịch chương trình nguồn và tạo môđun tải  
• 9 bước của trình tự kiểm thử bằng máy  
để 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  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.9  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.10  
Trình tự kiểm thử bằng máy (tiếp)  
9.3 Kỹ thuật thiết kế trường hợp thử  
• Kỹ thuật thiết kế trườnghợ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ườnghợ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 ?  
(5) Nhập dữ liệu đã thiết kế cho trườnghợp kiểm thử  
(6) Điều chỉnh môi trường thực hiện môđun 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 môđun tải và ghi nhận kết quả  
(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)  
• Kiểm thử Top-Down hay Bottom-Up  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.11  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.12  
2
Phương pháp phân đoạn tương đương  
(Equivalence Partition)  
Kiểm thử hộp đen  
• 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  
• Phân đoạn tương đương  
• Phân tích giá trị biên  
• Đoán lỗi  
• 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  
Input  
Results  
Black Box  
Black box Data Testing Strategy  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.13  
SE-V.15  
SE-V.17  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.14  
Phương pháp phân tích giá trị biên  
(Boundary value analysis)  
Phương pháp đoán lỗi  
(Error Guessing)  
• Là 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ệ  
• Dựa vào trực giác và kinh nghiệm  
• Thí dụ lỗi chia cho 0. Nếu môđun có phép chia  
thì phải kiểm thử lỗi này  
• Thường sử dụng trong kiểm thử môđun  
• Nhược điểm: không phát hiện hết lỗi  
HUT, Falt. of IT  
Dept. of SE, 2001  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.16  
Phương pháp đồ thị nguyên nhân - kết quả  
(Cause-effect Graphing)  
Kiểm thử hộp trắng  
• Bó các lệnh  
Mã tuần tự  
• Bó các rẽ nhánh  
Phủ định  
and  
• Bó các điều kiện  
• Bó các điều kiện - rẽ nhánh  
Or  
Do Until  
Input  
Results  
   
   
WhiteBox Data Testing Strategy  
HUT, Falt. of IT  
Dept. of SE, 2001  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.18  
3
9.4 Kỹ thuật kiểm thử môđun  
Trình tự thiết kế  
• Kiểm thử môđun  
• Kiểm thử tích hợp môđun  
– 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 bung Test)  
– Kiểm thử kẹp (Sandwich Test)  
• 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  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.19  
HUT, Falt. of IT  
HUT, Falt. of IT  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.20  
Bottom-up Test  
Bottom-up Test (Tiếp)  
• Các môđun 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  
Mức 4  
• Viết trình điều khiển phối hợp vào/ ra và kiểm  
thử  
Mức 3  
• Kiểm thử chùm/bó  
• Loại bỏ trình điều khiển và chuyển lên mức  
trên  
Mức 2  
Mức 1  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.21  
Dept. of SE, 2001  
SE-V.22  
Top-down Test  
Top-down Test (tiếp)  
• Môđun đ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 môđun thực tại  
(theo chiều sâu / ngang)  
• Kiểm thử từng môđun đượ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  
Mức 1  
Mức 2  
Mức 3  
Mức 4  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.23  
Dept. of SE, 2001  
SE-V.24  
4
Big bung Test  
Sandwich Test  
• Tích hợp không tăng dần  
• Tích hợp trên xuống cho các mức trên cấu trúc  
chương trình  
• Tất các các môđun đều được tổ hợp trước  
• Toàn bộ chương trình được kiểm thử tổng thể  
• Tích hợp dưới lên cho các mức phụ thuộc  
• 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  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.25  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.26  
Kiểm thử hệ thống  
Chương 10:  
Phương pháp bảo trì  
Maintenance Methods  
• 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  
10.1 Bảo trì là gì?  
10.2 Trình tự nghiệp vụ bảo trì  
10.3 Những vấn đề về bảo trì hiện nay  
• Kiểm thử hiệu năng  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.27  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.28  
10.1 Bảo trì là gì?  
Bảo trì để tu sửa  
• Định nghĩa: Bảo trì là công việc tu sửa, thay đổi  
phần mềm đã được pháttriển (chươngtrình, dữ  
• Là bảo trì khắc phục những khiếm khuyết có  
trong phần mềm  
liệu, JCL, các loại tư liệu đặc tả, . . .) theo những lý  
do nào đó  
• Một số nguyên nhân điển hình  
• Các hình thái bảo trì: bảo trì để  
– Tu chỉnh  
– Kỹ sư phần mềm và khách hiểu nhầm nhau  
– 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 . . .  
– Thích hợp  
– Cải tiến  
– Phòngngừa  
– Thiếu chuẩn hóa trong phát triển phần mềm (trước đó)  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.29  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.30  
5
Bảo trì để tu sửa (tiếp)  
Bảo trì để thích hợp  
• Là tu chỉnh phầnmềm theo thay đổi của môi  
trườngbên ngoài nhằm duy trì và quản lý phần  
mềm theo vòng đời của nó  
• Kỹ nghệ ngược (Reverse Engineering): dò lại  
thiết kế để tu sửa  
• Những lưu ý  
– Mức trừu tượng  
– Tính đầy đủ  
• Thay đổi phầnmềm thích nghi với môi trường:  
công nghệ phầncứng, môi trường phầnmềm  
• Nhữngnguyênnhânchí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  
– Tính tương tác  
– Tính định hướng  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.31  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.32  
Bảo trì để cải tiến  
Bảo trì để cải tiến (tiếp)  
• 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  
• 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  
• Những nguyên nhân chính:  
• Các bước thực hiện:  
– 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  
– Mở rộng thêm chức năng 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  
– 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ý  
– Biên dịch bảng chân lí  
– Tái cấu trúc phần mềm  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.33  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.34  
Bảo trì để phòng ngừa  
Bảo trì để phòng ngừa (tiếp)  
• 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ế không  
tường minh  
• 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ì phòng ngừa nếu như phần mềm  
được thiết kế tốt  
• 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  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.35  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.36  
6
10.2 Trình tự nghiệp vụ bảo trì  
Sơ đồ bảo trì  
Hiểu phần mềm đã có  
• Quy trình bảo trì là gì ? Đó là quá trình trong vòng đời  
của phần mềm, cũng tuân theo các pha phân tích, thiết  
kế, phát triển và kiểm thử từ khi phátsinh vấn đề cho  
đến khi giải quyết xong  
2
Phát triển phần mềm mới  
Loại bảo trì?  
1
Chỉnh phần mềm đã có  
Kiểm thử tính nhất quán  
Kiểm thử sau bảo trì  
• Thao tác bảo trì: Gồm 2 loại  
– Tu chỉnh cải đã có (loại 1)  
– Thêm cái mới (loại 2)  
Tạo biểu quản lý bảo trì  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.37  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.38  
Hiểu phần mềm đã có  
Tu sửa phần mềm đã có  
• Theo tài liệu nắm chắc các chức năng  
• Bảo trì chương trình nguồn, tạo các môđun  
mới và dịch lại  
• Theo tài liệu chi tiết hãy nắm vững đặc tả chi  
tiết, điều kiện kiểm thử, . . .  
• Dò đọc chương trình nguồn, hiểu trình tự xử lý  
chi tiết của hệ thống  
• Thực hiện kiểm thử unit và tu chỉnh những  
mục liên quan có trong tư liệu đặc tả  
• Chú ý theo sát tác động của môđun được sửa  
đến các thành phần khác trong hệ thống  
3 việc trên đều là công việc thực thi trên bàn  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.39  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.40  
Kiểm chứng tính nhất quán bằng kiểm  
Phát triển phần mềm mới  
thử kết hợp  
• Khi thêm chức năng mới phải phát triển  
chương trình cho phù hợp với yêu cầu  
• Đưa đơn vị (unit) đã dược kiểm thử vào hoạt  
động trong hệ thống  
• Cần tiến hành từ thiết kế, lập trình, gỡ lỗi và  
kiểm thử unit  
• Điều chỉnh sự tương tích giữa các môđun  
• Dùng các dữ liệu trước đây khi kiểm thử để  
kiểm thử lại tính nhất quán  
• Phản ảnh vào giao diện của phần mềm (thông  
báo, phiên bản, . . .)  
• Chú ý hiệu ứng làn sóng trong chỉnh sửa  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.41  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.42  
7
Kiểm tra khi hoàn thành bảo trì  
• Kiểm tra nội dung mô tả có trong tư liệu đặc tả  
Lập biểu quản lý bảo trì  
• Cần quản lý tình trạng bảo trì  
• Lập biểu quản lý tình trạng bảo trì  
– Ngày tháng, giờ  
• Cách ghi tư liệu có phù hợp với mô tả môi  
trường phần mềm mới hay không ?  
– Nguyên nhân  
– Tóm tắt cách khắc phục  
– Chi tiết khắc phục, hiệu ứng làn sóng  
– Người làm bảo trì  
– Số công  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.43  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.44  
Sáng kiến trong quy trình  
phát triển phần mềm  
10.3 Những vấn đề lưu ý để bảo trì  
Phương pháp cải tiến thao tác bảo trì:  
(1) Chuẩn hóa mọi khâu trong phát triển phần  
mềm  
• Sáng kiến trong quy trình phát triển phần mềm  
• Sáng kiến trong quy trình bảo trì phần mềm  
• Phát triển những kỹ thuật mới cho bảo trì  
(2) Người bảo trì chủ chốt tham gia vào giai đoạn  
phân tích và thiết kế  
(3) Thiết kế để dễ bảo trì  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.45  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.46  
Sáng kiến trong quy trình  
bảo trì phần mềm  
Phát triển những kỹ thuật mới cho bảo  
trì  
(1) Sử dụng các công cụ hỗ trợ phát triển phần  
• Công cụ phần mềm hỗ trợ bảo trì  
• Cơ sở dữ liệu cho bảo trì  
mềm  
(2) Chuẩn hóa thao tác bảo trì và thiết bị môi  
trường bảo trì  
(3) Lưu lại những thông tin sử bảo trì  
• Quản lý tài liệu, quản lý dữ liệu, quản lý  
chương trình nguồn, quản lý dữ liệu thử, quản  
lý sử bảo trì  
(4) Dự án nên cử một người chủ chốt của mình  
• Trạm bảo trì tính năng cao trong hệ thống mạng  
lưới bảo trì với máy chủ thông minh  
làm công việc bảo trì sau khi dự án kết thưc  
giai đoạn phát triển  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.47  
HUT, Falt. of IT  
Dept. of SE, 2001  
SE-V.48  
8
pdf 8 trang baolam 22860 Free
Bạn đang xem tài liệu "Bài giảng Nhập môn Công nghệ học Phần mềm (Introduction to Software Engineering) - Phần 5: Kiểm thử và Bảo trì (Test and Maintenance)", để 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_nhap_mon_cong_nghe_hoc_phan_mem_introduction_to_so.pdf