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ử

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 trang 1

Trang 1

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 trang 2

Trang 2

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 trang 3

Trang 3

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 trang 4

Trang 4

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 trang 5

Trang 5

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 trang 6

Trang 6

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 trang 7

Trang 7

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 trang 8

Trang 8

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 trang 9

Trang 9

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 trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 59 trang duykhanh 4800
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

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:

  • pdfbai_giang_phat_trien_van_hanh_bao_tri_phan_mem_chuong_5_kha.pdf