9-KiemThu

Tài liệu tương tự
Chiến lược kiểm thử Chiến lược kiểm thử Bởi: Khoa CNTT ĐHSP KT Hưng Yên Các công đoạn kiểm thử Quá trình kiểm thử có thể chia làm các giai đoạn : Kiểm

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG Công trình ñược hoàn thành tại ĐẠI HỌC ĐÀ NẴNG PHẠM ANH TUẤN Người hướng dẫn khoa học: TS.Nguyễn Tấ

TCVN 11391:2016 MỤC LỤC 1 Phạm vi áp dụng Tài liệu viện dẫn Thuật ngữ, định nghĩa và các từ viết tắt Thuật ngữ và định nghĩa...

Microsoft Word DOC

Template Soạn Sách

Tìm hiểu ngôn ngữ lập trình Visual Basic Tìm hiểu ngôn ngữ lập trình Visual Basic Bởi: Khuyet Danh Tìm hiểu ngôn ngữ lập trình Visual Basic Tổng quan

Microsoft Word - NghiDinh CP ve SoHuuTriTue.doc

Microsoft Word ND-CP.DOC

1 BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG 2 Công trình ñược hoàn thành tại ĐẠI HỌC ĐÀ NẴNG NGUYỄN THỊ THU VÂN Người hướng dẫn khoa học: PGS. TS Nguyễn

Microsoft Word - QL-Tam.doc

Microsoft Word - BAI BAO_final.doc

Microsoft Word - Kiem dinh chat luong phan mem

Microsoft Word - ND CP ve SoHuuTriTue-QuyenTacGia.doc

quytrinhhoccotuong

Microsoft Word - Document1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM MÔN HỌC CÔNG NGHỆ PHẦN MỀM Chương 8 Kiểm thử phần mềm CNPM/NN 1

NGÔN NGƯ LÂ P TRIǸH Biên tập bởi: nguyenvanlinh

Microsoft Word - Phat trien nganh BC9_tom tat.doc

Xử lý, Bảo tồn và Tái sử dụng nước

Microsoft Word - khoahochethong.docx

Microsoft Word - GT Phuong phap thi nghiem.doc

Microsoft Word - HD Thuong mai Hang hoa trong khuon kho HD khung ve HTKT toan dien ASEAN-Trung Quoc.doc

Quy che to chuc, hoat dong cua HDQT theo N59

Microsoft Word - SGV-Q4.doc

