Jpf@fe.up.pt www.fe.up.pt/~jpf TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.

Slides:



Advertisements
Similar presentations
Software Testing. Quality is Hard to Pin Down Concise, clear definition is elusive Not easily quantifiable Many things to many people You'll know it when.
Advertisements

Black Box Testing Sources: Code Complete, 2 nd Ed., Steve McConnell Software Engineering, 5 th Ed., Roger Pressman Testing Computer Software, 2 nd Ed.,
Test process essentials Riitta Viitamäki,
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Testing and Quality Assurance
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
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.
Test Design Techniques
Software Integration and Documenting
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
Categories of Testing.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 1: Introduction to Software Testing Software Testing
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Saeed Akhtar The University of Lahore.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
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.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Introduction to Software Testing Maili Markvardt.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
CS223: Software Engineering Lecture 25: Software Testing.
Syndicate Members: 1. GC Muhammad Uzair 2. GC Umer Naveed Malik.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design – Black Box Testing João Pascoal Faria.
Software Engineering (CSI 321)
TQS - Teste e Qualidade de Software (Software Testing and Quality) Integration and System Testing João Pascoal Faria
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design: White Box Testing João Pascoal Faria.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Software Testing Concepts João Pascoal Faria
Software Testing Strategies for building test group
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Levels of Testing (testing along the software lifecycle)
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
TQS - Teste e Qualidade de Software (Software Testing and Quality) Software Testing Concepts João Pascoal Faria
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design: White Box Testing João Pascoal Faria.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Test Case Design: White Box Testing João Pascoal Faria.
Software Engineering (CSI 321)
SUCHITA M.DAKI TYIT(sem v)
Levels of testing.
Software Testing An Introduction.
Chapter 8 – Software Testing
Verification and Testing
Prepared by Soha Makady
Software engineering – 1
TQS - Teste e Qualidade de Software (Software Testing and Quality) Levels of Testing (testing along the software lifecycle)
Introduction to Software Testing
Lecture 09:Software Testing
Verification and Validation Unit Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Software testing.
CS240: Advanced Programming Concepts
Testing Overview References:
Software Testing & Quality Management
Chapter 10 – 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.
CS310 Software Engineering Dr.Doaa Sami Khafaga
Software Testing “If you can’t test it, you can’t design it”
Chapter 7 Software Testing.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Software Testing Strategies
Presentation transcript:

jpf@fe.up.pt www.fe.up.pt/~jpf TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal Faria jpf@fe.up.pt www.fe.up.pt/~jpf

Software testing Software testing consists of the dynamic (1) verification of the behavior of a program on a finite (2) set of test cases, suitably selected (3) from the usually infinite executions domain, against the specified expected (4) behavior [source: SWEBOK] (1) testing always implies executing the program on some inputs (2) for even simple programs, too many test cases are theoretically possible that exhaustive testing is infeasible trade-off between limited resources and schedules and inherently unlimited test requirements (3) see test case design techniques later on how to select the test cases (4) it must be possible to decide whether the observed outcomes of the program are acceptable or not the pass/fail decision is commonly referred to as the oracle problem

Purpose of software testing The main purpose of software testing is to find defects "The goal of a software tester is to find bugs, find them as early as possible, and make sure that they get fixed" (source: Ron Patton) The best test cases are the ones with higher probability of revealing defects / bugs Testing does not prove the absence of defects!

Test cases Test case - Inputs to test the system and the expected outputs from these inputs if the system operates correctly Inputs may include an initial state of the system Outputs may include a final state of the system When test cases are executed, the system is provided with the specified inputs and the actual outputs are compared with the outputs expected Example for a calculator: 3 + 5 (input) should give 8 (output)

Types of testing Level of detail or phase Accessibility system integration unit Accessibility (test case design strategy/technique) security robustness white box black box performance usability reliability functional behaviour focus here Characteristics

Test levels or phases (1) Unit testing Testing of individual program units or components Usually the responsibility of the component developer (except sometimes for critical systems) Tests are based on experience, specifications and code A principal goal is to detect functional and structural defects in the unit Integration testing Testing of groups of components integrated to create a sub-system Usually the responsibility of an independent testing team (except sometimes in small projects) Tests are based on a system specification (technical specifications, designs) A principal goal is to detect defects that occur on the interfaces of units and their common behavior

Test levels or phases (2) System testing Testing the system as a whole Usually the responsibility of an independent testing team Tests are usually based on a requirements document (functional requirements/specifications and quality requirements) A principal goal is to evaluate attributes such as usability, reliability and performance (assuming unit and integration testing have been performed) Acceptance testing Usually the responsibility of the customer Tests are based on a requirements specification or a user manual A principal goal is to check if the product meets customer requirements and expectations (source: I. Sommerville)

Test levels and the extended V-model of software development Execute acceptance tests Specify Requirements Execute system tests System/acceptance test plan & test cases review/audit Requirements review Specify/Design Code System/acceptance tests Design Execute integration tests Integration test plan & test cases review/audit Design review Specify/Design Code Integration tests Code Execute unit tests Unit test plan & test cases review/audit Code reviews (source: I. Burnstein, pg.15) Specify/Design Code Unit tests

Typical tests and reviews (source: "Software Project Survival Guide", Steve McConnell)

Test harness Auxiliary code developed to support testing Test drivers call the target code simulate calling units or a user where test procedures and test cases are coded (for automatic test case execution) or a user interface is created (for manual test case execution) Test stubs simulate called units simulate modules/units/systems called by the target code

Good practices Write the test cases before the software to be tested applies to any level: unit, integration or system helps getting insight into the requirements Code the test cases because of the frequent need for regression testing (repetition of testing each time the software is modified)

References and further reading Practical Software Testing, Ilene Burnstein, Springer-Verlag, 2003 Software Testing, Ron Patton, SAMS, 2001 Testing Computer Software,  2nd Edition, Cem Kaner, Jack Falk, Hung Nguyen, John Wiley & Sons, 1999 Software Engineering, Ian Sommerville, 6th Edition, Addison-Wesley, 2000 Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society, http://www.swebok.org/