G Ramesh Gopalaswamy_Ramesh@Yahoo.Com Principles of Testing G Ramesh Gopalaswamy_Ramesh@Yahoo.Com.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

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.
Testing and Quality Assurance
CS351 © 2003 Ray S. Babcock Software Testing What is it?
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Software Testing.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Illinois Institute of Technology
1 Testing. 2 About Testing  The reason the program is in testing is that it probably doesn’t work!  We test to find bugs before our users and hope that.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Software Testing Prasad G.
Introduction to Software Testing
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Sprint – Weekly cadence
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
Introduction to Unit Testing Jun-Ru Chang 2012/05/03.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 1: Introduction to Software Testing Software Testing
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
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 Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Software Testing. What is Software Testing? Definition: 1.is an investigation conducted to provide stakeholders with information about the quality of.
SOFTWARE TESTING Scope of Testing  The dynamic Indian IT industry has always lured the brightest minds with challenging career.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.

CSCE 522 Secure Software Development Best Practices.
Rational Unified Process Mr Hisham AlKhawar. Iterative versus Waterfall  We need to use a life cycle model in order to approach developing a system easily,
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Testing, Testing & Testing - By M.D.ACHARYA QA doesn't make software but makes it better.
MANUAL TESTING KS SESSION PRESENTED BY 26/11/015 VISHAL KUMAR.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Testing and Software Quality Assurance Process.
1 Software Engineering. 2 Software Engineering is the study of activities related to the development of a software product.
Software Testing. System/Software Testing Error detection and removal determine level of reliability well-planned procedure - Test Cases done by independent.
Agenda for today: The Unified Software Development Process: Test (Note) Test The purpose of testing Artifacts Test in the sw Life Cycle Workers Test procedure.
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.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Software Engineering Lecture 8: Quality Assurance.
CS 160 and CMPE/SE 131 Software Engineering April 12 Class Meeting Department of Computer Science Department of Computer Engineering San José State University.
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
Introduction to Software Testing Maili Markvardt.
MAY 19 th 2016 Jovan Poljački
SELF INTRODUCTION 1. SOFTWARE TESTING By Navin and Bidyut 2.
1 Testing A little terminology you’re surely familiar with… Black Box White Box Integration Acceptance Regression.
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.
Software Testing Kobla Setriakor Nyomi Faculty Intern (Programming II)
Manual Testing Training Online. Manual testing is a type of testing that involves human input, analysis or evaluation. It is the procedure of manually.
SaralTA Batch-07 Software Testing Presented By - Chittaranjan M.
Tracking and Squashing Bugs
Software Engineering (CSI 321)
Testing More In CS430.
Software Testing Introduction CS 4501 / 6501 Software Testing
Software Verification and Validation
SUCHITA M.DAKI TYIT(sem v)
SEVERITY & PRIORITY RELATIONSHIP
Quality Management Perfectqaservices.
CSE 403 Software Engineering
Software engineering – 1
Software Testing Those slides are taken from : extra material is used from
Introduction to Software Testing
Lecture 09:Software Testing
The purpose of testing Artifacts Test in the sw Life Cycle Workers
CS240: Advanced Programming Concepts
Chapter 10 – Software Testing
CMPE/SE 131 Software Engineering April 11 Class Meeting
Test Cases, Test Suites and Test Case management systems
Presented by KARRI GOVINDA RAO ,
Software Testing Those slides are taken from : extra material is used from
Presentation transcript:

G Ramesh Gopalaswamy_Ramesh@Yahoo.Com Principles of Testing G Ramesh Gopalaswamy_Ramesh@Yahoo.Com

Today’s Agenda Understanding the role of testing vis-à-vis other life cycle activities w.r.t quality Getting an appreciation of the basic principles of testing Basis Material for this session: Software Testing – Principles and Practices, Srinivasan Desikan and Gopalaswamy Ramesh, Pearson Education, 2006-2007

Phases of software development (not necessarily sequential!) Requirements gathering Design Development Testing Deployment and maintenance

