Software Testing. Software testing is the execution of software with test data from the problem domain. Software testing is the execution of software.

Slides:



Advertisements
Similar presentations
Test plans. Test Plans A test plan states: What the items to be tested are At what level they will be tested What sequence they are to be tested in How.
Advertisements

Test process essentials Riitta Viitamäki,
Lecture 8: Testing, Verification and Validation
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Quality Assurance Plan
1 Software Engineering Lecture 11 Software Testing.
Ch6: Software Verification. 1 White-box testing  Structural testing:  (In)adequacy criteria  Control flow coverage criteria.
Degree and Graduation Seminar Scope Management
1 Test Planning CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 9, 2007.
Exam 1 Review u Scores Min 30 Max 96 Ave 63.9 Std Dev 14.5.
Ch6: Software Verification. 1 Statement coverage criterion  Informally:  Formally:  Difficult to minimize the number of test cases and still ensure.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Understand.
(c) 2007 Mauro Pezzè & Michal Young Ch 24, slide 1 Documenting Analysis and Test.
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
Project Documentation and its use in Testing JTALKS.
Software Testing Prasad G.
Senior Design – Acceptance Test Plan Review The goal is to: define the criteria for approving the application. Tightly coupled to the Requirements document.
Path testing Path testing is a “design structural testing” in that it is based on detailed design & the source code of the program to be tested. The methodology.
Equivalence Class Testing
8/20/2015Slide 1 SOLVING THE PROBLEM The two-sample t-test compare the means for two groups on a single variable. the The paired t-test compares the means.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
… and after unit testing …
Software Testing Lifecycle Practice
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Software Testing (Part 2)
Independent User Acceptance Test Process (IUAT)
FCS - AAO - DM COMPE/SE/ISE 492 Senior Project 2 System/Software Test Documentation (STD) System/Software Test Documentation (STD)
Software Testing Testing types Testing strategy Testing principles.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Agenda Introduction Overview of White-box testing Basis path testing
1841f06detprob3 MM Stroustrup Ch26 u Comments? u Agree or disagree with his testing approach?
1 testing17 Software Testing Functional, MCC, Dataflow Testing, Cause-Effect Graphing.
Summarizing “Structural” Testing Now that we have learned to create test cases through both: – a) Functional (blackbox)and – b) Structural (whitebox) testing.
What is Testing? Testing is the process of exercising or evaluating a system or system component by manual or automated means to verify that it satisfies.
Software Testing and Quality Assurance Practical Considerations (4) 1.
Exam 1 Review u Scores Min 30 Max 96 Ave 63.9 Std Dev 14.5.
Chair of Software Engineering Exercise Session 6: V & V Software Engineering Prof. Dr. Bertrand Meyer March–June 2007.
Chapter 6: THE EIGHT STEP PROCESS FOCUS: This chapter provides a description of the application of customer-driven project management.
程建群 博士 (Dr. Jason Cheng) 年 03 月 Software Engineering Part 08.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Project Management. Introduction  Project management process goes alongside the system development process Process management process made up of three.
System Test Planning SYSTTPLAN 1 Location of Test Planning Responsibilities for Test Planning Results of Test Planning Structure of a Test Plan Test Definitions.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
1 test10b Software Testing Necessary to measure and certify quality in software.
1 Software Testing. 2 Equivalence Class Testing 3 The use of equivalence class testing has two motivations: –Sense of complete testing –Avoid redundancy.
1 Test Coverage Coverage can be based on: –source code –object code –model –control flow graph –(extended) finite state machines –data flow graph –requirements.
1841f06detprob3 Testing Basics Detection probability.
Company LOGO. Company LOGO PE, PMP, PgMP, PME, MCT, PRINCE2 Practitioner.
CIS-74 Computer Software Quality Assurance
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Testing Integral part of the software development process.
Test Plan IEEE Explained by Nimesh Vadgama - QA.
Testing throughout Lifecycle Ljudmilla Karu. Verification and validation (V&V) Verification is defined as the process of evaluating a system or component.
1 March 19, Test Plans William Cohen NCSU CSC 591W March 19, 2008.
Software Testing.
SOFTWARE TESTING OVERVIEW
Chapter 10 Software Quality Assurance& Test Plan Software Testing
Input Space Partition Testing CS 4501 / 6501 Software Testing
UNIT-IV ECS-602 Software engineering PART-I
Chapter 9 Path Testing–Part 1
Fundamental Test Process
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Testing Lifecycle Practice
Presentation transcript:

Software Testing

