Kiểm thử và đảm bảo chất lượng phần mềm

Slides:



Advertisements
Similar presentations
ĐỀ TÀI: GIỚI THIỆU CÁC HÀM LƯỢNG GIÁC THEO SÁCH PRECALCULUS JAMES STEWART – LOTHAR REDLIN – SALEEM WATSON.
Advertisements

Môn: NGỮ VĂN Năm học: PHÒNG GD&ĐT NAM TR À MY TRƯỜNG PTDTBT THCS TRÀ DON Trà Don, ngày 26 tháng 10 năm 2015.
Quản trị Rủi ro thiên tai và Biến đổi khí hậu
Báo cáo Cấu trúc đề thi PISA và Các dạng câu hỏi thi PISA
Sử dụng năng lượng hiệu quả
Thuật Toán Cây Quyết Định C4.5
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
XÂY DỰNG VÀ PHÁT TRIỂN CHƯƠNG TRÌNH ĐÀO TẠO THEO ĐỀ XƯỚNG CDIO
Rainforest Alliance đào tạo cho các nông trại trà ở Việt Nam
PHẦN 1. HỆ ĐIỀU HÀNH WINDOWS. 2 Nội dung trình bày  1.1. Thao tác cơ bản sử dụng máy tính  1.2. Màn hình nền desktop  1.3. Quản lý tệp tin và thư mục.
L/O/G/O NGUYÊN LÝ KẾ TOÁN Nguyễn Hữu Quy (MBA,CPA,APC)
1 ĐỒNG NAI ĐÁNH GIÁ TÌNH HÌNH VÀ ĐỀ XUẤT ÁP DỤNG HIỆU QUẢ MÔ HÌNH KINH TẾ DƯỢC TẠI BỆNH VIỆN ĐA KHOA ĐỒNG NAI NĂM 2017 Học viên: Nhóm 5 _ PP111.
GIỚI THIỆU TRÌNH BIÊN DỊCH FREE PASCAL
CHÍNH SÁCH VÀ TRIỂN KHAI CHÍNH SÁCH BẢO MẬT
Thực hiện các cuộc họp quan trọng
Sứ Mệnh GoCoast 2020 được thành lập bởi thống đốc Phil Bryant thông qua điều hành để phục vụ như là hội đồng cố vấn chính thức cho việc phân phối quỹ nhận.
TẬP HUẤN TÀI CHÍNH CÔNG ĐOÀN NĂM 2015
Tối đa hoá lợi nhuận và cung cạnh tranh
Ghi chú chung về khóa học
TÌM HIỂU VỀ WEB SERVICES VÀ XÂY DỰNG MỘT WEB SERVICE
Thực hiện cải thiện chất lượng
Giới thiệu chương trình trách nhiệm xã hội của doanh nghiệp
SỞ GD&ĐT TỈNH ĐIỆN BIÊN Bài giảng
KHAI PHÁ DỮ LIỆU (DATA MINING)
KIỂM ĐỊNH GIẢ THUYẾT THỐNG KÊ
THÔNG TIN MÔN HỌC Quản trị chuỗi cung ứng (Supply Chain Management): 45 tiết Tài liệu nghiên cứu Quản lý chuỗi cung ứng –Th.S. Nguyễn Kim Anh, Đại học.
THAM VẤN TÂM LÝ Bài Giới Thiệu.
Software testing Kiểm thử phần mềm
Ngôn ngữ lập trình C/C++
KHÓA TẬP HUẤN CÔNG BẰNG GIỚI VÀ CÁC DỰ ÁN PHÁT TRIỂN
Module 6 – Managing for Sustainability
Chương 4 Phân tích chi phí – lợi ích
Khởi động SXSH với công cụ quản lý nội vi 5S
TẠI SAO PHẢI NGHIÊN CỨU MÔ HÌNH HỒI QUY ĐA BIẾN?
Bộ nhớ máy tính Tổng quan bộ nhớ trong máy tính Bộ nhớ bán dẫn
KỸ NĂNG LẮNG NGHE- CHÚ TÂM
Tổng Quan Về Lập Trình Hướng Đối Tượng
Chương 6 Thiết kế hướng đối tượng
Giáo viên: Đặng Việt Cường
Liệu có thể đào tạo giáo viên liên ngành?
XÂY DỰNG KẾ HOẠCH VÀ CHIẾN LƯỢC MARKETING
Giữa bối cảnh cạnh tranh ngày càng khốc liệt, Khởi Nghiệp đang trở thành một làn sóng mới trong thị trường kinh doanh ở Việt Nam bởi mô hình giàu sức.
Chiến lược CSR –Là gì và làm thế nào để chúng ta sàng lọc lựa chọn?
UBND TỈNH ĐIỆN BIÊN SỞ GIÁO DỤC VÀ ĐÀO TẠO
LẬP TRÌNH ỨNG DỤNG WINDOW FORM
Xây dựng thương hiệu bền vững và tiếp thị cho sự thân thiện môi trường
Quản lý con người Quản lý người làm việc như những cá nhân và theo nhóm.
MÃ HÓA ĐỐI XỨNG CĂN BẢN.
KỸ NĂNG HỌC TẬP KHOA QUẢN TRỊ KINH DOANH ThS. NGUYỄN HOÀNG SINH
Chapter 16: Chiến lược giá
Giới Thiệu Tiêu Đề I.
Operators and Expression
Trách nhiệm giải trình của doanh nghiệp ở diện rộng
QUYỀN LỰC VÀ MÂU THUẪN TRONG NHÓM
Bài giảng TIẾT 55 : ĐIỆP NGỮ Chương trình Ngữ văn, lớp 7
MODULE 5: CÔNG CỤ 5S - QUẢN LÝ VẬN HÀNH CƠ BẢN
Chương 5: Thiết lập mạng.
Chương 2 Căn bản về Cung và Cầu 1.
GIỚI THIỆU KHÁI QUÁT VỀ THỊ TRƯỜNG TÀI CHÍNH
QUẢN TRỊ TÍNH ĐA DẠNG THÔNG QUA NHIỀU HOẠT ĐỘNG KINH DOANH
Kế hoạch Quản lý Hóa chất & Tích hợp vào Quy trình Nhà máy và Quản lý
NHÂN QUYỀN LÀ GÌ? Dẫn Nhập Nhân quyền và thu thập tài liệu: Bài Một.
Giảng viên: Lương Tuấn Anh
Trường CĐ CNTT HN Việt Hàn
Chương 8 NHỮNG VẤN ĐỀ QUẢN TRỊ CƠ BẢN TRONG THỰC THI CHIẾN LƯỢC
KHAI THÁC THỦY SẢN ĐẠI CƯƠNG
Chương 4: Tập gõ 10 ngón Chương 2: Học cùng máy tính
Chương 3: Tổ chức thông tin
Trân trọng kính chào các thầy cô và các
Presentation transcript:

