Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường

KHÁI NIỆM 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).

• Những khó khăn khi kiểm thử:

 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ử.

6 điểm lưu ý khi kiểm thử:

 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ử.

 Tính dễ kiểm thử phụ thuộc vào cấu trúc chương trình.

 Người kiểm thử và người phát triển nên khác nhau.

 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.

 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ó.

 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.

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 1

Trang 1

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 2

Trang 2

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 3

Trang 3

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 4

Trang 4

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 5

Trang 5

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 6

Trang 6

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 7

Trang 7

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 8

Trang 8

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 9

Trang 9

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 29 trang duykhanh 5700
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường

Bài giảng Công nghệ phần mềm ứng dụng - Bài 5: Kiểm thử và bảo trì - Thạc Bình Cường
v1.0015112208 
CÔNG NGHỆ PHẦN MỀM ỨNG DỤNG 
Giảng viên: ThS. Thạc Bình Cường 
1 
v1.0015112208 2 
BÀI 5 
KIỂM THỬ VÀ BẢO TRÌ 
Giảng viên: ThS. Thạc Bình Cường 
v1.0015112208 
MỤC TIÊU BÀI HỌC 
• Lập kế hoạch kiểm thử và tiến hành kiểm 
thử các loại phần mềm: Hệ thống, ứng 
dụng, module chương trình. Lập báo cáo 
về kiểm thử. 
• Đánh giá hiệu quả hệ thống và duy trì hệ 
thống làm việc trong môi trường thực. 
3 
v1.0015112208 
CÁC KIẾN THỨC CẦN CÓ 
• Tin học đại cương; 
• Ngôn ngữ lập trình; 
• Phân tích thiết kế hệ thống thông tin. 
4 
v1.0015112208 
HƯỚNG DẪN HỌC 
• Rà soát các yêu cầu phần mềm và các đặc tả 
phần mềm. 
• Lập kế hoạch và tiến độ kiểm thử. 
• Lựa chọn đội ngũ kiểm thử và bảo trì. 
• Tiến hành kiểm thử các trường hợp: kiểm thử 
hệ thống, kiểm thử tích hợp và kiểm thử đơn vị. 
• Sau mỗi trường hợp kiểm thử lập báo cáo 
kiểm thử. 
5 
v1.0015112208 
CẤU TRÚC NỘI DUNG 
6 
Phương pháp bảo trì 5.2 
Phương pháp kiểm thử 5.1 
v1.0015112208 
5.1. PHƯƠNG PHÁP KIỂM THỬ 
7 
5.1.1. Khái niệm kiểm thử 5.1.2. Phương pháp thử 
5.1.3. Các kỹ thuật thiết kế 
trường hợp thử 
5.1.4. Phương pháp thử 
các module 
v1.0015112208 
5.1.1. KHÁI NIỆM 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). 
• Những khó khăn khi kiểm thử: 
 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ử. 
8 
v1.0015112208 
5.1.1. KHÁI NIỆM KIỂM THỬ (tiếp theo) 
9 
• 6 điểm lưu ý khi kiểm thử: 
 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ử. 
 Tính dễ kiểm thử phụ thuộc vào cấu trúc chương trình. 
 Người kiểm thử và người phát triển nên khác nhau. 
 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. 
 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ó. 
 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. 
v1.0015112208 
5.1.1. KHÁI NIỆM KIỂM THỬ (tiếp theo) 
10 
Tương ứng giữa vòng đời dự án và kiểm thử: 
Đối tượng và phạm vi 
Đặc tả chức năng/ 
thiết kế logic 
Thiết kế vật lý 
Cấu trúc chương trình 
và đặc tả module 
Mã hoá module 
chương trình 
Kiểm thử chấp nhận 
Kiểm thử hệ thống 
Kiểm tích hợp 
Kiểm đơn vị 
chương trình 
Kiểm hồi quy 
v1.0015112208 
5.1.2. PHƯƠNG PHÁP THỬ 
• Kiểm thử tĩnh (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). 
• 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: 
 Thiết kế trường hợp thử theo thử trên bàn; 
 Trường hợp thử phải có cả kết quả kỳ vọng sẽ thu được; 
 Dịch chương trình nguồn và tạo module tải để thực hiện; 
 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; 
 Nhập dữ liệu đã thiết kế cho trường hợp kiểm thử; 
 Điều chỉnh môi trường 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); 
 Thực hiện module tải và ghi nhận kết quả; 
 Xác nhận kết quả với kết quả kỳ vọng; 
 Lặp lại thao tác bước (5) – (8). 
