Lý thuyếtKiểm Tra Phần Mềm
GV: Nguyễn Ngọc TúEmail: [email protected]ộ môn: Kỹ thuật Phần mềm
Bài 12: Các công cụ hỗ trợ kiểm tra phần mềm
NNTu Software Testing S2008 2
Nội dung
Các dạng phần mềm hỗ trợ kiểm traSử dụng hiệu quả các công cụChọn lựa công cụ
NNTu Software Testing S2008 3
Các dạng phần mềm
Phân lớpCác công cụ quản lý kiểm traCác công cụ quản lý yêu cầuCác công cụ quản lý lần vếtCác công cụ quản lý cấu hìnhCác công cụ hỗ trợ rà soátCác công cụ hỗ trợ mô hìnhCác công cụ hỗ trợ thiết kếCác công cụ hỗ trợ chuẩn bị dữ liệuCác công cụ thực thi kiểm thửCác công cụ khác
NNTu Software Testing S2008 4
Phân lớp các công cụ kiểm thử
Có thể phân lớp theo hoạt động kiểm thử chínhPhần lớn các phân lớp đều có hai dạng: thương mại vàmiễn phíCác công cụ tự động cho các công việc phải lặp đi lặplại
Hiệu quả hơnCông cụ hỗ trợ giúp gia tăng sự tin cậy của phần mềm
So sánh kết quả, phát sinh tải, …Công cụ xâm nhập,..Một số công cụ giành riêng cho người phát triển
NNTu Software Testing S2008 5
Các công cụ quản lý kiểm tra
Cho phép lần vết các kiểm thử, kết quả kiểm thử, hỏng hóc, … tới cơ sở của kiểm traCho phép ghi nhận kết quả và xuất ra báo cáoGiúp quản lý kiểm tra và quá trình kiểm traCho phép giao tiếp tới các công cụ thực thi kiểmthử, quản lý, lần vết lỗiQuản lý phiên bản hoặc giao tiếp với công cụ quảnlý cấu hình khácPhân tích định lượng (metrics) liên quan tới kiểmthử
NNTu Software Testing S2008 6
Các công cụ quản lý yêu cầu
Lưu trữ thông tin yêu cầuKiểm tra sự đồng nhất và các yêu cầu lỗiCho phép các yêu cầu được lập thứ tự ưutiênCho phép lần vết giữa các yêu cầu, chứcnăng, đặc tính với các mẫu thử.
NNTu Software Testing S2008 7
Các công cụ lần vết
Lưu trữ và quản lý các báo cáo về lỗiPhân lớp và lập ưu tiên cho lỗi thuận tiệnCung cấp luồng công việc trên cơ sở trạngthái bao gồm việc phân việc tới các thànhviênCho phép theo dõi lỗi và trạng thái thực hiệnthông qua quá trình thực hiênPhân tích thống kêTạo các báo cáo, báo biểu
NNTu Software Testing S2008 8
Công cụ quản lý cấu hình
Lưu trữ thông tin về các phiên bản, bản biêndịch (build) của phần mềm và testwareCho phép lần vết giữa testware và phần mềmcả những biến đổi của sản phẩmHỗ trợ phát triển và kiểm thử trên nhiều môitrường HW/SW
NNTu Software Testing S2008 9
Công cụ hỗ trợ Rà soát
Lưu thông tin về quá trình rà soátLưu và truyền thông các ghi chú rà soátBáo cáo khiếm khuyết và mức nỗ lựcQuản lý các tham chiếu luật hoặc danh mục ý kiểm thửHỗ trợ rà soát trực tuyếnLần vết giữa tài liệu và mã nguồn
NNTu Software Testing S2008 10
Công cụ phân tích tĩnh
Sử dụng chính bởi người phát triểnTìm khiếm khuyết trước khi kiểm thử độngTuân theo chuẩn mã hóaPhân tích cấu trúc và sự phụ thuộcHỗ trợ để hiểu rõ mã nguồnTính toán các yếu tố (metrics) từ mã
NNTu Software Testing S2008 11
Các công cụ mô hình hóa vàthiết kế
Sử dụng chính bởi người phát triểnGiúp tạo mô hình hệ thốngXác thực mô hìnhHỗ trợ phát sinh một số TC từ mô hình
NNTu Software Testing S2008 12
Các công cụ thiết kế kiểm thử
Phát sinh thông tin đầu vào hoặc mẫu thử thựcsự từ:
Yêu cầuGUIMô hình thiết kếMã nguồn
Phát sinh kết quả kỳ vọngPhát sinh frameworks, templates, and stubs cho kiểm thử
NNTu Software Testing S2008 13
Các công cụ cho dữ liệu kiểmthử
Thao tác hoặc tạo CSDL, tập tin, dữ liệu choviệc thực thi kiểm thửTạo khối lượng lớn các dữ liệu hữu íchChứng thực dữ liệu kiểm thử tùy thuộc vào cácluật cụ thểPhân tích dữ liệu theo tần suất các điềukiện,…
NNTu Software Testing S2008 14
Các công cụ thực thi kiểm thử
Chạy mẫu thửgửi dữ liệu đầu vào qua đoạn script tự động và so sánh kết quả với kỳ vọng
Bao gồm bộ so sánhTạo ra các ghi nhận có thể phân tíchThực hiện với GUI, API, CLI
NNTu Software Testing S2008 15
Frameworks, Simulators chokiểm thử
Phần thay thế cho thiết bị phần cứng rắc rối có khảnăng gây lỗiKiểm thử đơn vị dễ dàng hơn bởi việc phát sinh vàhỗ trợ bởi drivers, stubs, objects thay thế cho phầnhoạt động của hệ thốngCung cấp các FW thực thi ở lớp giữa
NNTu Software Testing S2008 16
Bộ so sánh kiểm thử
Kiểm tra tập tin, csdl, kết quả kiểm thử so vớikỳ vọng
NNTu Software Testing S2008 17
Công cụ đánh giá bao phủ
Sử dụng chính bởi người phát triểnĐánh giá tỷ lệ % kiểu cấu trúc của mã đã đượcxét
Phát biểuNhánh / quyết địnhĐối tượngGọi hàm
Kiểm tra triệt để tới mức nào tập kiểm thử đãthực thi
NNTu Software Testing S2008 18
Công cụ bảo mật
Kiểm tra virus máy tínhMô phỏng các loại tấn công khác nhauMô phỏng các điều kiện bảo mật khác nhau
NNTu Software Testing S2008 19
Thực thi, giám sát và phân tíchđộng
Kiểm tra phụ thuộc thời gian và dò bộ nhớTheo dõi và báo cáo hệ thống đã hoạt độngra sao dưới điều kiện mô phỏngPhát sinh các điều kiện tải khác nhau choứng dụng, csdl, mạng, máy chủ, …
NNTu Software Testing S2008 20
Các công cụ khác
Một số công cụ tập trung vào một ứng dụng cụthể
Kiểm tra thực thi WebCông cụ phân tích tĩnh cho từng ngôn ngữCông cụ kiểm tra bảo mật
Miền ứng dụng đặc biệtembedded systems
Các công cụ gỡ rối
NNTu Software Testing S2008 21
Hiệu quả sử dụng công cụ
Những tác độngKhác biệt về kỹ thuật viết kịch bản kiểm thửLợi ích và rủi ro
NNTu Software Testing S2008 22
Cơ hội và rủi ro
Cơ hội:Giảm công việc dưthừaGia tăng sự đồngnhất và tính lặpĐánh giá mục tiêuĐơn giản hóa lập báocáo
Rủi ro:Các kỳ vọng về phầnmềm phi thực tếKhông xác định đượcthời gian thực hiện, kiển thử, bảo trì, …Sử dụng công cụ chocác kiểm thử khôngphù hợp
NNTu Software Testing S2008 23
Kiểm thử tự động
Trong phát triển phần mềm , thông thường
Quy trình yêu cầu một lượng đángkể về thời gian, kỹ năng và tiền bạc
Theo thói quen, thường chỉ sửdụng phần mềm thực thi kiểmthử hơn là so sánh kết quả
Tự động hóa có thể phân tích biêndịch và gia tăng số lỗi tìm thấy
tự động hóa thông minh các công việc kiểm thử …
NNTu Software Testing S2008 24
Kiểm thử thủ công và tự động
Các kiểm thử phù hợp chokiểm thử thủ công
Operations , maintenanceConfiguration , compatibilityError handling , recoveryLocalizationUsability Cài đặtTài liệu
Kiểm thử bất kỳ hoặc kếthợp
Chức năngUse cases (user scenarios)Giao diệnXử lý ngày tháng
Các kiểm thử phù hợp chokiểm thử tự động
Hồi quy, xác nhậnNgẫu nhiên (Monkey , random)Load, volume, capacityPerformance , reliabilityBiên dịch chuẩnwhite-box, API-based unit, component, integration Static complexity and code analysis
NNTu Software Testing S2008 25
Chú ý khi sử dụng công cụ
Chiến lược không rõ ràngKỳ vọng không thực tếThiếu ký kết sử dụng, cungcấp để kiểm thửChất lượng huấn luyệnkhông tương xứng, nghèonànĐối tượng cho tự động hóasaiChọn sai công cụTính khả dụng của công cụChọn sai nhà cung cấp
Hệ thống dễ bị sụp đổThực hiện quá nhiều, quásớmKhông xác định về thời gianvà tài nguyên cần thiếtMôi trường kiểm thử đơnnhất hoặc không tương xứngCách tiếp cận đúng nhưngsai thời điểmChi phí quá mức
Rick Craig , Stefan Jaskiel’s Systematic Software Testing, Chapter 6
NNTu Software Testing S2008 26
Đọc thêm
[5]. Chapter 15
NNTu Software Testing S2008 27
Q/A