Quality during various phases… Effectiveness of Testing phase LOW HIGH High Rework Costs Ideal State! Quality of other phases LOW HIGH Not sustainable! Risky!

The car is complete… You just have to paint it!

This car can accelerate From 0 to 60 in 5 secs Yeah, but it accelerates when I press the brake!

Principle #1 A product should meet the customers’ needs Customers need not be “external” customers Testers are customers for developers A software should be “testable” Testing should find out defects before customer finds them out!

Principle #1: Implications Practice of incorporating customer supplied test cases into battery of tests Including customers and / or “customer facing” into the testing functions Concept of Alpha / Beta testing

Program Testing can never prove the absence of bugs, Principle #2 Remember the “triangle” problem? Remember the last class “6 character problem”? Dijkstra’s Doctrine: Program Testing can never prove the absence of bugs, Only their presence

Principle #2: Implications Choose your tests intelligently Choose tests that have a higher probability of uncovering defects Boundary Values, Choice of regression tests

Principle 3:

Principle #3 Defects should be detected and corrected at the earliest – Postponing detection of defects compounds cost!

Principle #3: Implications Different types of testing interspersed during product cycle Different methods of integration Concept of Regression Testing

Principle #4: The Cat and the Saint Knowing why you are testing something is as important as Knowing what you are testing

Principle #4: Implications White Box Testing Starting from code Black Box Testing Starting from external functionality Integration Testing Stuff works together! System / Performance Testing Works in real life conditions Regression Testing Makes sure changes don’t affect existing stuff Domain / adhoc testing Bringing domain expertise into testing

A defective test is even more dangerous than a defective product! Principle #5 Test the tests first! A defective test is even more dangerous than a defective product!

Principle #5: Implications A test should document the Input data expected results the test process The behavior has to be externally corroborated No Turing Machine can verify itself!

Principle #6: The Pesticide Paradox Bugs are like bacteria – they develop resistance to antibiotics; New antibiotics have to be developed!

Principle #6: Implications Need to redefine and refine tests as we move forward As we “pass” old tests, new defects will surface Regression Tests have to be “retired” and new regression tests have to be designed

Principle #7: The Rags and The Convoy

Principle #6: Defects come in convoys ; Fixing a defect in the convoy is likely to add more defects

Principle #6: Implications Look for side effects Look for “spaghetti code” or “rags” Tie maintenance and testing functions closely

Principle #8: Cop on the Bridge Prevention is better than cure – Prevention can open substantially new vistas

Prevention and Cure: Quality Assurance Vs Quality Control Process oriented Defect Prevention oriented Proactive Staff function Quality Control Product oriented Defect detection / correction oriented Reactive Line function

Principle #8 leads to Principle #9:

Principle #9: End of the Pendulum

Principle #8 and #9: Implications Achieve a balance between (Defect Prevention) Quality Assurance and (Defect Detection) Quality Control View QA and QC as supplementary and not adversary job functions Distribute QA / QC functions throughout for early detection (Principle #1)

Principle #10: The Men in Black The IBM experiment (Peopleware, DeMarco & Lister) Issues of “pride” we discussed last class

Principle #10: Implications Instilling pride in testers Establishing an identity for testers Showing them a career path

Principle #11: Automation Syndrome Focus on WHAT you want to automate; Relate it to the goals; Automation is not a panacea

Putting it all together… #1: Goal of testing is to find defects BEFORE customers find them #2: Program testing can only show presence of bugs, never their absence #3: Test early and often #4: Understand the “why” and not just the “what” / “how” #5: Test the tests first #6: Tests develop immunity – discover new tests! #7: Focus on convoys of defects #8: Testing encompasses defect prevention #9: Strike a fine balance between defect prevention and defect detection #10: Plan the automation initiatives #11: Instill pride in testers

Today’s Agenda Recap Understanding the role of testing vis-à-vis other life cycle activities w.r.t quality Getting an appreciation of the basic principles of testing