Kiểm thử và đảm bảo chất lượng phần mềm Kiểm thử dựa trên bảng quyết định

Tổng quan Kiểm thử hàm BVA ECT Kiểm thử dựa trên bảng quyết định (DT) … ECT Kiểm thử dựa trên bảng quyết định (DT) Bảng quyết định Kỹ thuật Ví dụ

Bảng quyết định Yêu cầu chức năng có thể mô tả bằng bảng quyết định (DT) DT là một cách chính xác và gọn để mô tả logic phức tạp Gắn các điều kiện với các hành động tương ứng Giống lệnh if-then-else và switch-case DT có thể liên kết nhiều điều kiện độc lập với vài hành động một cách dễ hiểu Khác các cấu trúc điều khiển trong các ngôn ngữ lập trình Bảng quyết định là phương pháp chính xác và tối ưu để mô hình hóa các điều kiện logic phức tạp. Điều kiện là các biểu thức rút ra từ việc rẽ nhánh trong chương trình, như lệnh if, while, switch, v.v.

Ví dụ về bảng quyết định Khắc phục sự cố máy in Máy in không in Điều kiện Máy in không in Y N Đèn đỏ nhấp nháy Không nhận ra máy in Hành động Kiểm tra dây nguồn X Kiểm tra dây tín hiệu Kiểm tra phần mềm in đã cài đúng Kiểm tra/thay mực Kiểm tra kẹt giấy Ví dụ bảng quyết định, kiểm tra tình trạng các cột, và có các hành động tương ứng Khắc phục sự cố máy in

