Bài giảng Kỹ thuật lập trình (Programming technique): Chương 6 - Vũ Đức Vượng
Số trang: 52
Loại file: ppt
Dung lượng: 1.42 MB
Lượt xem: 10
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Kỹ thuật lập trình (Programming technique): Chương 6, chương này cung cấp cho học viên những nội dung về: khái niệm testing; internal testing; external testing; general testing strategies; kiểm tra các thuộc tính lưu trữ; kiểm tra giá trị trả về (checking return values);... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình (Programming technique): Chương 6 - Vũ Đức VượngTesting 1Mục đích• Giúp hiểu về: • Internal testing • External testing • General testing strategies• Vì sao? • Khó có thể khẳng định 1 CT lớn có làm việc chuẩn hay không • Khi XD 1 CT lớn, 1 LTV chuyên nghiệp sẽ dành thời gian cho việc viết test code không ít hơn tg dành cho viết bản thân CT • LTV chuyên nghiệp là người có khả năng, kiến thức rộng về các kỹ thuật và chiến lược testing 2Testing and debugging• Testing & debugging đi cùng với nhau nh ư 1 c ặp: • Testing tìm errors; debugging định vị và sửa chúng. • Ta có mô hình “testing/debugging cycle”: Ta test, r ồi debug, rồi lặp lại. • Bất kỳ 1 debugging nào nên được tiếp theo là 1 sự áp dụng lại của hàng loạt các tests liên quan, đặc biệt là các bài tests hồi quy. Điều này giúp tránh nảy sinh các lỗi mới khi debugging. • Testing & debugging không nên được thực hiện bởi cùng 1 người (thường là không nên). 3Khái niệm Testing• Beizer: Việc thực hiện test là để chứng minh tính đúng đắn giữa 1 phần tử và các đặc tả của nó.• Myers: Là quá trình thực hiện 1 CT với mục đích tìm ra những lỗi.• IEEE: Là quá trình kiểm tra hay đánh giá 1 hệ thống hay 1 thành phần hệ thống một cách thủ công hay tự động để kiểm chứng rằng nó thỏa mãn những yêu cầu đặc thù hoặc để xác định sự khác biệt giữa kết quả mong đợi và kết quả thực tế 4Program Verification• Lý tưở ng: Chứng minh đượ c rằng CT của ta là chính xác, đúng đắn • Có thể chứng minh các thuộc tính của CT? • Có thể CM điều đó kể cả khi CT kết thúc?!!! Specification Program Right/Wrong Checker program.c ? 5Program Testing• Thực dụng: Thuyết phục bản thân rằng CT có thể làm việc Specification Testing Probably Strategy Right/Wrong program.c 6External vs. Internal Testing• Các loại testing • External testing • Thiết kế dữ liệu để test program • Internal testing • Thiết kế program để CT tự test itself 7External Testing• External testing: TK dữ liệu để test CT• External testing taxonomy (1) Kiểm chứng giá trị biên : Boundary testing (2) Kiểm chứng lệnh : Statement testing (3) Kiểm chứng có hệ thống : Path testing (4) Stress testing 8Boundary Testing(1) Boundary testing • “Là kỹ thuật kiểm chứng sử dụng các giá trị nhập vào ở trên hoặc dưới một miền giới hạn của 1 đầu vào và với các giá trị đầu vào tạo ra các đầu ra ở biên của 1 đầu ra.” ‒ Glossary of Computerized System and Software Development Terminology• Còn gọi là kiểm tra điều kiện biên-corner case testing• Hầu hết các lỗi đều xảy ra ở các điều kiện biên - boundary conditions• Nếu CT làm việc ở đk biên, nó sẽ làm việc đúng với các đk khác 9Boundary Testing Example• VD : đọc 1 dòng từ stdin và đưa vào mảng ký tự int i; char s[MAXLINE]; for (i=0; (s[i]=getchar()) != && i < MAXLINE-1; i++) ; s[i] = ; printf(String: |%s| , s);• Boundary conditions • Dòng rỗng -Input starts with • In ra empty string (“ ”) => in ra “||” , ok • Nếu gặp EOF - End of file trước ‘ • Tiếp tục gọi getchar() và lưu ӱ vào s[i] • Nếu gặp ngay EOF (empty file) • Tiếp tục gọi getchar() và lưu ӱ vào s[i] 10Boundary Testing Example (cont.) int i; char s[MAXLINE]; for (i=0; (s[i]=getchar()) != && i < MAXLINE-1; i++) ; s[i] = ; printf(String: |%s| , s);• Boundary conditions (tt) • Dòng chứa đúng MAXLINE-1 ký tự • In ra đúng, với ‘ ’ tại s[MAXLINE-1] • Dòng chứa đúng MAXLINE ký tự • Ký tự cuối cùng bị ghi đè, và dòng mới không bao giờ đc đọc • Dòng dài hơn MAXLINE ký tự • 1 số ký tự, kể cả newline, không đc đọc và sót lại trong stdin 11Boundary Testing Example (cont.)• Rewrite the code int i; char s[MAXLINE]; for (i=0; iBoundary Testing Example (cont.)• Rewrite yet again for (i=0; ; i++) { int c = getchar(); if (c==EOF || c== || i==MAXLINE-1) { s[i] = ; break; } else s[i] = c; }• There’s still a problem...Input: Output:Four FourØ ...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình (Programming technique): Chương 6 - Vũ Đức VượngTesting 1Mục đích• Giúp hiểu về: • Internal testing • External testing • General testing strategies• Vì sao? • Khó có thể khẳng định 1 CT lớn có làm việc chuẩn hay không • Khi XD 1 CT lớn, 1 LTV chuyên nghiệp sẽ dành thời gian cho việc viết test code không ít hơn tg dành cho viết bản thân CT • LTV chuyên nghiệp là người có khả năng, kiến thức rộng về các kỹ thuật và chiến lược testing 2Testing and debugging• Testing & debugging đi cùng với nhau nh ư 1 c ặp: • Testing tìm errors; debugging định vị và sửa chúng. • Ta có mô hình “testing/debugging cycle”: Ta test, r ồi debug, rồi lặp lại. • Bất kỳ 1 debugging nào nên được tiếp theo là 1 sự áp dụng lại của hàng loạt các tests liên quan, đặc biệt là các bài tests hồi quy. Điều này giúp tránh nảy sinh các lỗi mới khi debugging. • Testing & debugging không nên được thực hiện bởi cùng 1 người (thường là không nên). 3Khái niệm Testing• Beizer: Việc thực hiện test là để chứng minh tính đúng đắn giữa 1 phần tử và các đặc tả của nó.• Myers: Là quá trình thực hiện 1 CT với mục đích tìm ra những lỗi.• IEEE: Là quá trình kiểm tra hay đánh giá 1 hệ thống hay 1 thành phần hệ thống một cách thủ công hay tự động để kiểm chứng rằng nó thỏa mãn những yêu cầu đặc thù hoặc để xác định sự khác biệt giữa kết quả mong đợi và kết quả thực tế 4Program Verification• Lý tưở ng: Chứng minh đượ c rằng CT của ta là chính xác, đúng đắn • Có thể chứng minh các thuộc tính của CT? • Có thể CM điều đó kể cả khi CT kết thúc?!!! Specification Program Right/Wrong Checker program.c ? 5Program Testing• Thực dụng: Thuyết phục bản thân rằng CT có thể làm việc Specification Testing Probably Strategy Right/Wrong program.c 6External vs. Internal Testing• Các loại testing • External testing • Thiết kế dữ liệu để test program • Internal testing • Thiết kế program để CT tự test itself 7External Testing• External testing: TK dữ liệu để test CT• External testing taxonomy (1) Kiểm chứng giá trị biên : Boundary testing (2) Kiểm chứng lệnh : Statement testing (3) Kiểm chứng có hệ thống : Path testing (4) Stress testing 8Boundary Testing(1) Boundary testing • “Là kỹ thuật kiểm chứng sử dụng các giá trị nhập vào ở trên hoặc dưới một miền giới hạn của 1 đầu vào và với các giá trị đầu vào tạo ra các đầu ra ở biên của 1 đầu ra.” ‒ Glossary of Computerized System and Software Development Terminology• Còn gọi là kiểm tra điều kiện biên-corner case testing• Hầu hết các lỗi đều xảy ra ở các điều kiện biên - boundary conditions• Nếu CT làm việc ở đk biên, nó sẽ làm việc đúng với các đk khác 9Boundary Testing Example• VD : đọc 1 dòng từ stdin và đưa vào mảng ký tự int i; char s[MAXLINE]; for (i=0; (s[i]=getchar()) != && i < MAXLINE-1; i++) ; s[i] = ; printf(String: |%s| , s);• Boundary conditions • Dòng rỗng -Input starts with • In ra empty string (“ ”) => in ra “||” , ok • Nếu gặp EOF - End of file trước ‘ • Tiếp tục gọi getchar() và lưu ӱ vào s[i] • Nếu gặp ngay EOF (empty file) • Tiếp tục gọi getchar() và lưu ӱ vào s[i] 10Boundary Testing Example (cont.) int i; char s[MAXLINE]; for (i=0; (s[i]=getchar()) != && i < MAXLINE-1; i++) ; s[i] = ; printf(String: |%s| , s);• Boundary conditions (tt) • Dòng chứa đúng MAXLINE-1 ký tự • In ra đúng, với ‘ ’ tại s[MAXLINE-1] • Dòng chứa đúng MAXLINE ký tự • Ký tự cuối cùng bị ghi đè, và dòng mới không bao giờ đc đọc • Dòng dài hơn MAXLINE ký tự • 1 số ký tự, kể cả newline, không đc đọc và sót lại trong stdin 11Boundary Testing Example (cont.)• Rewrite the code int i; char s[MAXLINE]; for (i=0; iBoundary Testing Example (cont.)• Rewrite yet again for (i=0; ; i++) { int c = getchar(); if (c==EOF || c== || i==MAXLINE-1) { s[i] = ; break; } else s[i] = c; }• There’s still a problem...Input: Output:Four FourØ ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Programming technique Kiểm chứng giá trị biên Kiểm chứng lệnh Kiểm tra điều kiện biên Kiểm tra bất biếnGợi ý tài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 251 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 192 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 182 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 151 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 150 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 117 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 104 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 103 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 84 0 0