Software testing is the execution of software with test data from the problem domain. Software testing is the execution of software with test data from the problem domain. Static analysis (or static testing) involves analyzing the source code to determine errors. Static analysis (or static testing) involves analyzing the source code to determine errors. A test case is a specific input and the output that it should produce. A test case is a specific input and the output that it should produce.

Software Testing Exhaustive testing is the execution of every possible test cases in the problem domain (The set of all possible inputs is called the domain space). Exhaustive testing is the execution of every possible test cases in the problem domain (The set of all possible inputs is called the domain space). Generally a subset of the set of all possible test cases is chosen. Generally a subset of the set of all possible test cases is chosen. The subset should be chosen so it is representative of the set of all test cases. The subset should be chosen so it is representative of the set of all test cases.

Software Testing The two basic concerns in software testing are: The two basic concerns in software testing are: 1. What test cases to use (test case selection) 2. How many test cases are necessary (stopping criterion). A test case should always include the expected output. A test case should always include the expected output.

Software Testing Test case selection can be based on: Test case selection can be based on: 1. Specifications 2. The structure of the code 3. Data flow 4. Random selection

Test Coverage Criteria A test coverage criteria is a rule about how to select test cases and when to stop testing. A test coverage criteria is a rule about how to select test cases and when to stop testing. Test criterion A subsumes test criterion B if any test that satisfies criterion A also satisfies criterion B. Test criterion A subsumes test criterion B if any test that satisfies criterion A also satisfies criterion B.

Functional Testing In functional testing, the specification of the software is used to identify subdomains that should be tested. In functional testing, the specification of the software is used to identify subdomains that should be tested. One way is to generate a test case for every distinct ouput type. One way is to generate a test case for every distinct ouput type.

Functional Testing Example: The lengths of three sides of a triangle are entered and the type of triangle the lengths represent is output (either scalene, isosceles or equilateral). Example: The lengths of three sides of a triangle are entered and the type of triangle the lengths represent is output (either scalene, isosceles or equilateral). What is a “good” set of test cases? What is a “good” set of test cases?

Functional Testing Scalene: Scalene: Increasing size3, 4, 5 Decreasing size4, 3, 5 Largest as second4, 5, 3 Isosceles Isosceles a=b and c larger5, 5, 8 a=c and b larger5, 8, 5 b=c and a larger8, 5, 5 a=b and c smaller8, 8, 5 a=c and b smaller8, 5, 8 b=c and a smaller5, 8, 8 Not a triangle Not a triangle largest first 6, 4, 2 largest second 4, 6, 2 largest third 1, 2, 3 Bad Inputs Bad Inputs One bad-1, 2, 4 Two bad3, -2, -5 Three bad0, 0, 0 Equilateral Equilateral All sides equal 5, 5, 5

Test Matrices One way to formally identify subdomains is to build a matrix with specifications (conditions) in the rows and subdomains in the columns One way to formally identify subdomains is to build a matrix with specifications (conditions) in the rows and subdomains in the columns

Test Matrices Conditions a=b or a=c or b=c TTTTTFFF a=b and b=c TTFFFFFF a<=b+c Or b<=a+c Or c<=a+b TFTTFTTF a>=0 or b>=0 or c>=0 TFTFFTFF Sample test case 0,0,03,3,30,4,03,8,35,8,50,5,63,4,83,4,5 Expected Output Bad InputsEquilateralBad InputsNot triangle IsoscelesBad InputsNot triangle Scalene

Structural Testing Structural testing is based on the structure of the source code. Structural testing is based on the structure of the source code. The criterion is that every statement of source code should be executed by some test case. The criterion is that every statement of source code should be executed by some test case. The normal approach is to select test cases until a coverage tool indicates that all statements in the code have been executed (Every statement coverage) The normal approach is to select test cases until a coverage tool indicates that all statements in the code have been executed (Every statement coverage)

Structural Testing NodeSource Line3,4,53,5,30,1,04,4,4 ARead a, b, c**** BType=”scalene”**** Cif (a==b||b==c||a==c)**** DType=”isosceles”*** Eif (a===b && b==c)**** FType=”equilateral”* GIf (a>=b+c ||b>=a+c||c>=a+b)**** HType=”not a triangle”* Iif (a<=0||b<=0||c<=0)**** JType=”bad inputs”* KPrint type****

Structural Testing A more thorough test criterion is every branch covering (called the C1 test coverage). A more thorough test criterion is every branch covering (called the C1 test coverage). In C1 test coverage, the goal is to go each way out of every test decision. In C1 test coverage, the goal is to go each way out of every test decision.

Structural Testing Control Flow Graph for the previous code Control Flow Graph for the previous code

