1 / 20

Introduction to Software Testing

Introduction to Software Testing. Definition of Software Testing. Previous Testing is a part of coding work Make sure that a system does what it is supposed to do Present

decker
Download Presentation

Introduction to Software Testing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Software Testing

  2. Definition of Software Testing • Previous • Testing is a part of coding work • Make sure that a system does what it is supposed to do • Present • Testing is the process of analyzing a software item to detect the differences between existing and required conditions and to evaluate the features of the software items. [IEEE/ANSI, Std 829-1998] • Testing is a concurrent lifecycle process of engineering, using and maintaining testware in order to measure and improve the quality of the software being tested. [Rick D Craig, 2002, “Systematic Software Testing”]

  3. Software Testing • To find and prevent defect • To have confidence that the system performs adequately • To provide information about quality • To provide the insight of product risk and quality • To ensure a program corresponds to its specification • Defect Detection Mechanism

  4. Software Test Process • Test Strategy • Test Plan • Test Design • Setup Test Environment • Test Execution • Defect Tracking • Testing Tools • Evaluate Test Exit Criteria • Reporting • Improve Test Process

  5. Some terminologies Related to human=Mistake Related to product Bug= slang / dialect Error Related to event Accident Defect, Fault, Bug Incident, Issue Risk = likelihood of failure x impact Failure Risk

  6. Some terminologies Test Design Test Case : a set of input values and expected results, developed for a particular objective or test condition Test Suite Test Case 1 to be executed Test Case 2 to be executed Test Procedure = Test script Test Case 3 to be executed Order, story included Test Case n to be executed Test Scenario

  7. Test Objectives (Why) • Primary • To find defects • To gain confidence of software • To prevent defects • To see software matching its requirement specifications • To reduce the business risk • To provide well-informed advice (quantitative metric) • Others • To check development process • To detect issues • To check logical design • To confirm that the system and software work properly

  8. Characteristic in Software Testing • Exhausting testing is impossible • There would be infinity path in a program • There would be infinity combination of all inputs values • There would be infinity timing or moment of occurring the GUI event • Testing cannot prove that there are no defects • It is hard to find defects if you produced the product • Practical Goal of Testing • “To maximize possibility of finding defects at the high risk area within the given resource (time, people) -> to minimize risk”

  9. Why Software need to be tested as early as possible?

  10. General Testing Principles • Testing Shows presence of defects • Exhaustive testing is impossible (why? – 2 on/off button ,tab option, calculator)‏ • Early Testing • Defect Clustering • Pesticide paradox • Testing s context dependent • Absence-of-error fallacy

  11. The V Model Req. analysis Acceptance test Requirements Customer Developer Logical spec. Architectural Design System test Run tests Physical spec. Integration test Write tests Detailed Design Functional (BB)‏ Program source Structural (WB)‏ Unit test Module implementation

  12. Test Levels Goal Performer Env Test Basis Difficulty levels Acceptance Req. User Real SRS User System Non-functional Prof. Tester Testing SDD + SRS Integration Functional Developer Dev. SDD Unit Find Defect Developer-peer Dev. Functions Technical V model matrix

  13. Validation vs. Verification

  14. Classification of Testing • Dynamic Testing • Black box testing • Risk Based Testing • Spec-based testing • Exploratory based testing • Experience based testing • Structure based testing (white box)‏ • Statistical testing • CTM (Classification Tree Method)‏ • Use Case Testing • State Transition Testing • Boundary Analysis & Equivalent Partitioning • Control Flow Testing • Basis Path Testing • Pairwise • Elementary Comparison Test • Structure Testing • Acceptance Testing • System Testing • Integration Testing • Componen (Unit) Testing • Structure Testing • Regression / Confirm Testing • Functional / Non-Functional Testing • Static Testing • Technical Review • Inspection • Requirement Testing • Design Testing • Static Analysis Testing Approach Testing Design Testing Levels Testing Types

  15. Effective and Efficient Testing • What is effective testing ? • To make test result which is decided or desired • Effective tester decide what test result to be drawn from the testing effort • What is efficient testing? • Desired test result can be achieved as soon as possible (performance) • Efficient tester allocate time, cost and resource properly • Effective testing vs. efficient testing? • When to stop? • Where to test more? • The best way for effective and efficient = Risk based testing

  16. Effective and Efficient Testing • Effective testing vs. efficient testing? • The best way for effective and efficient testing => Risk based testing Efficient Effective

  17. Hi Chances of Failure Low Business Impact Hi Chances of Failure Hi Business Impact Low Chances of Failure Low Business Impact Low Chances of Failure Hi Business Impact Risk Matrix Chances of Failure (likelihood)‏ Business Impact

  18. Standards • ISO/IEC29119 – Standard for Software Testing Process • IEEE829 – Standard for Software Testing Document

  19. Testing Architecture Organization Test Policy Master Test Plan Stakeholders End User management Test Basis Test organization Test Strategy Test Tech. Test Items Test Environment Test Level Lifecycle Plan/ Control Plan/ Control Plan/ Control Analysis Design Analysis Design Analysis Design Imple. Exec. Imple. Exec. Imple. Exec. Exit / Reporting Exit / Reporting Exit / Reporting Closure Closure Closure Defects Reporting Test Reporting Test Plan Test Spec. Test Procedure Release Test Process evaluation and advice Test Case Test Result Final Report Testware Status Report Result Report Test Process Improvement Plan Test Process Improvement

  20. Test Organization 6. Outsourcing Business Steering Committee 4. Business Organization User Community Independent IT org. Project Management 5. Independent Test specialist Usability / Security/ Certificate Project Staff & QA Testing Analysis / Design Coding Testing (permanent / project base) Install 1. Tested by Developer 3. Project Testing Group in organization 2. Independent Tester inside Project Team Test Management • Support • Strategy, tech, training • Infra & Tools • Subject Matter Testing A Testing B Testing C

More Related