11 
v1.0015112208 
5.1.3. CÁC KỸ THUẬT THIẾT KẾ TRƯỜNG HỢP THỬ 
12 
• Kiểm thử hộp đen: 
 Phương pháp phân đoạn tương đương: 
 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ữ liệ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 đó. 
Black Box 
Results Input 
Black box Data Testing Strategy 
 Ư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. 
 Phương pháp phân tích giá trị biên: 
 Là 1 trường hợp riêng của phân đoạn. 
 Ví 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. 
v1.0015112208 
5.1.3. CÁC KỸ THUẬT THIẾT KẾ TRƯỜNG HỢP THỬ (tiếp theo) 
13 
 Phương pháp đoán lỗi: 
 Dựa vào trực giác và kinh nghiệm; 
 Ví 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. 
 Phương pháp đồ thị nguyên nhân – kết quả: mã tuần tự, phủ định and, 
or do until. 
v1.0015112208 
5.1.3. CÁC KỸ THUẬT THIẾT KẾ TRƯỜNG HỢP THỬ (tiếp theo) 
14 
• Kiểm thử hộp trắng: 
 Bó các lệnh; 
 Bó các rẽ nhánh; 
 Bó các điều kiện; 
 Bó các điều kiện – rẽ nhánh. 
• Trình tự thiết kế kiểm thử: 
 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 quy. 
