Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
793,96 KB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM MÔN HỌC CÔNG NGHỆ PHẦN MỀM Chương Kiểm thử phần mềm CNPM Nội dung CNPM Chiến lược kiểm thử (Testing Strategy) Kỹ thuật kiểm thử phần mềm (Software Testing Techniques) Kiểm chứng thẩm định (V&V) Kiểm chứng thẩm định bao gồm kiểm thử phần mềm Kiểm chứng (Verification): “Chúng ta xây dựng sản phẩm theo cách" Phần mềm phải phù hợp với đặc tả Thẩm định (Validation): “Chúng ta xây dựng sản phẩm đúng" CNPM Phần mềm phải thực người dùng thật cần Kiểm thử phần mềm Testing is the process of exercising a program with the specific intent of finding errors prior to (trước khi) delivery to the end user CNPM What Testing Shows errors requirements conformance performance an indication of quality CNPM Who Tests the Software? developer Understands the system but, will test "gently" and, is driven by "delivery" CNPM independent tester Must learn about the system, but, will attempt to break it and, is driven by quality Chiến lược kiểm thử unit test system test CNPM integration test validation test Chiến lược kiểm thử Bắt đầu với ‘testing-in-the-small’ tiến tới ‘testing-inthe-large’ Với phần mềm truyền thống Kiểm thử module (component) Kiểm thử tích hợp module Với phần mềm hướng đối tượng CNPM Khi bắt đầu “testing in the small” tập trung vào lớp (classs) mà chứa thuộc tính phương thức, liên quan đến truyền thông cộng tác Các công việc cần thiết Chiến lược Xác định rõ ràng đối tượng kiểm thử Hiểu biết người dùng phần mềm tạo tiền sử (profile) cho loại người dùng Xây dựng kế hoạch kiểm thử mà nhấn mạnh tới “rapid cycle testing” Xây dựng phần mềm có tính kháng lỗi cao dùng cho kiểm thử Dùng kiểm tra kỹ thuật hình thức lọc trước kiểm thử Đề kiểm tra kỹ thuật hình thức để đánh giá chiến lược kiểm thử test case Phát triển hướng cải tiến liên tục cho qui trình kiểm thử CNPM Một chiến thuật kiểm nghiệm phổ biến (V) Hệ thống Kiểm thử hệ thống Yêu cầu Kiểm thử thẩm tra Thiết kế Mã hóa CNPM Kiểm thử tích hợp Kiểm Thử đơn vị (module) 10 Phân tích giá trị biên BVA (Boundary Value Analysis) user queries mouse picks FK input output formats prompts input domain data output domain Input, output, cấu trúc liệu… CNPM 62 Phân hoạch tương đương CNPM 63 Lớp tương đương cho tìm kiếm nhị phân CNPM 64 Một testcase cho tìm kiếm nhị phân Input array (T) 17 17 17, 21, 23, 29 9, 16, 18, 30, 31, 41, 45 17, 18, 21, 23, 29, 38, 41 17, 18, 21, 23, 29, 33, 38 12, 18, 21, 23, 32 21, 23, 29, 33, 38 CNPM Key (Key) 17 17 45 23 21 23 25 Output (Found, L) true, false, ?? true, true, true, true, true, false, ?? 65 Kiểm thử so sánh Được dùng với phần mềm cần có tính tin cậy cao CNPM Phân chia nhóm kỹ sư phần mềm phát triển version độc lập ứng dụng dùng đặc tả Mỗi version kiểm thử với liệu kiểm thử bảo đảm tất có output giống Tất version thực thi song song với thời gian thực so sánh kết 66 Kiểm thử hướng đối tượng OOT Berard [BER93] đề nghị cho thiết kế test case: Mỗi test case phải có định danh phải kết hợp rõ ràng với class test Chỉ rõ mục đích test Các bước cho test [BER94]: a Một danh sách trạng thái cho đối tượng kiểm thử b Một danh sách messages tác vụ thực c Danh sách loại trừ (exceptions) xuất d Danh sách đối tượng (i.e., changes in the environment external ) e Các thông tin hỗ trợ CNPM 67 Phương pháp kiểm thử OOT … Kiểm thử hướng lỗi (Fault-based testing) Thiết kế test case dựa vào dự đaón lỗi có khả xảy Kiểm thử lớp phân cấp lớp (Class Testing and the Class Hierarchy) Thiết kế test dựa vào kịch (Scenario - Based Test Design) CNPM Dựa vào người dùng làm (use-case) 68 …Phương pháp kiểm thử OOT … Kiểm thử ngẫu nhiên (Random testing) CNPM Xác định tác vụ áp dụng cho lớp Xác định ràng buộc việc dùng chúng Xác định trình tự kiểm thử nhỏ an operation sequence that defines the minimum life history of the class (object) Tạo trình tự kiểm thử ngẫu nhiên (nhưng có giá trị) exercise other (more complex) class instance life histories 69 …Phương pháp kiểm thử OOT … Kiểm thử Partition CNPM Làm giảm số test case yêu cầu để kiểm thử lớp Phân chia dựa vào trạng thái categorize and test operations based on their ability to change the state of a class Phân chia dựa vào thuộc tính categorize and test operations based on the attributes that they use Phân chia dựa vào loại (category) categorize and test operations based on the generic function each performs 70 …Phương pháp kiểm thử OOT … Kiểm thử tương tác (Inter-class) CNPM Với lớp client sử dụng danh sách tác vụ lớp để tạo chuỗi trình tự test ngẫu nhiên Những tác vụ gởi thông điệp tới lớp server Với thông điệp tạo xác định lớp cộng tác tác vụ đáp ứng đối tượng server Với tác vụ đối tượng server gọi, xác định thông điệp truyền Với thông điệp truyền xác định mức tác vụ mà khẩn nài kết hợp chúng với trình tự test 71 …Phương pháp kiểm thử OOT Kiểm thử Behavior The tests to be designed should achieve all state coverage [KIR94] That is, the operation sequences should cause the Account class to make transition through all allowable states open empty acct setup Accnt set up acct deposit (initial) deposit balance credit accntInfo working acct withdraw withdrawal (final) dead acct close nonworking acct Figure 14.3 St at e diagram f or Account class (adapt ed f rom [ KIR94] ) CNPM 72 Các mẫu kiểm thử (Testing Patterns) Kiểm thử cặp (pair testing): Hai người kiểm thử làm việc với thiết kế thực thi Test Giao diện test riêng biệt (Separate test interface): dùng để test lớp nội (internal classes) lớp phô bày giao diện bên CNPM 73 Tự động kiểm thử Kiểm thử công việc tốn nhiều công sức Những hệ thống kiểm thử cung cấp công cụ cho phép giảm thời gian chi phí Phần lớn hệ thống kiểm thử hệ thống mở CNPM Có thể dùng kịch để tạo liệu test Output dùng để so sánh cách thủ công Có thể phát triển hệ thống so sánh file 74 Một hệ thống kiểm thử CNPM 75 Kiểm thử kiến trúc, môi trường ứng dụng đặc trưng Kiểm thử GUI: Dùng đồ thị mô hình trạng thái xác định, công cụ kiểm thử tự động Kiểm thử client/server: Kiểm thử chức ứng dụng Kiểm thử server Kiểm thử sở liệu Kiểm thử truyền thông mạng Kiểm thử tư liệu trợ giúp Kiểm thử hệ thống thời gian thực CNPM Kiểm thử công việc (task) Kiểm thử hành vi Kiểm thử liên tác vụ (inter task) Kiểm thử hệ thống: interrupt với độ ưu tiên, xử lý interrrupt, số lượng interrrupt xuất khoảng thời gian… 76