Sử dụng bảng quyết định Để quan sát tất cả các điều kiện dễ dàng Có thể dùng để Mô tả logic phức tạp Sinh ca kiểm thử, còn gọi là kiểm thử dựa trên logic Kiểm thử dựa trên logic được xem là: Kiểm thử cấu trúc khi áp dụng cho các cấu trúc chương trình Vd luồng điều khiển Kiểm thử hàm khi áp dụng cho đặc tả. Bảng quyết định cho phép quan sát dễ hơn tất cả các điều kiện có thể xảy ra. Có thể dùng để mô tả logic chương trình phức tạp, và dùng để sinh các ca kiểm thử (gọi là kiểm thử dựa trên logic) Kiểm thử dựa trên logic được coi là kiểm thử cấu trúc nếu dựa trên cấu trúc chương trình, như luồng điều khiển, và được coi là kiểm thử chức năng nếu dựa trên đặc tả.

Cấu trúc bảng quyết định 1. Các điều kiện 2. Các giá trị điều kiện 3. Hành động 4. Xảy ra hay không Mỗi điều kiện tương ứng với một biến, một quan hệ, hoặc một mệnh đề (predicate) Các giá trị của điều kiện Chỉ là True/False – Bảng quyết định hạn chế Một số giá trị – Bảng quyết định mở rộng Giá trị không quan tâm Mỗi hành động là một thủ tục hoặc thao tác phải thực hiện Đánh dấu hành động có/không xảy ra Cấu trúc bảng quyết định: Mỗi điều kiện tương ứng với 1 biến, một quan hệ, hoặc một mệnh đề Các giá trị cho biểu thức điều kiện được liệt kê trong các điều kiện khác (alternatives): Nếu chỉ là các giá trị logic, thì gọi là Bảng Quyết định Đầu vào Hạn chế; Nếu có vài giá trị, thì gọi là Bảng Quyết định Đầu vào Mở rộng. Mỗi hành động là một thủ tục hoặc thao tác phải thực hiện: Action entries sẽ là các hành động cần được thực hiện.

Ví dụ bảng quyết định tính lương Cách tính lương

Phương pháp xây dựng bảng Xác định các điều kiện và giá trị của chúng Xác định số luật tối đa Xác định các hành động Đánh số các luật nếu cần Đánh số các hành động thích hợp cho mỗi luật Kiểm tra chính sách Đơn giản hóa các luật (gộp cột) Phương pháp lập bảng, xác định các phần tử của bảng theo thứ tự trên.

Sử dụng bảng quyết định Bảng thích hợp khi: Đặc tả có thể chuyển về dạng bảng Thứ tự các hành động xảy ra không quan trọng Thứ tự các luật không ảnh hưởng đến hành động Khi một luật thỏa mãn và được chọn thì không cần xét luật khác Các hạn chế trên không ảnh hưởng đến việc sử dụng bảng Trong hầu hết các ứng dụng thứ tự các mệnh đề được xét là không quan trọng Khi nào nên sử dụng bảng quyết định Đặc tả có thể chuyển về dạng bảng quyết định Thứ tự thực hiện, đánh giá biểu thức, hay thứ tự thực hiện hành động ko phụ thuộc nhau Khi một qui tắc thỏa mãn thì không cần kiểm tra các qui tắc khác nữa.

Một số vấn đề với bảng quyết định Trước khi sử dụng bảng cần đảm bảo: Các luật phải đầy đủ Có mọi tổ hợp Các luật phải nhất quán Mọi tổ hợp giá trị chân lý chỉ gây ra một hoặc một tập hành động Khi sử dụng bảng QĐ, cần chú ý lập đầy đủ tất cả các qui tắc Các qui tắc phải nhất quán

Thiết kế ca kiểm thử Khi đặc tả đã được kiểm tra, mục tiêu là chứng tỏ chương trình thực hiện các hành động đúng cho mọi tổ hợp các giá trị của mệnh đề Nếu có k luật và n mệnh đề đúng/sai, thì có ít nhất k trường hợp và nhiều nhất là 2^n trường hợp phải xét. Có thể dựa trên các luật chưa mở rộng hoặc các luật đã mở rộng với 2^n ca Xác định đầu vào cho mỗi ca Ca kiểm thử có thể đc sinh từ bảng QĐ để kiểm tra chương trình có thực hiện các hành động khi xảy ra tổ hợp giá trị của bảng quyết định đúng.

