Giới thiệu
Khái niệm kiểm thử phần mềm
Tại sao phải kiểm thử phần mềm
Các nguyên lý trong kiểm thử phần mềm
Các mức độ kiểm thử
Các kỹ thuật kiểm thử
Kiểm thử hộp đen
Kiểm thử hộp trắng
115 trang |
Chia sẻ: phuongt97 | Lượt xem: 528 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Công nghệ phần mềm - Chương 5: Kiểm chứng Phần mềm (Software Testing) - Trần Anh Dũng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
case cần phải đạt được 100% method coverage84Ví dụ - Method CoverageXét đoạn chương trìnhTest case 1: foo (0,0,0,0,0)100% method coverage85Statement CoverageTỷ lệ phần trăm các câu lệnh trong chương trình được gọi thực hiện bởi các test caseTest case 1 thực hiện các lệnh từ 15 trong 12 câu lệnh đạt 42% Statement CoverageĐể đạt 100% Statement Coverage Test case 2: foo (1,1,1,1,1) 86Decision/Branch CoverageTỷ lệ phần trăm các biểu thức điều kiện trong chương trình được ước lượng giá trị trả về (true, false) khi thực thi các test caseMột biểu thức điều kiện (cho dù là single hay complex) phải được kiểm tra trong cả hai trường hợp giá trị của biểu thức là true hay falseĐối với các hệ thống lớn, thường chỉ đạt từ 75% 85% độ bao phủ87Decision/Branch Coverage Đạt 75% coverage Test case 3: foo (1,2,1,2,1) 100% coverage88Condition CoverageTỷ lệ phần trăm các biểu thức điều kiện đơn trong biểu thức điều kiện phức của chương trình được ước lượng giá trị trả về (true, false) khi thực thi các test caseVí dụ: 50% coverage89Thiết kế thêm Test case 4, 5 để đạt 100% coverageCondition Coverage90Data-flow TestingLà kỹ thuật thiết kế test case dựa vào việc khảo sát sự thay đổi trạng thái trong chu kỳ sống của các biến trong chương trìnhVí dụ: Một số pattern lỗi thường gặpSử dụng biến mà chưa khai báoSử dụng biến đã hủy trước đó91Hệ thống ký hiệu trạng thái dữ liệuHệ thống ký hiệuddefined, created, initializedkkilled, terminated, undefineduused c – used in a computation (sử dụng trong biểu thức tính toán) p – used in a predicate (sử dụng trong các biểu thức điều kiện)~xCho biết trước khi tất cả hành động liên quan đến xx~Cho biết tất cả hành động không có thông báo liên quan đến x92Một số ví dụv = expression c – use của các biến trong biểu thức definition của v read (v1, v2, , vn) definitions của v1, , vn write (v1, v2, , vn) c - uses của v1, , vnmethod call: P (c1, , cn) definition của mỗi tham sốWhile B do S p – use của mỗi biến trong biểu thức điều kiện93Ví dụ94Các chiến lược thiết kế test caseAll-du paths (ADUP)All-Uses (AU)All-p-uses (APU)All-c-uses (ACU)All-p-uses / Some-c-uses (APU+C)All-c-uses / Some-p-uses (ACU+P)All-definition (AD)95Ví dụ96Xét biến “Bill”97Bảng mô tả biến “Bill”98Xét biến “Usage”99Bảng mô tả biến “Usage”100Data-flow testing paths for each variable101Mối quan hệ giữa các chiến lược data-flow test102Cá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ửCông cụ kiểm thử hiệu năng (Performance)Công cụ kiểm thử chức năng (Functional)Công cụ kiểm thử bảo mật (Security)Công cụ kiểm thử đơn vị (UnitTesting)103Cá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ử PMProjectUserUser Role RequirementRelease: Phiên bản của project.Test Plan: Kế hoạch test.Test types: Các loại test.Test cases: Các trường hợp testTeststep: Các bước thực hiện cho mỗi test caseResult: Kết quả thực thi test. Bug: LỗiReports: 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: Các tài liệu hướng dẫn sử dụng chương trình (Help)104Các chức năng cần phải cóQuản lý project.Quản lý User.Phân quyền User.Quản lý requirement theo phiên bản.Quản lý release.Quản lý các thành phần của release: build, component,..Quản lý testplan.Quản lý testcase.Cập nhật kết quả cho test case.Cập nhật tình trạng lỗi.Thống kê lỗi cho mỗi release hoặc mỗi thành phần của release.Tự động cập nhật kết quả kiểm thửCác công cụ hỗ trợ quản lý quy trình kiểm thử phần mềm (2)105Các công cụ hỗ trợ quản lý quy trình kiểm thử phần mềm (3)NoNameDescREqDownload1TestLinkApache, MySQL, PHP487972FitnesseMac, Wnidows, POSIX244753QATraqWindows, BSD, Linux, SunOS/Solaris219924Bugzilla Test RunnerBugzilla 2.16.3 or above172915rthAll 32-bit MS Windows (95/98/NT/2000/XP), All POSIX (Linux/BSD/UNIX-like OSes), IBM AIX95636TestMasterLinux, Apache, PostgreSQL67287TCWAny (PHP/SQL/Apache)44888TeslyOS Independent33279qaProjectManagerPlatform Independent313310TestitoolApache, PHP, MySQL701www.opensourcetestingtools.org106Công cụ kiểm thử hiệu năngLà 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ềmGiú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 sauThườ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àngVí dụ:Số kết nối (session) đồng thời mà server có thể phục vụThời gian (bao nhiêu phút/giây) mà trình duyệt nhận được kết quả từ server.107Công cụ kiểm thử hiệu năngNoNameRequirementsDownload1OpenSTAWindows 2000, NT4 and XP2519652GrinderOS Independent1564583TPTESTMacOS/Carbon and Win321080364Database Opensource Test SuiteLinux, POSIX1034845SippLinux/Unix/Win32-Cygwin1021116WebLOAD32-bit MS Windows (NT/2000/XP), Linux, Windows Server 2003394017OpenWebLoadLinux, DOS312048Hammerhead 2 - Web Testing ToolHammerhead has been used with Linux, Solaris and FreeBSD.248149DieseltestWindows1461810DBMonsterOS Independent13710www.opensourcetestingtools.org108Cá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 ADAC++HTMLJava.NETPertPHPSQLXMLRuby109Các công cụ hỗ trợ kiểm thử đơn vịNoNameRequirementsDownload1JUnitOS Independent21518742FindbugsJRE (or JDK) 1.4.0 or later3797793PMDJDK 1.3 or higher3446884CheckstyleOS Independent2167805EclEmmaEclipse2091536DbunitJUnit1293007StrutsTestCase for JUnit v1.9.5OS Independent1068608EmmaJava594359MockObjectsOS independent5545710JUnitEEJUnit54618www.opensourcetestingtools.org110Các công cụ hỗ trợ kiểm thử đơn vịNoNameRequirementsDownload1NUnitWindows NT/200010618752NUnitAspWindows NT/2000727243NUnit Addin for Visual Studio.NETWindows585884NUnitFormsWindows NT/2000468805csUnitcsUnit has been tested using the Microsoft .NET framework 1.0 Service Pack 2 runtime on an Intel-compatible platform.314836NCoverAll 32-bit MS Windows (95/98/NT/2000/XP)142647VSNUnitAll 32-bit MS Windows (95/98/NT/2000/XP)87638dotUnitAll 32-bit MS Windows (95/98/NT/2000/XP)62309.NETUnitOS Independent (Written in an interpreted language)555810ASPUnitMicrosoft Internet Information Server 5.0 or 5.15197www.opensourcetestingtools.org111Một sô công cụ hỗ trợ kiểm thử chức năng NoNameDescReqDownload1Software Testing Automation Framework (STAF)Windows, Linux, Solaris, AS/400, AIX, HP-UX, Irix2120182soapuiJava 1.51789853Linux Test ProjectLinux1034844jWebUnitOS Independent565265Abbot Java GUI Test FrameworkTBC561186Software Automation Framework SupportAll 32-bit MS Windows (95/98/NT/2000/XP)437357JameleonOS Independent, JDK 1.4 or higher435078WebInjectWindows, OS Independent, Linux408919MarathonJava 1.3 or later3032810SolexEclipse 2.1 or above29591www.opensourcetestingtools.org112Các công cụ kiểm thử thương mạiToolVendorName of testing suite or companion toolsTestPartnerCompuwareQACenter Enterprise Edition+QuickTest ProfessionalMercuryQuality Centere-TesterEmpirixe-TEST suiteFunctional TesterIBM RationalTest Manager, Manual Tester, Performance TesterWebFTRadViewTestView SuiteSilkTestSegueSilkCentral, SilkPerformerQA WizardSeapineTestTrack Pro113Các công cụ kiểm thử thương mạiTechnical usersNontechnical usersTechnical and nontechnical usersMercuryQuickTest ProCompuwareTestPartnerEmpirix e-TesterSeapine QA WizardIBM RationalFunctional TesterSegue SilkTestRadView WebFT114Tài liệu tham khảoSoftware Testing, A Craftsman’s Approach, Paul C.JorgensenPractical Software Testing, EleneBurnsteinSlides: Software Testing ISEB Foundation Certificate CourseSlides: Software Testing, Dr. Balla KatalinSlide: Equivalence Class Testing, Prof. Schlingloff & Dr. M RoggenbachSlide: Decision Table Based Testing, Neelam Gupta, The University of Arizona Tucson, Arizona, USAObject Oriented Testing, Ali Kamandi, Sharif University of Technology
Các file đính kèm theo tài liệu này:
- bai_giang_cong_nghe_phan_mem_chuong_5_kiem_chung_phan_mem_so.ppt