Results 
Input 
White Box Data Testing Strategy 
   
  
v1.0015112208 
5.1.4. KỸ THUẬT KIỂM THỬ MODULE 
15 
a. Kiểm thử tích hợp module 
• Kiểm thử dưới lên (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. 
Mức 4 
Mức 3 
Mức 2 
Mức 1 
v1.0015112208 
5.1.4. KỸ THUẬT KIỂM THỬ MODULE (tiếp theo) 
16 
• Kiểm thử trên xuống (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 nút thử xong được thử tiếp nút khác. 
 Kiểm thử hồi quy. 
Mức 4 
Mức 3 
Mức 2 
Mức 1 
v1.0015112208 
5.1.4. KỸ THUẬT KIỂM THỬ MODULE (tiếp theo) 
17 
• Kiểm thử cột trụ (Big bung 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. 
• Kiểm thử kép (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. 
v1.0015112208 
5.1.4. KỸ THUẬT KIỂM THỬ MODULE (tiếp theo) 
b. Kiểm thử hệ thống 
18 
Có 4 phương pháp 
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. 
v1.0015112208 
5.2. PHƯƠNG PHÁP BẢO TRÌ 
19 
5.2.1. Khái niệm bảo trì 
5.2.2. Trình tự nghiệp vụ 
bảo trì 
5.2.3. Những vấn đề về 
bảo trì hiện nay 
v1.0015112208 
5.2.1. KHÁI NIỆM BẢO TRÌ 
20 
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ì 
Tu sửa 
Thích hợp 
Cải tiến 
Phòng ngừa 
v1.0015112208 
5.2.1. KHÁI NIỆM BẢO TRÌ (tiếp theo) 
21 
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. 
• Một số nguyên nhân điển hì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 
 Thiếu chuẩn hóa trong phát triển phần mềm (trước đó). 
• 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 đủ; 
 Tính tương tác; 
 Tính định hướng. 
v1.0015112208 
5.2.1. KHÁI NIỆM BẢO TRÌ (tiếp theo) 
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 hệ điều hành; 
 Thay đổi cấu trúc tệp hoặc mở rộng cơ sở dữ liệu. 
22 
v1.0015112208 
5.2.1. KHÁI NIỆM BẢO TRÌ (tiếp theo) 
23 
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. 
• 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. 
 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. 
• Bảo trì để cải tiến còn gọi là tái kỹ nghệ. 
• 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. 
• 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 Boole 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. 
v1.0015112208 
5.2.1. KHÁI NIỆM BẢO TRÌ (tiếp theo) 
24 
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. 
• 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. 
• 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. 
• 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. 
v1.0015112208 
5.2.2. TRÌNH TỰ NGHIỆP VỤ BẢO TRÌ 
25 
• 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át sinh vấn đề cho đến khi 
giải quyết xong. 
• Thao tác bảo trì: 
 Tu chỉnh cái đã có (loại 1); 
 Thêm cái mới (loại 2). 
• Sơ đồ bảo trì: 
Hiểu phần mềm đã có 
Loại bảo trì 
Chỉnh phần mềm đã có 
Kiểm thử tính nhất quán 
Kiểm thử sau bảo trì 
Tạo biểu quản lý bảo trì 
Phát triển phần mềm 
mới (phần mới) 
2 
1 
v1.0015112208 
5.2.2. TRÌNH TỰ NGHIỆP VỤ BẢO TRÌ (tiếp theo) 
26 
• Hiểu phần mềm đã có: 
 Theo tài liệu nắm chắc các chức năng. 
 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. 
 Ba việc trên đều là công việc thực thi trên bàn. 
• Tu sửa phần mềm đã có: 
 Bảo trì chương trình nguồn, tạo các module mới và dịch lại. 
 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 module được sửa đến các thành phần khác trong 
hệ thống. 
• Phát triển phần mềm mới: 
 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. 
 Cần tiến hành từ thiết kế, lập trình, gỡ lỗi và kiểm thử unit. 
 Phản ảnh vào giao diện của phần mềm (thông báo, phiên bản). 
v1.0015112208 
5.2.2. TRÌNH TỰ NGHIỆP VỤ BẢO TRÌ (tiếp theo) 
27 
• Kiểm chứng tính nhất quán bằng kiểm thử kết hợp: 
 Đưa đơn vị (unit) đã được kiểm thử vào hoạt động trong hệ thống. 
 Điều chỉnh sự tương thích giữa các module. 
 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. 
 Chú ý hiệu ứng làn sóng trong chỉnh sửa. 
• 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ả. 
 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. 
• 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 (bảng) quản lý tình trạng bảo trì: 
 Ngày tháng, giờ; 
 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. 
v1.0015112208 
5.2.3. NHỮNG VẤN ĐỀ VỀ BẢO TRÌ HIỆN NAY 
• Phương pháp cải tiến thao tác bảo trì: 
 Sáng kiến trong quy trình phát triển phần mềm: 
 Chuẩn hóa mọi khâu trong phát triển phần mềm; 
 Người bảo trì chủ chốt tham gia vào giai đoạn phân tích và thiết kế; 
 Thiết kế để dễ bảo trì. 
• Sáng kiến trong quy trình bảo trì phần mềm: 
 Sử dụng các công cụ hỗ trợ phát triển phần mềm; 
 Chuẩn hóa thao tác bảo trì và thiết bị môi trường bảo trì; 
 Lưu lại những thông tin lịch sử bảo trì; 
 Dự án nên cử một người chủ chốt của mình làm công việc bảo trì sau khi dự án 
kết thúc giai đoạn phát triển. 
• Phát triển những kỹ thuật mới cho bảo trì: 
 Công cụ phần mềm hỗ trợ bảo trì; 
 Cơ sở dữ liệu cho 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ý lịch sử bảo trì; 
 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. 
28 
v1.0015112208 
TÓM LƯỢC CUỐI BÀI 
Trong bài này chúng ta đã tìm hiểu những nội dung sau: 
• Phương pháp kiểm thử: khái niệm, phương pháp và 
các kỹ thuật kiểm thử. 
• Phương pháp bảo trì: khái niệm bảo trì, trình độ 
nghiệp vụ và vấn đề bảo trì hiện nay. 
29 

File đính kèm:

  • pdfbai_giang_cong_nghe_phan_mem_ung_dung_bai_5_kiem_thu_va_bao.pdf