Testing Techniques Software Testing Module (0721430) Dr. Samer Hanna.

Slides:



Advertisements
Similar presentations
Defect testing Objectives
Advertisements

Unit Testing in the OO Context(Chapter 19-Roger P)
Lecture 8: Testing, Verification and Validation
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Testing and Quality Assurance
Abirami Poonkundran 2/22/10.  Goal  Introduction  Testing Methods  Testing Scope  My Focus  Current Progress  Explanation of Tools  Things to.
Software Testing and Quality Attributes Software Testing Module ( ) Dr. Samer Hanna.
November 2005J. B. Wordsworth: J5DAMQVT1 Design and Method Quality, Verification, and Testing.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing and Quality Assurance
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Software Testing Prasad G.
Chapter 11: Testing The dynamic verification of the behavior of a program on a finite set of test cases, suitable selected from the usually infinite execution.
Introduction to Software Testing
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
System/Software Testing
1 Object-Oriented Testing CIS 375 Bruce R. Maxim UM-Dearborn.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Introduction Telerik Software Academy Software Quality Assurance.
Prof. Mohamed Batouche Software Testing.
1 Testing Course notes for CEN Outline  Introduction:  terminology and philosophy  Factors that influence testing  Testing techniques.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Software Testing Testing types Testing strategy Testing principles.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Test Coverage CS-300 Fall 2005 Supreeth Venkataraman.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Test and Integration Robyn Allsman LSST Corp DC3 Applications Design Workshop IPAC August , 2008.
Software Testing Definition Software Testing Module ( ) Dr. Samer Odeh Hanna.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Software testing techniques Software testing techniques Object-oriented software testing Presentation on the seminar Kaunas University of Technology.
SOFTWARE TESTING. INTRODUCTION Testing forms the first step in determining the errors in a program. It is the major quality control measure used during.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
CS451 Lecture 10: Software Testing Yugi Lee STB #555 (816)
Software Testing. System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Software Quality Assurance and Testing Fazal Rehman Shamil.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
Defect testing Testing programs to establish the presence of system defects.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
CS223: Software Engineering Lecture 25: Software Testing.
Dynamic Black-Box Testing Part 1 What is dynamic black-box testing? How to reduce the number of test cases using: Equivalence partitioning Boundary value.
Syndicate Members: 1. GC Muhammad Uzair 2. GC Umer Naveed Malik.
Software Testing. Purpose: Find errors! not prove that the program does not have them Types of tests: Unit Test Integration Test Function Test Load Test.
CX Introduction to Web Programming Testing.
Software Testing Strategies for building test group
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Rekayasa Perangkat Lunak Part-13
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Software testing.
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 Verification and Validation
Software Verification and Validation
Software Testing “If you can’t test it, you can’t design it”
Software Verification and Validation
TYPES OF TESTING.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

Testing Techniques Software Testing Module ( ) Dr. Samer Hanna

Testing Techniques Testing consists of the following steps (Harrold, 2000): Designing test data Executing the system under test with those test cases Examining the results of the execution and comparing them with the expected results.

Test Data and Test Cases Program to be tested is executed using representative data samples or test data and the results are compared with the expected results. Test cases include input test data and the expected output for each input.

Exhaustive Testing It is impossible to test a piece of code, such as a method or function, with every possible input to check if the code produces the expected output. This is known as exhaustive testing However, there are many testing techniques that are used to design test data such as boundary value testing and equivalent partitioning.

Testing Techniques Categories Testing techniques can be categorized along various dimensions depending on: 1) The availability of the source code Testing techniques can be categorized to black- box or white-box testing according to the availability of the source code:

White-Box testing If the source code of the system under test is available then the test data is based on the structure of this source code (Jorgensen, 2002). Examples of white-box testing are: path testing and data flow testing (Jorgensen, 2002).

Black-Box testing If the source code is not available then test data is based on the function of the software without regard to how it was implemented (Jorgensen, 2002). Examples of black-box testing are: boundary value testing (Jorgensen, 2002) and equivalence partitioning (Myers, 1979).

2) The role of testing Testing techniques can also be categorized according to the type of testing (Sommerville, 2004) which is based on the role or goal of this test; some testing techniques belong to the validation testing and others belong to the defect or fault-based testing:

Validation testing This kind of testing is intended to show that the software meets the customer requirement. In validation testing each requirement must be tested by at least one test case. An example of a testing technique that belong to this type of testing is specification-based testing where test data are generated from state-based specifications that describes what functions the software is supposed to provide.

Validation testing If the specification is written by a model such as UML and the test case generation is based on that model, then the testing is called model-based testing (Toth et al. 2003), This testing also belong to validation testing.

Defect testing (fault-based testing or negative testing) This type of testing is intended to detect faults (bugs or defects) in the software system rather than testing the functional use of the system like validation testing (Sommerville, 2004). Examples of the testing techniques that belong to this type of testing include: fault injection (Voas and McGraw, 1998), boundary value based robustness testing (Jargensen, 2002), and syntax testing (Beizer, 1990).

Defect testing Defect testing contribute to the assessment of the following quality attributes: robustness, fault- tolerance and security

3) The level of testing Testing techniques can be distinguished according to the scope or level of a test: Unit testing Testing individual or independent software unit (IEEE, 1990). A unit is defined as the smallest piece of software that can be independently tested (Beizer, 1990).

The level of testing Integration testing This kind of testing is used to test the interaction between the units that was already tested using Unit testing (IEEE, 1990). System testing This kind of testing is conducted on a complete and integrated software system to evaluate its compliance with its specified requirements (IEEE, 1999).

4) The quality attribute or system behavior Testing techniques can be distinguished according to the quality attribute or system behavior being tested such as performance, robustness, and correctness. Examples of these kinds of testing are:

Performance testing Used to assess the performance quality attribute of a system or component and is defined as: “Testing conducted to evaluate the compliance of a system or components with specified performance requirements” (IEEE, 1990). A performance requirement may include speed with which a given function must be performed (IEEE, 1990).

Robustness testing Robustness testing is used to assess the robustness quality attribute of a software system. Robustness testing include some testing techniques such as boundary value based robustness testing technique (Jorgensen, 2002) and Interface Propagation Analysis (IPA Robustness testing is defined as: Testing how a system or software component reacts when the environment shows unexpected behavior.

Security testing Used to assess the security quality attribute of a system or component by testing if an intruder can read or modify the system data or functionality.

Load testing Used to test if a system or component can cope with heavy loads such as being used by many users at the same time.

Relation between categories The above four categories or dimensions (the availability of source code, the role of testing, the level of testing, and the quality attribute or system behaviour) of testing techniques are not disjoint; for example the boundary value based robustness testing (Jorgensen, 2002) belongs to the following types of testing: black-box testing, unit testing and fault-based testing at the same time. Other black-box testing techniques can also be considered fault- based testing techniques such as syntax testing (Beizer, 1990).