Structural Testing Arcs3,4,53,5,30,1,04,4,4 ABC-D*** ABC-E* D-E*** E-F* E-G*** F-G* G-H* G-I** H-I* I-J* I-K*** J-K*

Every Path Testing A more thorough test is every path testing which tests all possible paths through the control flow graph. A more thorough test is every path testing which tests all possible paths through the control flow graph. A path that cannot be taken is called an infeasible path. A path that cannot be taken is called an infeasible path.

Multiple Condition Coverage A multiple condition testing criterion requires that each primitive relation condition is evaluated both true and false. A multiple condition testing criterion requires that each primitive relation condition is evaluated both true and false. Lazy evaluation of expressions can be used to eliminate cases Lazy evaluation of expressions can be used to eliminate cases

Multiple Condition Coverage if (a==b||b==c||a==c) if (a==b||b==c||a==c) CombinationsPossible Test Cases Branch TXX3,3,4ABC-D FTX4,3,3ABC-D FFT3,4,3ABC-D FFF3,4,5ABC-E

Test Plans A test plan states: What the items to be tested are At what level they will be tested What sequence they are to be tested in How the test strategy will be applied to the testing of each item A description of the test environment.

What to consider for the Test Plan From IEEE 829 Standard for Software Test Documentation: 1. Test Plan Identifier 2. References 3. Introduction 4. Test Items

What to consider for the Test Plan 5. Software Risk Issues 6. Features to be Tested 7. Features not to be Tested 8. Approach 9. Item Pass/Fail Criteria 10. Suspension Criteria and Resumption Requirements

What to consider for the Test Plan 11. Test Deliverables 12. Remaining Test Tasks 13. Environmental Needs 14. Staffing and Training Needs 15. Responsibilities 16. Schedule 17. Planning Risks and Contingencies 18. Approvals 19. Glossary

What I want included in the test plan List of responsibilities (and who does them) – –Who runs the test – –Who approves the results Unit tests to be run with expected results – –Objectives – –Approach – –Include a description of the type of data used for unit testing and why that data is being used – –Pass/fail criteria – –When the tests are to be run (timeline)

What I want included in the test plan Integration tests to be run with expected results – –Objectives – –Approach – –Include a description of the type of data used for integration testing and why that data is being used – –Pass/fail criteria – –When the tests are to be run (timeline)

What I want included in the test plan Systems/Acceptance tests to be run with expected results – –Objectives – –Approach – –Include a description of the type of data used for systems/acceptance testing and why that data is being used – –Pass/fail criteria – –When the tests are to be run (timeline)

What I want included in the test plan Alpha testing to be done – –Objectives – –Approach – –Features to be tested – –Pass/fail criteria – –When the tests are to be run (timeline)

What I want included in the test plan Beta testing – –Objectives – –Approach – –Who is participating in the beta testing – –Pass/fail criteria – –What I want included in the test plan

Deliverables Test Design Specification: detailing test conditions and the expected results as well as test pass criteria. Test Case Specification: specifying the test data for use in running the test conditions identified in the Test Design Specification

Deliverables Test Procedure Specification: detailing how to run each test, including any set-up preconditions and the steps that need to be followed Test Item Transmittal Report: reporting on when tested software components have progressed from one stage of testing to the next

Deliverables Test Log: recording which tests cases were run, who ran them, in what order, and whether each test passed or failed

Deliverables Test Incident Report: detailing, for any test that failed, the actual versus expected result, and other information intended to throw light on why a test has failed. These include the expected results being wrong, the test being run wrongly, or inconsistency in the requirements meaning that more than one interpretation could be made.

Deliverables- Test Incident Report The report consists of all details of the incident such as actual and expected results, when it failed, and any supporting evidence that will help in its resolution. The report will also include, if possible, an assessment of the impact of an incident upon testing.

Deliverables- Test Summary Report Test Summary Report: A management report providing any important information uncovered by the tests accomplished, and including: Assessments of the quality of the testing effort The quality of the software system under test, and statistics derived from Incident Reports.

Deliverables- Test Summary Report The report also records: What testing was done How long it took in order to improve any future test planning. This final document is used to indicate whether the software system under test is fit for purpose according to whether or not it has met acceptance criteria defined by project stakeholders

IEEE Standards IEEE Standard for Software Test Documentation IEEE Standard for Software Unit Testing IEEE Standard for Software Verification & Validation Plans IEEE Guide for Software Verification & Validation Plans

Sample Test Plans solutions/testing-a-sample-test-plan solutions/testing-a-sample-test-plan-3283