Thiết kế ca kiểm thử Để xác định ca kiểm thử, chúng ta chuyển các điều kiện thành đầu vào, hành động thành đầu ra. Một số điều kiện sẽ tham chiếu đến các lớp tương đương đầu vào, và hành động tham chiếu đến các phần xử lý chức năng chính của cột đang xét. Các luật được chuyển thành các ca kiểm thử Khi kiểm thử các hàm, coi điều kiện là đầu vào, hành động là đầu ra. Điều kiện có thể nói đến các lớp tương đương của đầu vào, và hành động có thể nói đến các phần xử lý của hàm. Các qui tắc sẽ biến thành các ca kiểm thử.

Bảng quyết định cho Triangle Conditions C1: a < b+c? F T C2: b < a+c? - C3: c < a+b? C4: a=b? C5: a=c? C6: b=c? Actions A1: Not a Triangle X A2: Scalene A3: Isosceles A4: Equilateral A5: Impossible

Ca kiểm thử cho Triangle Case ID a b c Expected Output DT1 4 1 2 Not a Triangle DT2 DT3 DT4 5 Equilateral DT5 ? Impossible DT6 DT7 3 Isosceles DT8 DT9 DT10 DT11 Scalene

Bảng quyết định cho NextDate (thử lần 1) Chúng ta có thể chia thành các lớp tương đương sau: M1= {month | month has 30 days} M2= {month | month has 31 days} M3= {month | month is February} D1= {day | 1 ≤ day ≤ 28} D2= {day | day = 29} D3= {day | day = 30} D4= {day | day=31} Y1= {year | year = 1900} Y2= {year | 1812 ≤ year ≤ 2012 AND year ≠ 1900 AND (0 = year mod 4} Y3= {year | 1812 ≤ year ≤ 2012 AND 0 ≠ year mod 4} Khi đó ta có bảng quyết định như sau

Bảng quyết định cho NextDate (1) Conditions 1 2 3 4 5 6 7 8 C1: month in M1 M2 C2: day in D1 D2 D3 D4 C3: year in - Rule count 3 Actions A1: Impossible X A2: Increment day A3: Reset day A4: Increment month ? A5: reset month A6: Increment year

Bảng quyết định cho NextDate (2) Conditions 9 10 11 12 13 14 15 16 C1: month in M3 C2: day in D1 D2 D3 C3: year in Y1 Y2 Y3 - Rule count 1 3 Actions A1: Impossible X A2: Increment day A3: Reset day A4: Increment month A5: reset month A6: Increment year

Bảng quyết định cho NextDate (Lần thử 2) Xét một cách phân hoạch khác: M1= {month | month has 30 days} M2= {month | month has 31 days} M3= {month | month is December} M4= {month | month is February} D1= {day | 1 ≤ day ≤ 27} D2= {day | day = 28} D3= {day | day = 29} D4= {day | day = 30} D5= {day | day=31} Y1= {year | year is a leap year} Y2= {year | year is a common year} M1= {month | month has 30 days} M2= {month | month has 31 days} M3= {month | month is February} D1= {day | 1 ≤ day ≤ 28} D2= {day | day = 29} D3= {day | day = 30} D4= {day | day=31} Y1= {year | year = 1900} Y2= {year | 1812 ≤ year ≤ 2012 AND year ≠ 1900 AND (0 = year mod 4} Y3= {year | 1812 ≤ year ≤ 2012 AND 0 ≠ year mod 4}

Bảng quyết định cho NextDate (1) Conditions 1 2 3 4 5 6 7 8 9 10 C1: month in M1 M2 C2: day in D1 D2 D3 D4 D5 C3: year in - Actions A1: Impossible X A2: Increment day A3: Reset day A4: Increment month A5: reset month A6: Increment year

Bảng quyết định cho NextDate (2) Conditions 11 12 13 14 15 16 17 18 19 20 21 22 C1: month in M3 M4 C2: day in D1 D2 D3 D4 D5 C3: year in - Y1 Y2 Actions A1: Impossible X A2: Increment day A3: Reset day A4: Increment month A5: reset month A6: Increment year

Quan sát và hướng dẫn Bảng quyết định phù hợp khi Có nhiều quyết định đưa ra Có các quan hệ logic quan trọng giữa các biến đầu vào Có các tính toán liên quan đến các tập con của các biến đầu vào Có quan hệ nhân quả giữa đầu vào và đầu ra Có logic tính toán phức tạp (độ phức tạp đồ thị cyclomatic cao) Bảng quyết định không dễ mở rộng (scale up) Bảng quyết định có thể làm mịn, cải tiến dần

Bài tập Ứng dụng kiểm thử bảng quyết định cho một số bài toán ví dụ