1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng công nghệ phần mềm chương 9 kiểm thử - nguyễn thanh bình

29 1,1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 358,55 KB

Nội dung

1 Kiểm thử (9) 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 2 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 3 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) 4 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 3 5 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 6 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 4 7 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 8 Các khái niệm 5 9 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 10 Tiến trình kiểm thử 6 11 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 12 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 ?” 7 13 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) 14 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 8 15 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ể 16 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ử 9 17 Kiểm thử trong tiến trình phát triển  Kiểm thử tích hợp (3) 18 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 10 19 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 20 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 [...]... 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 0, 0, 0 4, 0, 3 1, 2, 3.00001 0.001, 0.001, 0.001 99 999 , 99 999 , 99 999 3.00001, 3, 3 2 .99 999 ,... 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... • 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 Thư ng Cân ð u Nh n 6,5,3 6,1,6 4,4,4 Không là tam giác Vuông 5,6,10 7,4,4 không th Tù 3,4,5 √2,2,√2 không th -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... 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... 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:... 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 . 3.00001 Gần là một tam giác 0.001, 0.001, 0.001 Tam giác rất nhỏ 99 999 , 99 999 , 99 999 Tam giác rất lớn 3.00001, 3, 3 Tam giác gần ñều 2 .99 999 , 3, 4 Tam giác gần cân 3, 4, 5.00001 Tam giác giác gần vuông 3,. ñược kiểm thử 9 17 Kiểm thử trong tiến trình phát triển  Kiểm thử tích hợp (3) 18 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ử. 1 Kiểm thử (9) 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 2 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

Ngày đăng: 17/10/2014, 07:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN