Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 5: Khả năng sử dụng lại và kiểm thử - Nguyễn Thị Thanh Trúc
5.1 TÍNH DÙNG LẠI VÀ KHẢ NĂNG DÙNG LẠI
o Giới thiệu
o Định nghĩa
o Mục đích của việc sử dụng lại
o Mục tiêu và lợi ích của việc dùng lại
o Hướng tiếp cận của dùng lại
o Phân tích phạm vi
o Công nghệ cấu phần
o Mô hình qui trình dùng lại
o Các yếu tố tác động lên việc sử dụng lại
5.2 KiỂM THỬ
o Giới thiệu
o Định nghĩa
o Tại sao kiểm thử phần mềm
o Công việc của người kiểm thử phần mềm
o Kiểm thử gì và như thế nào
o Phân loại kiểm thử
o Thẩm định và đánh giá
o Kế hoạch kiểm thử
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 5: Khả năng sử dụng lại và kiểm thử - Nguyễn Thị Thanh Trúc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Phát triển vận hành bảo trì phần mềm - Chương 5: Khả năng sử dụng lại và kiểm thử - Nguyễn Thị Thanh Trúc
n phần mềm khác nhau cần các cách tiếp cận kiểm thử khác nhau. 28 UIT-VNUHCM 2009 Bài tập Exercise 9.1 Chọn 2 hệ thống phần mềm và xem xét làm thế nào bạn thiết kế test case. Hệ thống có đặc tả hình thức bạn có sử dụng như cơ sở cho viết testcase? Bạn có nhận biết tập kiểm thử để thống kê toàn bộ chuỗi kết quả? Điều kiện đường biên thế nào? 29 UIT-VNUHCM 2009 Các mức độ kiểm thử (Test levels) Acceptance System Integration Component 30 UIT-VNUHCM 2009 Các mức độ kiểm thử (Test levels) Component testing (unit testing): o Tìm lỗi trong các component của phần mềm như: modules, objects, classes, o Do có kích thước nhỏ nên việc tổ chức, kiểm tra, ghi nhận và phân tích kết quả trên Unit test có thể thực hiện dễ dàng o Tiết kiệm thời gian, chi phí trong việc dò tìm và sửa lỗi trong các mức kiểm tra sau 31 UIT-VNUHCM 2009 Các mức độ kiểm thử (Test levels) Integration testing: o Test sự kết hợp của các component, sự tác động của các phần khác nhau trong một hệ thống, sự kết hợp của các hệ thống với nhau, 32 UIT-VNUHCM 2009 Các mức độ kiểm thử (Test levels) System testing: o Đảm bảo rằng hệ thống (sau khi tích hợp) thỏa mãn tất cả các yêu cầu của người sử dụng o Tập trung vào việc phát hiện các lỗi xảy ra trên toàn hệ thống Acceptance testing: o Test phần mềm đứng dưới góc độ người dùng để xác định phần mềm có được chấp nhận hay không. 33 UIT-VNUHCM 2009 Các kỹ thuật kiểm thử Test tĩnh (Static Verification) o Thực hiện kiểm chứng mà không cần thực thi chương trình o Kiểm tra tính đúng đắn của các tài liệu có liên quan được tạo ra trong quá trình xây dựng ứng dụng o Đạt được sự nhất quán và hiểu rõ hơn về hệ thống o Giảm thời gian lập trình, thời gian và chi phí test, Test động (Dynamic Testing) o Thực hiện kiểm thử dựa trên việc thực thi chương trình 34 UIT-VNUHCM 2009 Dynamic Testing - Kiểm thử động Dynamic Specification-based Structure-based Equivalence Experience-based Partitioning Basis Path Boundary Value Error Analysis Control-flow Guessing Decision Tables Cause-Effect Data-flow Exploratory Testing Graphing 35 UIT-VNUHCM 2009 Các phương pháp kiểm thử (1) Funtional Testing (Black Box Testing): o Test dựa trên mô tả, chúng ta xem xét phần mềm với các dữ liệu đầu vào và đầu ra mà không cần biết cấu trúc của phần mềm ra sao. Nghĩa là tester sẽ tập trung vào những gì mà phần mềm làm, không cần biết phần mềm làm như thế nào. o Ưu điểm: Không phụ thuộc vào việc thực hiện phần mềm Việc phát triển test case có thể diễn ra song song với quá trình thực hiện phần mềm Rút ngắn thời gian thực hiện dự án 36 UIT-VNUHCM 2009 Các kỹ thuật kiểm thử hộp đen Kỹ thuật phân lớp tương đương (Equivalence Class Testing) Kỹ thuật dựa trên giá trị biên (Boundary Value Testing) Kỹ thuật dựa trên bảng quyết định (Decision Table-Based Testing) Kỹ thuật dựa trên đồ thị nguyên nhân – kết quả (causes-effects) 37 UIT-VNUHCM 2009 Các phương pháp kiểm thử (2) Structural Testing (White Box Testing): o Test dựa trên cấu trúc còn được gọi là white-box hay glass-box bởi vì nó đòi hỏi sự hiểu biết về cấu trúc của phần mềm, nghĩa là phần mềm hoạt động như thế nào. 38 UIT-VNUHCM 2009 Các kỹ thuật kiểm thử hộp trắng Basis Path Testing Control-flow/Coverage Testing Data-flow Testing 39 UIT-VNUHCM 2009 Các phương pháp kiểm thử (3) Experience Testing (Test dựa trên kinh nghiệm) o Kỹ thuật này đỏi hỏi sự hiểu biết, kỹ năng và kinh nghiệm của người test. o Dựa vào những kinh nghiệm thu thập được từ những hệ thống trước đó, tester có thể dễ dàng nhìn thấy được những điểm sai trong chương trình. 40 UIT-VNUHCM 2009 Verification and Validation Là chìa khóa trong hệ thống phát triển được tin tưởng. Verification: các hành động để đảm bảo cho phần mềm được hiện thực đúng theo một chức năng cụ thể nào đó “Are we building the product right ?” Validation: các hành động để đảm bảo cho phần mềm được xây dựng theo đúng yêu cầu của khách hàng “Are we building the right product ?” Đạt được hệ thống tốt hơn,i.e hệ thống với tính khả thi, tốc độ, chất lượng, và tinh hiệu quả chi phí cải tiến Tạo hệ thống phần mềm chất lượng [279], và hiệu quả hơn khi thực hiện độc lập nhóm phát triển hay bảo trì hệ thống 41 UIT-VNUHCM 2009 Test Plans The IEEE standard defines a test plan as o "A document describing the scope, approach, resources, and schedule of intended testing activities. It identifies test items, the features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning." [ANSI/IEEE Standard 829-1983 for Software Test Documentation] A test plan can either be a tool or a product [149 ch.12] o Kaner advises that a test plan whose purpose is to act as a tool is "valuable ...to the extent that it helps you manage your testing project and find bugs. Beyond that, it is a diversion of resources" [149 p.205]. 42 UIT-VNUHCM 2009 Test Plans test plan tốt điều kiện thử nghiệm bằng nhiều cách bao gồm: o cung cấp danh sách các trường hợp thử nghiệm hữu ích xác định những thứ như điều kiện biên và các lớp dữ liệu thử nghiệm. Điều này cải thiện hiệu quả và có nghĩa là các trường hợp thử nghiệm quan trọng là ít có khả năng thể bỏ qua. o cung cấp thông tin về những quy mô của công việc có khả năng là những gì và nguồn lực sẽ được cần thiết o cung cấp thông tin để xác định và ưu tiên các nhiệm vụ, do đó tổ chức các đội kiểm tra giúp đỡ và xác định vai trò và trách nhiệm 43 UIT-VNUHCM 2009 Bài tập Exercise 9.2 Viết test plan cho chương rình ( kích thước có thể chấp nhận ít nhất 100LOC) mà không phải do bạn phát triển. Nếu bạn phải liên quan một phần của mẫu phá triển phần mềm này, hoán đổi code với sinh viên tập sự và viết test plan cho mỗi code khác nhau. Người viết code gốc nên nghiên cứu test plan tạo cho code của họ và thảo luận điểm mạnh điểm yếu. Cụ thể, xem bất kỳ không mong đợi mà có thể xuất phát trừ code của bạn. Exercise 9.3 xem những case study theo sau. Liệt kê những vấn đề liên quan đến message lỗi. Xem xét làm thế nào để có thể tránh và hình thành một số qui tắc để ngăn những vấn đề này trong hệ thống khác. 9.9 Case Study – Therac 25 (Đọc trong ebook chính) 44 UIT-VNUHCM 2009 Bài tập Exercise 9.4 Báo cáo và phân tích biến cố Therac-25 dễ dàng đạt được.Mô tả văn tắt case study được cho. Không bao hàm, ví dụ mở rộng mà người dùng Nó không bao gồm, ví dụ như mức độ thực sự mà người sử dụng là quan trọng trong việc khai thác những vấn đề, cũng không đi vào bất kỳ độ sâu về vấn đề tái sử dụng các thủ tục con phần mềm từ các phiên bản trước của phần mềm. Những sự kiện được sưu liệu tốt bị bẻ gãy bởi code enigma trong world war 2nd [286] và lội của Ariane 5 spacecraft, chuyến bay 501 trong 1996 [8]. Chọn một trong tình huống sau để kiểm tra kỹ: o Tập trung vào người dùng hệ thống, so sánh vai trò được thực bởi bởi người dùng của máy enigma (người tạo code và người breakers)với vai trò được thực hiện bởi người dùng của máy Therac. o So sánh tính khả dụng của qui trình con của phần mềm dùng lại, và vấn đề điều này gây ra, trong Therac-25 machine và Ariane 5 spacecraft. 45 UIT-VNUHCM 2009 Các công cụ hỗ trợ kiểm thử Các công cụ hỗ trợ quản lý quá trình kiểm thử Các công cụ hỗ trợ thực hiện các kỹ thuật kiểm thử o Công cụ kiểm thử hiệu năng (Performance) o Công cụ kiểm thử chức năng (Functional) o Công cụ kiểm thử bảo mật (Security) o Công cụ kiểm thử đơn vị (UnitTesting) o 46 UIT-VNUHCM 2009 Các công cụ hỗ trợ quản lý quy trình kiểm thử phần mềm (1) Các đối tượng cần quản lý của 1 công cụ kiểm thử PM o Project o User o User Role o Requirement o Release: Phiên bản của project. o Test Plan: Kế hoạch test. o Test types: Các loại test. o Test cases: Các trường hợp test o Teststep: Các bước thực hiện cho mỗi test case o Result: Kết quả thực thi test. o Bug: Lỗi o Reports: Các thông báo về tình trạng của tiến trình: Tình trạng lỗi, tiến triển của công việc: o Các tài liệu hướng dẫn sử dụng chương trình (Help) 47 UIT-VNUHCM 2009 Các công cụ hỗ trợ quản lý quy trình kiểm thử phần mềm (2) Các chức năng cần phải có o Quản lý project. o Quản lý User. o Phân quyền User. o Quản lý requirement theo phiên bản. o Quản lý release. o Quản lý các thành phần của release: build, component,.. o Quản lý testplan. o Quản lý testcase. o Cập nhật kết quả cho test case. o Cập nhật tình trạng lỗi. o Thống kê lỗi cho mỗi release hoặc mỗi thành phần của release. o Tự động cập nhật kết quả kiểm thử 48 UIT-VNUHCM 2009 Các công cụ hỗ trợ quản lý quy trình kiểm thử phần mềm (3) No Name Desc REq Download 1 TestLink Apache, MySQL, PHP 48797 2 Fitnesse Mac, Wnidows, POSIX 24475 Windows, BSD, Linux, 3 QATraq 21992 SunOS/Solaris Bugzilla Test 4 Bugzilla 2.16.3 or above 17291 Runner All 32-bit MS Windows (95/98/NT/2000/XP), All POSIX 5 rth 9563 (Linux/BSD/UNIX-like OSes), IBM AIX 6 TestMaster Linux, Apache, PostgreSQL 6728 7 TCW Any (PHP/SQL/Apache) 4488 8 Tesly OS Independent 3327 9 qaProjectManager Platform Independent 3133 10 Testitool Apache, PHP, MySQL 701 www.opensourcetestingtools.org 49 UIT-VNUHCM 2009 Công cụ kiểm thử hiệu năng Là một dạng kiểm tra tự động nhằm tìm ra những điểm “thắt cổ chai” của phần mềm, giúp cho người phát triển có những thay đổi thích hợp để tăng khả năng thực thi, tốc độ xử lý của phần mềm Giúp người kiểm tra xác định được những thông số ngưỡng của phần mềm, đề ra tiêu chuẩn cho những lần kiểm tra sau Thường được áp dụng đối với các PM được triển khai trên môi trường nhiều người dùng ( ví dụ: ứng dụng web ) Kết quả mong đợi của việc kiểm thử hiệu năng phải được định nghĩa một cách rõ ràng Ví dụ: o Số kết nối (session) đồng thời mà server có thể phục vụ o Thời gian (bao nhiêu phút/giây) mà trình duyệt nhận được kết quả từ server . 50 UIT-VNUHCM 2009 Công cụ kiểm thử hiệu năng No Name Requirements Download 1 OpenSTA Windows 2000, NT4 and XP 251965 2 Grinder OS Independent 156458 3 TPTEST MacOS/Carbon and Win32 108036 Database Opensource 4 Linux, POSIX 103484 Test Suite 5 Sipp Linux/Unix/Win32-Cygwin 102111 32-bit MS Windows (NT/2000/XP), 6 WebLOAD 39401 Linux, Windows Server 2003 7 OpenWebLoad Linux, DOS 31204 Hammerhead 2 - Web Hammerhead has been used with 8 24814 Testing Tool Linux, Solaris and FreeBSD. 9 Dieseltest Windows 14618 10 DBMonster OS Independent 13710 www.opensourcetestingtools.org 51 UIT-VNUHCM 2009 Các công cụ hỗ trợ kiểm thử đơn vị Có rất nhiều công cụ kiểm thử đơn vị được viết bằng nhiều ngôn ngữ khác nhau o ADA o C++ o HTML o Java o .NET o Pert o PHP o SQL o XML o Ruby o 52 UIT-VNUHCM 2009 Các công cụ hỗ trợ kiểm thử đơn vị No Name Requirements Download 1 JUnit OS Independent 2151874 JRE (or JDK) 1.4.0 or 2 Findbugs 379779 later 3 PMD JDK 1.3 or higher 344688 4 Checkstyle OS Independent 216780 5 EclEmma Eclipse 209153 6 Dbunit JUnit 129300 StrutsTestCase for JUnit 7 OS Independent 106860 v1.9.5 8 Emma Java 59435 9 MockObjects OS independent 55457 10 JUnitEE JUnit 54618 www.opensourcetestingtools.org 53 UIT-VNUHCM 2009 Các công cụ hỗ trợ kiểm thử đơn vị No Name Requirements Download 1 NUnit Windows NT/2000 1061875 2 NUnitAsp Windows NT/2000 72724 NUnit Addin for 3 Windows 58588 Visual Studio.NET 4 NUnitForms Windows NT/2000 46880 csUnit has been tested using the Microsoft 5 csUnit .NET framework 1.0 Service Pack 2 runtime 31483 on an Intel-compatible platform. 6 NCover All 32-bit MS Windows (95/98/NT/2000/XP) 14264 7 VSNUnit All 32-bit MS Windows (95/98/NT/2000/XP) 8763 8 dotUnit All 32-bit MS Windows (95/98/NT/2000/XP) 6230 OS Independent (Written in an interpreted 9 .NETUnit 5558 language) Microsoft Internet Information Server 5.0 or 10 ASPUnit 5197 5.1 54 UIT-VNUHCM 2009 www.opensourcetestingtools.org Một sô công cụ hỗ trợ- kiểm thử chức năng Downloa No Name Desc Req d Windows, Linux, Software Testing Automation 1 Solaris, AS/400, AIX, 212018 Framework (STAF) HP-UX, Irix 2 soapui Java 1.5 178985 3 Linux Test Project Linux 103484 4 jWebUnit OS Independent 56526 5 Abbot Java GUI Test Framework TBC 56118 Software Automation Framework All 32-bit MS Windows 6 43735 Support (95/98/NT/2000/XP) OS Independent, JDK 7 Jameleon 43507 1.4 or higher Windows, OS 8 WebInject 40891 Independent, Linux 9 Marathon Java 1.3 or later 30328 www.opensourcetestingtools.org 55 UIT10-VNUHCM Solex 2009 Eclipse 2.1 or above 29591 Các công cụ kiểm thử thương mại Vendor Tool Name of testing suite or companion tools Compuware TestPartner QACenter Enterprise Edition+ Empirix e-Tester e-TEST suite Test Manager, Manual Tester, IBM Rational Functional Tester Performance Tester QuickTest Mercury Quality Center Professional RadView WebFT TestView Suite Seapine QA Wizard TestTrack Pro Segue SilkTest SilkCentral, SilkPerformer 56 UIT-VNUHCM 2009 Các công cụ kiểm thử thương mại Technical and nontechnical users Mercury QuickTest Pro Compuware TestPartner Technical users Nontechnical users IBM Rational Functional Tester Empirix e-Tester Segue SilkTest Seapine QA Wizard RadView WebFT 57 UIT-VNUHCM 2009 Tài liệu tham khảo Software Testing, A Craftsman’s Approach, Paul C.Jorgensen Practical Software Testing, EleneBurnstein Slides: Software Testing ISEB Foundation Certificate Course Slides: Software Testing, Dr. Balla Katalin Slide: Equivalence Class Testing, Prof. Schlingloff & Dr. M Roggenbach Slide: Decision Table Based Testing, Neelam Gupta, The University of Arizona Tucson, Arizona, USA Object Oriented Testing, Ali Kamandi, Sharif University of Technology 58 UIT-VNUHCM 2009 Yêu cầu thực hiện tuần tiếp theo Viết lại các báo cáo cho các thảo luận trên lớp và các bài tập Đọc thêm các tài liệu cung cấp ReUse-1.ppt & ReUse- 2.ppt Đọc thêm tài liệu về kiểm thử Tiếp tục chuẩn bị công việc cho nhóm Mỗi nhóm tự chuẩn bị tìm hiểu và thử nghiệm một trong các công cụ hỗ trợ qui trình bảo trì hướng dẫn sử dụng và demo trước lớp 59 UIT-VNUHCM 2009
File đính kèm:
- bai_giang_phat_trien_van_hanh_bao_tri_phan_mem_chuong_5_kha.pdf