HỘI THI TIN HỌC TRẺ TỈNH AN GIANG ĐỀ CHÍNH THỨC ĐỀ THI LÝ THUYẾT BẢNG A - KHỐI TIỂU HỌC Khóa ngày: Thời gian : 20 phút (không kể thời gian

Microsoft Word - QD BoGDDT DeAn CTU TrongDiem-2020.doc

Untitled

TCVN T I Ê U C H U Ẩ N Q U Ố C G I A TCVN :2014 ISO/IEC :2013 Xuất bản lần 1 KỸ THUẬT PHẦN MỀM VÀ HỆ THỐNG ĐẢM BẢO PHẦN MỀM VÀ HỆ THỐNG

DKTC_Tap huan PHHS DNK_

Lập trình cấu trúc trong Visual Basic Lập trình cấu trúc trong Visual Basic Bởi: Nguyễn Sơn Học xong chương này, sinh viên phải nắm bắt được các vấn đ

Quốc hội CỘNG HÒA DÂN CHỦ NHÂN DÂN LÀO Hòa bình-độc lập-dân chủ-thống nhất-thịnh vượng Số 11/QH Viêng chăn, ngày 9/11/2005 LUẬT DOA

- 1 - BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG Công trình ñược hoàn thành tại ĐẠI HỌC ĐÀ NẴNG BÙI VĂN VĨ Người hướng dẫn khoa học: TS. NGUYỄN ĐỨC

Microsoft Word - TCVN doc

Microsoft Word - TOM TAT.KIEU NGA.doc

N.T.H.Le 118

ptdn1101

Microsoft Word - Chuong 3. cac may lam nho.doc

Newsletter March VN Final

Microsoft Word - LV _ _.doc

RM6 Manual - Huong dan xay lap & lap dat

QCVN

Microsoft Word - CTDT Bien phien dich Tieng Nhat.doc

(Microsoft Word - T\364i.doc)

Microsoft Word - He TA - he Tay doc

Newsletter Oct 2011 VN PP

Microsoft Word - ACL - BAO CAO THUONG NIEN 2012.DOC

Lkgjlfjq?etyuiiofjkfjlsfjkslddghdgertt

Slide 1

Microsoft Word - PHAPLUATDAICUONG[1].doc

Chương trình dịch

Microsoft Word - HBA43B450A Oven SI vn B.doc

TỔNG CỤC THỦY SẢN VIỆN KINH TẾ QUY HOẠCH THỦY SẢN BÁO CÁO TÓM TẮT QUY HOẠCH TỔNG THỂ PHÁT TRIỂN NGÀNH THỦY SẢN VIỆT NAM ðến NĂM 2020, TẦM NHÌN 2030 Hà

ĐIỆN BIÊN PHỦ TRÊN KHÔNG : CON NGƯỜI ĐÃ THẮNG VŨ KHÍ! Nhắc lại những ngày tháng oanh liệt trong chiến tranh chống đế quốc Mỹ năm 1972 để ghi nhớ từng

Newsletter April VN _1_

Trại hè Toán Mô hình PiMA Projects in Mathematics in Applications ĐÁNH GIÁ THIẾT BỊ Y SINH Mentor Vũ Đức Tài Đại học Khoa học Tự nhiên Hà Nội Phạm Ngu

Microsoft Word - Bieu phi dich vu Tieng Viet R2 ( ).doc

ptdn1159

Microsoft Word - hbthao-ChientranhPhapThanh.doc

PHẬT THUYẾT ĐẠI THỪA

NGƯỜI THÁI XÂY DỰNG MIỀN TÂY BẮC TRONG THỜI GIAN CUỐI THẾ KỶ XIII QUA XIV SANG ĐẦU THẾ KỶ XV Cầm Trọng Trải qua những bước thăng trầm của duyên cách,

(Microsoft Word - Cham S\363c T\342m Linh_R.Ruthe_T\355n Nh\342n.doc)

The Total Economic Impact™ Of IBM Security Guardium

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Bài 5. Kiểu dữ liệu và biểu thức trong C Nội dung 1. Các ki

Chính sách bảo mật của RIM Research In Motion Limited và các công ty con và công ty chi nhánh ("RIM") cam kết có một chính sách lâu dài trong việc bảo

ptdn1127

(Microsoft Word - Ph? k\375 t?c \320?A TH? PHONG2)

Tiên Tri Về Thời Cuộc của Việt Nam và Thế Giới Phạm Công Tắc

ẤN QUANG PHÁP SƯ VĂN SAO TỤC BIÊN ẤN QUANG PHÁP SƯ VĂN SAO TỤC BIÊN Giảng giải: Đại Sư Ấn Quang Việt dịch: Bửu Quang Tự đệ tử Như Hòa PHẦN MƯỜI TÁM 17

A DI ĐÀ KINH SỚ SAO DIỄN NGHĨA A DI ĐÀ KINH SỚ SAO DIỄN NGHĨA Liên Trì Đại Sư Chùa Vân Thê soạn Sớ Sao Pháp Sư Cổ Đức Diễn Nghĩa Giảng giải: Pháp Sư T

PowerPoint Template

Microsoft Word - Nganh Kinh te quoc te

Microsoft Word - Luc Bat_HoaiKhanh.doc

NguyenThiThao3B

Trung Tâm Gia Sư Tài Năng Việt Đề Số 1 Câu 1: Sau khi thực hiện đoạn chương trình sau, giá trị của biến S bằng bao nhiêu: S

Những cơ sở của ngôn ngữ C# Những cơ sở của ngôn ngữ C# Bởi: phamvanviet truonglapvy Trong chương này sẽ trình bày về hệ thống kiểu trong C#; phân biệ

QUY TẮC, ĐIỀU KHOẢN SẢN PHẨM BẢO HIỂM BỔ TRỢ

ptdn1020

ẤN QUANG PHÁP SƯ VĂN SAO TỤC BIÊN ẤN QUANG PHÁP SƯ VĂN SAO TỤC BIÊN Giảng giải: Đại Sư Ấn Quang Việt dịch: Bửu Quang Tự đệ tử Như Hòa PHẦN MƯỜI HAI 19

Kỹ thuật nuôi lươn Kỹ thuật nuôi lươn Bởi: Nguyễn Lân Hùng Chỗ nuôi Trong cuốn Kỹ thuật nuôi lươn (NXB nông nghiệp, 1992) chúng tôi đưa ra qui trình n

Phaät Thuyeát Ñaïi Thöøa Voâ Löôïng Thoï Trang Nghieâm Thanh Tònh Bình Ñaúng Giaùc Kinh Nguyên Hán bản: Ngài HẠ LIÊN CƯ hội tập TÂM TỊNH chuyển ngữ

02 CÔNG BÁO/Số 31/Ngày HỘI ðồng NHÂN DÂN TỈNH QUẢNG NGÃI Số: 40/2014/NQ-HðND CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM ðộc lập - Tự do - Hạnh phúc

02 CÔNG BÁO/Số 05+06/Ngày ỦY BAN NHÂN DÂN TỈNH PHÚ YÊN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ðộc lập - Tự do - Hạnh phúc Số: 56/2014/Qð-UBND T

03. CTK tin chi - CONG NGHE KY THUAT CO KHI.doc

SỞ GD & ĐT BẮC GIANG TRƯỜNG THPT CHUYÊN ĐÊ THI THỬ THPT QUỐC GIA NĂM 2018 Môn: LỊCH SỬ Thơ i gian la m ba i: 50 phút, không kể thơ i gian phát đề Câu

Liên Trì Ðại Sư - Liên Tông Bát Tổ

Thứ Tư Số 363 (6.615) ra ngày 28/12/ CHỦ TỊCH NƯỚC TRẦN ĐẠI QUANG: XUẤT BẢN TỪ NĂM 1985 BỘ TRƯỞNG LÊ

Loi vong lap lap vo tan - Worksheet_Change

Document

chuong4

Phân tích Thiết kế Hướng đối tượng - OOAD

Hướng dẫn tham khảo Hướng dẫn sơ lược quy trình hoạt động HL-B2000D HL-B2080DW Brother khuyến khích giữ hướng dẫn này cùng với thiết bị Brother để tha

Chương 4 PHƯƠNG PHÁP DỰ BÁO TỶ GIÁ HỐI ĐOÁI ( Dựa theo tài liệu Đại Học Công NghiệpTPHCM và các tài liệu khác)


SÁCH TRÒ CHƠI AWANA

TRƯỜnG ĐẠI HỌC BÁCH KHOA HÀ nội VIỆn CÔnG nghệ THÔnG TIn VÀ TRUYỀn THÔnG TIN HỌC ĐẠI CƯƠNG Bài 10. Các cấu trúc lập trình trong C Nội dung 1. Cấu trúc

Biến Cố : 40 Năm Nhìn Lại (Phần I) Bảo Vũ (ABC Radio) Hôm nay, cách đây đúng 40 năm, vào ngày mùng 2 tháng 11 năm 1963, cuộc đảo chính tại Sà

Kỹ thuật và Công nghệ 179 MỘT VÀI SUY NGHĨ VỀ VẤN ĐỀ TÍNH TOÁN CỐT THÉP CHO VÁCH CỨNG NHÀ CAO TẦNG HIỆN NAY SOME THOUGHTS ON THE CURRENT CALCULATION F

LUẬN VĂN: Áp dụng quản lý rủi ro vào qui trình thủ tục hải quan đối với hàng hóa xuất, nhập khẩu

TechnicalView Tuan

Microsoft Word - Smardt brochure Vietnam 2612.docx

Bản ghi:

Kiểm thử Nguyễn Thanh Bình Khoa Công nghệ Thông tin Trường ðại học Bách khoa ðại học ðà Nẵng Nội dung Giới thiệu về kiểm thử Kiểm thử trong tiến trình phát triển Kiểm thử hộp ñen Kiểm thử hộp trắng 2 1

Kiểm thử là gì? IEEE: Kiểm thử là tiến trình vận hành hệ thống hoặc thành phần dưới những ñiều kiện xác ñịnh, quan sát hoặc ghi nhận kết quả và ñưa ra ñánh giá về hệ thống hoặc thành phần ñó Myers: Kiểm thử là tiến trình thực thi chương trình với mục ñích tìm thấy lỗi (The art of software testing) 3 Kiểm thử là gì? Kiểm thử Gở rối (debug) Kiểm thử nhằm phát hiện lỗi Gở rối xác ñịnh bản chất lỗi và ñịnh vị lỗi trong chương trình tiến hành sửa lỗi 4 2

Các khái niệm Một sai sót (error) là một sự nhầm lẫn hay một sự hiểu sai trong quá trình phát triển phần mềm của người phát triển Một lỗi (fault, defect) xuất hiện trong phần mềm như là kết quả của một sai sót Một hỏng hóc (failure) là kết quả của một lỗi xuất hiện làm cho chương trình không hoạt ñộng ñược hay hoạt ñộng nhưng cho kết quả không như mong ñợi sai sót lỗi hỏng hóc 5 Các khái niệm Dữ liệu thử (test data) dữ liệu vào cần cung cấp cho phần mềm trong khi thực thi Kịch bản kiểm thử (test scenario) các bước thực hiện khi khi kiểm thử Phán xét kiểm thử (test oracle) ñánh giá kết quả của kiểm thử tự ñộng: chương trình thủ công: con người 6 3

Các khái niệm Kiểm thử viên (tester) người thực hiện kiểm thử Ca kiểm thử (test case) tập dữ liệu thử ñiều kiện thực thi kết quả mong ñợi 7 Các khái niệm 8 4

Tiến trình kiểm thử Kiểm thử thường bao gồm các bước thiết kế các ca kiểm thử bước tạo dữ liệu thử kiểm thử với tất cả các dữ liệu vào là cần thiết không thể kiểm thử vét cạn chọn tập các dữ liệu thử ñại diện từ miền dữ liệu vào dựa trên các tiêu chuẩn chọn dữ liệu thử bước thực thi chương trình trên dữ liệu thử cung cấp dữ liệu thử thực thi ghi nhận kết quả bước quan sát kết quả kiểm thử thực hiện trong khi hoặc sau khi thực thi so sánh kết quả nhận ñược và kết quả mong ñợi 9 Tiến trình kiểm thử 10 5

Khó khăn của kiểm thử Liên quan ñến tiến trình phát triển gồm nhiều giai ñoạn phát triển cái ra của một giai ñoạn là cái vào của giai ñoạn khác mất mát thông tin Về mặt con người thiếu ñào tạo ít chú trọng vai trò kiểm thử Về mặt kỹ thuật không tồn tại thuật toán tổng quát có thể chứng minh sự ñúng ñắn hoàn toàn của bất kỳ một chương trình nào 11 Tại sao kiểm thử Hợp thức hóa (validation) chỉ ra rằng sản phẩm ñáp ứng ñược yêu cầu người sử dụng Xác minh (verification) chỉ ra rằng sản phẩm thỏa mãn ñặc tả yêu cầu Phân biệt hợp thức hóa và xác minh Verification: Are we building the product right? Validation: Are we building the right product? 12 6

Kiểm thử trong tiến trình phát triển Các kỹ thuật kiểm thử kỹ thuật kiểm thử tĩnh (static testing) kỹ thuật kiểm thử ñộng (dynamic testing) kiểm thử hộp ñen (black-box testing) kỹ thuật kiểm thử chức năng (functional testing) kiểm thử hộp trắng (white-box testing) kỹ thuật kiểm thử cấu trúc (structural testing) Các hoạt ñộng kiểm thử/chiến lược kiểm thử kiểm thử ñơn vị (unit testing) kiểm thử tích hợp (integration testing) kiểm thử hợp thức hóa (validation testing) kiểm thử hồi quy (regression testing) 13 Kiểm thử trong tiến trình phát triển Kiểm thử ñơn vị (unit testing) kiểm thử mỗi ñơn vị phần mềm (mô-ñun) sử dụng kỹ thuật kiểm thử hộp ñen dữ liệu thử ñươc tạo ra dựa trên tài liệu thiết kế có thể sử dụng cả kiểm thử hộp trắng và kiểm thử tĩnh phần mềm yêu cầu chất lượng cao thường ñược thực hiện trên phần cứng phát triển phần mềm 14 7

Kiểm thử trong tiến trình phát triển Kiểm thử tích hợp (integration testing) sau khi ñã thực hiện kiểm thử ñơn vị ghép nối các ñơn vị/thành phần phần mềm kiểm thử sự ghép nối, trao ñổi dữ liệu giữa các ñơn vị/thành phần sử dụng kỹ thuật kiểm thử hộp ñen môt số trường hợp, sử dụng kỹ thuật kiểm thử hộp trắng chi phí cao, khó khăn dữ liệu thử ñược tạo ra dựa trên thiết kế tổng thể 15 Kiểm thử trong tiến trình phát triển Kiểm thử tích hợp (2) cần xây dựng thêm nút trám (stub): các thành phần khác mô phỏng các thành phần phần mềm chưa ñược tích hợp trình ñiều khiển (driver): các thành phần tạo ra các dữ liệu vào cho một vài các thành phần phần mềm trong tập hợp ñang ñược kiểm thử 16 8

Kiểm thử trong tiến trình phát triển Kiểm thử tích hợp (3) 17 Kiểm thử trong tiến trình phát triển Kiểm thử tích hợp (4) chiến lược từ trên xuống (top-down) kiểm thử tích hợp các thành phần chính trước, sau ñó thêm vào các thành phần ñược gọi trực tiếp bởi các thành phần vừa kiểm thử cho phép xác ñịnh sớm các lỗi về kiến trúc các bộ dữ liệu thử có thể ñược tái sử dụng cho các bước tiếp theo tuy nhiên chiến lược này ñòi hỏi phải xây dựng nhiều nút trám chiến lược từ dưới lên (bottom-up) kiểm thử các thành phần không gọi các thành phần khác, sau ñó thêm vào các thành phần gọi các thành phần vừa kiểm thử ít sử dụng các nút trám nhưng lại xác ñịnh lỗi trễ hơn 18 9

Kiểm thử trong tiến trình phát triển Kiểm thử hợp thức hóa (validation testing) còn gọi là kiểm thử hệ thống (system testing) thực hiện sau khi kiểm thử tích hợp kết thúc chứng minh phần mềm thực hiện ñúng mong ñợi của người sử dụng dựa vào yêu cầu người sử dụng chỉ sử dụng kỹ thuật kiểm thử hộp ñen nên thực hiện trong môi trường mà phần mềm sẽ ñược sử dụng 19 Kiểm thử trong tiến trình phát triển Kiểm thử hồi quy (regression testing) phần mềm sau khi ñưa vào sử dụng, có thể có các chỉnh sửa có thể phát sinh lỗi mới cần kiểm thử lại: kiểm thử hồi quy thường tái sử dụng các bộ dữ liệu thử ñã sử dụng trong các giai ñoạn trước 20 10

Kiểm thử trong mô hình V ðặc tả yêu cầu Kiểm thử hợp thức hóa Thiết kế kiến trúc Kiểm thử tích hợp Thiết kế chi tiết Kiểm thử ñơn vị Mã hóa 21 Các kỹ thuật kiểm thử kỹ thuật kiểm thử tĩnh (static testing) không thực thi chương trình kỹ thuật kiểm thử ñộng (dynamic testing) kiểm thử hộp ñen (black-box testing) kỹ thuật kiểm thử chức năng (functional testing) kiểm thử hộp trắng (white-box testing) kỹ thuật kiểm thử cấu trúc (structural testing) 22 11

Kiểm thử tĩnh Thanh tra mã nguồn (code inspection) Chứng minh hình thức Thực thi hình thức (symbolic execution) ðánh giá ñộ phức tạp McCabe Nejmeh 23 Kiểm thử hộp ñen Input test data I e Inputs causing anomalous behaviour System Output test results O e Outputs which reveal the presence of defects 24 12

Kiểm thử hộp ñen Chỉ cần dựa vào ñặc tả chương trình Xây dựng dữ liệu thử trước khi mã hóa/lập trình Thường phát hiện các lỗi ñặc tả yêu cầu, thiết kế Dễ dàng thực hiện Chi phí thấp 25 Kiểm thử hộp ñen Kiểm thử giá trị biên (boundary value analysis) Kiểm thử lớp tương ñương (equivalence class testing) Kiểm thử ngẫu nhiên (random testing) ðồ thị nhân-quả (cause-efect graph) Kiểm thử cú pháp 26 13

Kiểm thử giá trị biên Cơ sở lỗi thường xuất hiện gần các giá trị biên của miền dũ liệu Tập trung phân tích các giá trị biên của miền dữ liệu ñể xây dựng dữ liệu kiểm thử Nguyên tắc: kiểm thử các dữ liệu vào gồm giá trị nhỏ nhất giá trị gần kề lớn hơn giá trị nhỏ nhất giá trị bình thường giá trị gần kề nhỏ hơn giá trị lớn nhất giá trị lớn nhất 27 Kiểm thử giá trị biên 28 14

Kiểm thử giá trị biên Nguyên tắc chọn dữ liệu thử Nếu dữ liệu vào thuộc một khoảng, chọn 2 giá trị biên 4 giá trị = giá trị biên ± sai số nhỏ nhất Nếu giá trị vào thuộc danh sách các giá trị, chọn phần tử thứ nhất, phần tử thứ hai, phần tử kế cuối và phần tử cuối Nếu dữ liệu vào là ñiều kiện ràng buộc số giá trị, chọn số giá trị tối thiểu, số giá trị tối ña và một số các số giá trị không hợp lệ Tự vận dụng khả năng và thực tế ñể chọn các giá trị biên cần kiểm thử 29 Kiểm thử giá trị biên Ví dụ (1) Chương trình nhận vào ba số thực, kiểm tra ba số thực có là ñộ dài ba cạnh một tam giác. Nếu là ñộ dài ba cạnh của một tam giác, thì kiểm tra xem ñó là tam giác thường, cân, ñều cũng như kiểm tra ñó là tam giác nhọn, vuông hay tù. 30 15

Kiểm thử giá trị biên Ví dụ (2) Dữ liệu thử 1, 1, 2 Không là tam giác 0, 0, 0 Chỉ một ñiểm 4, 0, 3 Một cạnh bằng không 1, 2, 3.00001 Gần là một tam giác 0.001, 0.001, 0.001 Tam giác rất nhỏ 99999, 99999, 99999 Tam giác rất lớn 3.00001, 3, 3 Tam giác gần ñều 2.99999, 3, 4 Tam giác gần cân 3, 4, 5.00001 Tam giác giác gần vuông 3, 4, 5, 6 Bốn giá trị 3 Chỉ một giá trị Dữ liệu vào rỗng -3, -3, 5 Giá trị âm 31 Kiểm thử lớp tương ñương Ý tưởng phân hoạch miền dữ liệu vào thành các lớp các dữ liệu có quan hệ với nhau mỗi lớp dùng ñể kiểm thử một chức năng, gọi là lớp tương ñương 32 16

Kiểm thử lớp tương ñương Ba bước ñối với mỗi dữ liệu vào, xác ñịnh các lớp tương ñương từ miền dữ liệu vào chọn dữ liệu ñại diện cho mỗi lớp tương ñương kết hợp các dữ liệu thử bởi tích ðề-các ñể tại ra bộ dữ liệu kiểm thử 33 Kiểm thử lớp tương ñương Nguyên tắc phân hoạch các lớp tương ñương Nếu dữ liệu vào thuộc một khoảng, xây dựng 1 lớp các giá trị lớn hơn 1 lớp các giá trị nhỏ hơn n lớp các giá trị hợp lệ Nếu dữ liệu là tập hợp các giá trị, xây dựng 1 lớp với tập rỗng 1 lớp quá nhiều các giá trị n lớp hợp lệ Nếu dữ liệu vào là ñiều kiện ràng buộc, xây dựng 1 lớp với ràng buộc ñược thỏa mãn 1 lớp với ràng buộc không ñược thỏa mãn 34 17

Kiểm thử lớp tương ñương Ví dụ Bài toán tam giác Nhọn Vuông Tù Thường 6,5,3 5,6,10 3,4,5 Cân 6,1,6 7,4,4 2,2, 2 ðều 4,4,4 không thể không thể Không là tam giác -1,2,8 35 Bài tập Kiểm thử giá trị biên Viết một chương trình thống kê phân tích một tệp chứa tên và ñiểm của sinh viên trong một năm học. Tệp này chứa nhiều nhất 100 trường. Mỗi trường chứa tên của mỗi sinh viên (20 ký tự), giới tính (1 ký tự) và ñiểm của 5 môn học (từ 0 ñến 10). Mục ñích chương trình: tính diểm trung bình mỗi sinh viên tính ñiểm trung bình chung (theo giới tính et theo môn học) tính số sinh viên lên lớp (ñiểm trung bình trên 5) Xây dựng dữ liệu thử cho chương trình trên bởi kiểm thử giá trị biên 36 18

Bài tập Kiểm thử lớp tương ñương Viết chương trình dịch, trong ñó có câu lệnh FOR, ñặc tả câu lệnh FOR như sau: Lệnh FOR chỉ chấp nhận một tham số duy nhất là biến ñếm. Tên biến không ñược sử dụng quá hai ký tự khác rỗng. Sau ký hiệu = là cận dưới và cận trên của biến ñếm. Các cận trên và cận dưới là các số nguyên dương và ñược ñặt giữa từ khóa TO. Xây dựng dữ liệu thử ñể kiểm thử câu lệnh FOR theo kỹ thuật kiểm thử lớp tương ñương 37 Kiểm thử hộp trắng Dựa vào mã nguồn/cấu trúc chương trình Xây dựng dữ liệu thử sau khi mã hóa/lập trình Thường phát hiện các lỗi lập trình Khó thực hiện Chi phí cao 38 19

Các kỹ thuật kiểm thử hộp trắng Kiểm thử dựa trên ñồ thị luồng ñiều khiển Kiểm thử dựa trên ñồ thị luồng dữ liệu Kiểm thử ñột biến (mutation testing) 39 ðồ thị luồng ñiều khiển ðồ thị luồng ñiều khiển (Control Flow Graph - ðtlðk) là ñồ thị có hướng, biểu diễn một chương trình ñỉnh: biểu diễn lệnh tuần tự hay khối lệnh cung: biểu diễn các rẽ nhánh một ñỉnh vào và một ñỉnh ra ñược thêm vào ñể biểu diễn ñiểm vào và ra của chương trình Lộ trình (path) trong ðtlðk xuất phát từ ñỉnh vào ñi qua các ñỉnh và cung trong ñồ thị và kết thúc tại ñỉnh ra 40 20

ðồ thị luồng ñiều khiển Ví dụ 1 if x <= 0 then x := -x else x := 1 -x; if x = -1 then x=1 else x := x+1; writeln(x); 41 ðồ thị luồng ñiều khiển Ví dụ 1 (2) Có 4 lộ trình [a, b, d, f, g] [a, b, d, e, g] [a, c, d, f, g] [a, c, d, e, g] 42 21

ðồ thị luồng ñiều khiển Ví dụ 1 (3) ðồ thị G1 có thể biểu diễn dạng biểu thức chính quy: G1 = abdfg + abdeg + acdfg + acdeg Hay ñơn giản: G1 = a(bdf + bde + bdf + bde)g G1 = a(b + c)d(e + f)g 43 ðồ thị luồng ñiều khiển Biểu diễn các cấu trúc Cấu trúc tuần tự: ab Cấu trúc rẽ nhánh: b(a + d)c 44 Cấu trúc lặp: ab(cb)*d 22

ðồ thị luồng ñiều khiển Ví dụ 2 i := 1; found:= false; while (not found) do begin if (a[i] = E) then begin found:= true; s := i; end; i := i + 1; end; 45 G2 = ab(c(ε + d)eb)*f ðồ thị luồng ñiều khiển Bài tập 1 Vẽ ñồ thị luồng ñiều khiển Xây dựng biểu thức chính quy biểu diễn ñồ thị if n <= 0 then n := 1-n end; if (n mod 2) = 0 then n := n / 2 else n := 3*n + 1 end ; write(n); 46 23

ðồ thị luồng ñiều khiển Bài tập 2 Vẽ ñồ thị luồng ñiều khiển Xây dựng biểu thức chính quy biểu diễn ñồ thị read(i); s := 0; while(i <= 3) do begin if a[i] > 0 thens := s + a[i]; i := i + 1; end 47 Kiểm thử dựa trên ðtlðk Các tiêu chuẩn bao phủ Phủ tất cả các ñỉnh/lệnh Phủ tất cả các cung Phủ tất cả các quyết ñịnh Phủ tất cả các ñường ñi 48 24

Kiểm thử dựa trên ðtlðk Phủ tất cả các ñỉnh/lệnh Cho phép phủ tất cả các ñỉnh/lệnh mỗi lệnh ñược thực thi ít nhất một lần tiêu chuẩn tối thiểu functionsum(x,y : integer) : integer; begin if (x = 0) then sum := x else sum := x + y end; 49 Khi thực thi lộ trình acd sẽ phát hiện lỗi Kiểm thử dựa trên ðtlðk Phủ tất cả các ñỉnh/lệnh Hạn chế của tiêu chuẩn read(x); if (x <> 0) then x := 1; y := 1/x; Phủ tất cả các ñỉnh không phát hiện ñược phát hiện lỗi 50 25

Kiểm thử dựa trên ðtlðk Phủ tất cả các cung Phủ tất cả các cung ít nhất một lần phủ tất các giá trị ñúng sai của một biểu thức lô-gíc phủ tất cả các cung kéo theo phủ tất cả các ñỉnh if ((a < 2) and (b = a)) then x := 2 -a else x := a -2 51 Dữ liệu thử DT1 = {a=b=1} và DT2 = {a=b=3} thỏa mãn phủ tất cả các cung, nhưng không phủ tất cả các quyết ñịnh, chẳng hạn DT3 = {a=3, b=2} Kiểm thử dựa trên ðtlðk Phủ tất cả các quyết ñịnh Phủ tất cả các quyết ñịnh ñược thỏa mãn khi: tiêu chuẩn phủ tất cả các cung ñược thỏa mãn và mỗi biểu thức con của biểu thức ñiều kiện ñược thử với tất cả các giá trị có thể Nếu (a AND b) a = b = true a = b = false a = true, b = false a = false, b = true 52 26

Kiểm thử dựa trên ðtlðk Phủ tất cả các quyết ñịnh Dữ liệu thử DT1 = {a = b = 1} DT2 = {a = 1, b = 0} DT3 = {a = 3, b = 2} DT4 = {a = b = 3} 53 Kiểm thử dựa trên ðtlðk Phủ tất cả các quyết ñịnh Hạn chế Không phát hiện lỗi trường hợp không thực thi vòng lặp read(inf, sup); i := inf; sum:= 0; while(i <= sup) do begin sum:= sum+ a[i]; i := i + 1; end; writeln(1/sum); 54 Dữ liệu thử DT1 = {a[1]=50, a[2]=60, a[3]=80, inf=1, sup=3} phủ tất cả các cung/quyết ñịnh, nhưng không phát hiện lỗi 27

Kiểm thử dựa trên ðtlðk Phủ tất cả các lộ trình Mỗi lộ trình phải ñược thực thi ít nhất một lần Gặp khó khăn khi số lần lặp vô hạn Chỉ thực hiện một số lần lặp nhất ñịnh Hoặc chỉ thực hiện hai loại lộ trình các lộ trình vượt qua vòng lặp nhưng không lặp các lộ trình chỉ lặp n lần (chẳng hạn n = 1) 55 Kiểm thử dựa trên ðtlðk Phủ tất cả các lộ trình Dữ liệu thử DT1 = {a[1]=50, a[2]=60, a[3]=80, inf=1, sup=3} DT2 = {a[1]=50, a[2]=60, a[3]=80, inf=3, sup=2} 56 28

Kiểm thử dựa trên ðtlðk Bài tập Xây dựng dữ liệu thử thỏa mãn các tiêu chuẩn phủ tất cả các ñỉnh phủ tất cả các cung phủ tất cả các lộ trình 57 if n 0 then n := 1-n end; if (n mod 2) = 0 then n := n / 2 else n := 3*n + 1 end ; write(n); Kiểm thử dựa trên ðtlðk Bài tập Xây dựng dữ liệu thử thỏa mãn các tiêu chuẩn phủ tất cả các lộ trình 58 function goodstring(var count : integer) : boolean; var ch : char; begin goodstring := false; count := 0; read(ch); if ch = a then begin read(ch) while(ch = b ) or (ch = c ) do begin count := count + 1; read(ch); end; if ch = x then goodstring = true; end; end; ===HẾT=== 29