Software Testing and Quality Assurance: Introduction and Terminology

Slides:



Advertisements
Similar presentations
Lecture 8: Testing, Verification and Validation
Advertisements

25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
Testing and Quality Assurance
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Chapter 4 Quality Assurance in Context
Chapter 7 Testing Class Hierarchies. SWE 415 Chapter 7 2 Reading Assignment  John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented.
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Software Testing and Quality Assurance
PowerPoint Presentation for Dennis, Wixom & Tegarden Systems Analysis and Design Copyright 2001 © John Wiley & Sons, Inc. All rights reserved. Slide 1.
November 13, 2006ECEN 5543 / CSCI 5548 – Testing OO University of Colorado, Boulder 1 Testing Object-Oriented Software Principles Summary ECEN 5543 / CSCI.
 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.
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 11 System Test Design
Verification and Validation
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Extreme Programming Software Development Written by Sanjay Kumar.
COURSE TITLE: 1 Software Quality Assurance. Course Aims Introduction to software quality assurance. Software testing terminology. Role and responsibility.
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
March 13, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #15 Tuesday, March 13, 2001.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 20 Slide 1 Integration testing l Tests complete systems or subsystems composed of integrated.
Chapter 2 The process Process, Methods, and Tools
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
RUP Implementation and Testing
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Understand Application Lifecycle Management
Instructor: Peter Clarke
Software Testing Course Shmuel Ur
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Slide 1 Construction (Testing) Chapter 15 Alan Dennis, Barbara Wixom, and David Tegarden John Wiley & Sons, Inc. Slides by Fred Niederman Edited by Solomon.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Chapter 4 프로세스 모델 Process Models
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Verification and Validation Assuring that a software system meets a user's needs.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 8 Lecture 1 Software Testing. Program testing Testing is intended to show that a program does what it is intended to do and to discover program.
Software testing techniques Software testing techniques Object-oriented software testing Presentation on the seminar Kaunas University of Technology.
LECTURE 20 26/11/15. Summary - Testing ◦ Testing affects all stages of software engineering cycle ◦ One strategy is a bottom-up approach – class, integration,
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Java Software Solutions Lewis and Loftus Chapter 15 Copyright 1997 by John Lewis and William Loftus. All rights reserved. 1 Software Development Process.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Building usable software through early testing. Objective Show the value of testing from the beginning of the development cycle. Consensus in the industry.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
Software Engineering Lecture 8: Quality Assurance.
1 Software Testing and Quality Assurance Lecture 17 - Test Analysis & Design Models (Chapter 4, A Practical Guide to Testing Object-Oriented Software)
This chapter is extracted from Sommerville’s slides. Textbook chapter 22 1 Chapter 8 Validation and Verification 1.
1 Software Testing and Quality Assurance Lecture 38 – Software Quality Assurance.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
Cs498dm Software Testing Darko Marinov January 24, 2012.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Software Quality Control and Quality Assurance: Introduction
Software Engineering (CSI 321)
Software Quality Engineering
SEVERITY & PRIORITY RELATIONSHIP
Prologue.
Levels of testing.
Software Quality Engineering
IEEE Std 1074: Standard for Software Lifecycle
Chapter 18 Software Testing Strategies
Presentation transcript:

Software Testing and Quality Assurance: Introduction and Terminology Reading: John McGregor and David A. Sykes, A Practical Guide to Testing Object-Oriented Software, Addison-Wesley, 2001, ISBN: 0-201-325640. Chapter 1

Outline What software testing is — and Is not Software testing vs. debugging Software testing vs. quality assurance. Know the similarities and the differences between Object-Oriented software testing and traditional software testing.

What Software Testing is—and Is Not Software testing is the process of finding evidences of defects in software systems. Software testing ensures that a product meets requirements. A successful test is one that discovers an as-yet-undiscovered error. Software testing is not: debugging. Quality Assurance (QA).

Our Textbook Definitions An error is a slip-up or inappropriate decision by a software developer that leads to the introduction of a defect. A defect is a flaw in any aspect of the system that contributes, or may potentially contribute, to the occurrence of one or more failures: It might take several defects to cause a particular failure. A failure is an unacceptable behaviour exhibited by a system: The frequency of failures measures the reliability.

Software Testing vs. Debugging Software testing does not include the effort associated with tracking down bugs and fixing them (debugging or repair of bugs) Testing is the process of finding failures Debugging is the tracking down the source of the failure.

Software Testing vs. Quality Assurance Software testing is not quality assurance (QA). QA is responsible for developing test plans and setting standards that project members should follow in order to build a better software. QA might monitor testing during development and keep statistics. Testing is necessary but is not enough for QA process. QA addresses activities designed to prevent defects as well as to remove those defects. Testing can contribute to improved quality by helping to identify problems early in the development process but no amount of testing will improve the quality of the software

Our Focus in This Course On Object-Oriented (OO) and component-based software (CB). You can apply many of the techniques on other programming paradigms On describing what to test in OO development efforts. On describing techniques for how to test OO software.

Expectations Familiarity with testing procedural software. Experience in developing software using OO and CB technologies.

Object-Oriented Software Testing Object-oriented programming have features that are very different from the other programming paradigms. Object-Oriented features Inheritance Polymorphism Encapsulation Interfaces Reusability

Object-Oriented Software vs. Traditional Software Testing Similarities in testing OO software and traditional software Software meets requirements Unit testing, integration testing, and regression testing Differences in testing OO software and traditional software OO analysis, design and implementation are different representations of the same problem model. It implies that testing can be done at each stage OO software development concerns objectives like reusability and extensibility. In addition to conventional goals of testing, these objectives need to be tested.

Advantages of OO Testing Analysis models map straight forward to design models which map to code. Thus, we can start testing during analysis and refine the tests done in analysis to tests for design. Tests of design can be refined to tests of implementation. So, the testing process can be interwoven with the development process.

Advantages to Testing Analysis and Design Models Test cases can be identified earlier in the process, even as requirements are being determined (to ensure that the specified requirement is testable). Bugs can be detected early in the development process, saving time, money, and effort. Test cases can be reviewed for correctness early in the project. Note: Testing models are beneficial but testing code is still an important part of the process.

Testing Approach Analyze a little Design a little Code a little Test what you can.

Tests for OO Software Model testing Class testing, which replaces unit testing Interaction testing, which replaces integration testing System (and sub system) testing Acceptance testing Deployment/self testing Regression testing

“Test Early, Test Often, Test Enough” Testing Motto “Test Early, Test Often, Test Enough” Test Early: Testing during analysis and design phases can help to uncover problems early in the development process and help to scope the size of the effort needed to perform testing by determining what needs to be tested. Test often: When iterative incremental process is used, as iterations are completed on analysis, design, and implementation phases, the products should be tested. Test enough: Test every aspect of the software.

Brickles Game Brick Pile Puck Paddle Play field

Summary of Key Points Software testing is the process of discovering evidences of defects and failures in software systems. Software testing is not quality assurance (QA). Testing OO Software is different from testing procedural software. Test early, test often, test enough Software testers should have a very good understanding of the development process, product and the ability to anticipate likely faults and errors.