Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.

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.
Test process essentials Riitta Viitamäki,
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
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
1 SOFTWARE TESTING Przygotował: Marcin Lubawski. 2 Testing Process AnalyseDesignMaintainBuildTestInstal Software testing strategies Verification Validation.
Software Failure: Reasons Incorrect, missing, impossible requirements * Requirement validation. Incorrect specification * Specification verification. Faulty.
Illinois Institute of Technology
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Types and Techniques of Software Testing
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
System/Software Testing
Extreme Programming Software Development Written by Sanjay Kumar.
Software Testing. Recap Software testing – Why do we do testing? – When it is done? – Who does it? Software testing process / phases in software testing.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Categories of Testing.
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
Chapter 1: Introduction to Software Testing Software Testing
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
Software Systems Verification and Validation Laboratory Assignment 3 Integration, System, Regression, Acceptance Testing Assignment date: Lab 3 Delivery.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Systems Development Lifecycle Project Identification & Selection Project Initiation & Planning Analysis Logical Design Physical Design Implementation Maintenance.
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
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.
 CS 5380 Software Engineering Chapter 8 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 SOFTWARE TESTING Presented By Abhilash.S  What is Software Testing?  Fundamentals of software Testing Error/Mistake? Defect/Bug/Fault? Failure? 2.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
PRESENTER PRIYANKA GUPTA.  Testing the complete system with respect to requirements.  In System testing, the functionalities of the system are tested.
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.
1 Software Testing Strategies: Approaches, Issues, Testing Tools.
TESTING (S,S,AND A,B) By KARTHIKEYAN KANDASAMY. TESTING Scenario testing – 1.System & 2. Usecase Defect bash System o Functional and non functional testing.
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
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.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
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.
Software Testing Strategies for building test group
Software Testing.
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Engineering (CSI 321)
Testing More In CS430.
Some Simple Definitions for Testing
Chapter 13 & 14 Software Testing Strategies and Techniques
TESTING IN THE SOFTWARE LIFE CYCLE &TEST LEVELS Chapter 2 1/11/
Systems Development Lifecycle
Lecture 09:Software Testing
Testing and Test-Driven Development CSC 4700 Software Engineering
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
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.
System analysis and design
Software Testing Strategies
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Software Testing Testing principles

Testing Testing involves operation of a system or application under controlled conditions & evaluating the results. The controlled conditions should include both normal & abnormal conditions. Testing should intentionally attempt to make things go wrong to determine if things happen when they shouldn’t or things don’t happen when they should.

What is a Bug ? A flaw in a system or system component that causes the system or component to fail to perform its required function. Most are simple, subtle failures, with many being so small that it’s not always clear which ones are true failures, and which ones aren’t.

Terms for software failures 1.Defect8.Failure 2.Fault9.Inconsistency 3.Problem10.Feature 4.Error11.Bug 5.Incident 6.Anomaly 7.Variance

Fault, failure & defect : Tend to imply a condition that’s really severe, may be even dangerous. It doesn’t sound right to call an incorrectly colored icon a fault. These words also tend to imply blame: “ it’s his fault that the s/w failed.”

Anomaly, incident & variance Don’t sound quite so negative and infer more unintended operation than an all-out failure. “ the president stated that it was a software anomaly that caused the missile to go off course.”

Problem, error & bug : Probably the most generic terms used. “ A bug’s a bug’s a bug.”

…but in SDLC these terms differs like: Design deviation – Error Coding deviation – Bug Testing – Issue/Bug Maintenance – Defect At Client -- Failure

Why does software have bug’s ? Miscommunication or no communication (requirement’s) Software complexity Programming errors Changing requirements Time pressures Poorly documented code Software development tools Egos

Fig: Bug’s are caused for numerous reasons, but the main cause can be traced to the specification.

The Cost of Bug’s Fig:The cost to fix bug’s increases dramatically over time

What is Verification ? Verification ensures the product is designed to deliver all functionality to the customer. Typically involves reviews and meetings to evaluate documents, plans, code, requirements, and specifications.

Verification This can be done with checklists, issues lists, walkthroughs, and inspection meetings. Verification takes place before validation.

What is Validation ? Validation typically involves actual testing and evaluates the product itself. The process of executing something to see how it behaves. The output of validation is a nearly perfect, actual product.

What kind of testing should be considered ? Black Box Testing White Box Testing Unit Testing Incremental Integration Testing Integration Testing Functional Testing System Testing End-to-End Testing Sanity or Smoke Testing Regression Testing Acceptance Testing Load Testing Stress Testing Performance Testing Usability Testing Install / Uninstall Testing

Contd…. Recovery Testing Failure Testing Security Testing Compatibility Testing Exploratory Testing Ad-hoc Testing User Acceptance Testing Comparison Testing Alpha Testing Beta Testing Mutation Testing

Black Box Testing Not based on any knowledge of internal design or code. Tests are based on requirements and functionality. It will not test hidden functions & errors associated with them will not be found in black box testing.

White Box Testing Based on knowledge of the internal logic of an application’s code. Test’s are based on coverage of code statements, branches, paths, conditions. It will not detect missing function.

Unit Testing Process of testing the individual component of a program. Discover discrepancies between the module’s interface specification & its actual behavior. Verify the control flow and data flow. Requires the knowledge of the code hence done by the developers.

Incremental Integration Testing Done by programmers or by Testers. Continuous testing of an application as new functionality is added. Requires that various aspects of an application’s functionality be independent enough to work separately before all parts of the program are completed.

Integration Testing Testing of combined parts of an application to determine if they function together correctly. To discover errors in the interface between the components, verify communication between units. Done by developers / QA teams.

Functional Testing Black box type testing. Detect discrepancies between a program’s functional specification and actual behavior. Verifies that the software provides expected services. Done by tester’s.

System Testing Black box type testing. Attempting to demonstrate that a program Or system does not meet its original requirements & objectives, as stated in the requirements specification. Done by testing group before the product is made available to customer.

Types / Goals of System Testing Usability Testing Performance Testing Load Testing Stress Testing Volume Testing Security Testing Configuration Testing Install ability Testing Recovery Testing Service ability Testing Reliability / Availability Testing

Usability Testing Testing for “ user-friendliness.” User interviews, surveys, video recording of user sessions, & other techniques can be used. Identify discrepancies between the user interface.

Performance Testing Evaluate the compliance of a system or components with specified performance requirements. Often used interchangeably with ‘stress’ and ‘load’ testing. Ideally performance testing is defined in requirements documentation.

Load Testing Testing an application under heavy loads, such as testing of a website under a range of loads to determine at what point the system’s response time degrades or fails.

Stress Testing Used interchangeably with ‘load’ & ‘performance’ testing. Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements. System functional testing while under unusually heavy loads, heavy repetition of certain actions or inputs, etc..

Configuration Testing To determine whether the program operates properly when the software or hardware is configured in a required manner

Compatibility Testing To determine whether the compatibility objectives of the program have been met. Testing how well application performs in a particular hardware / software / operating system / network etc environment.

Installability Testing Testing of full, partial, or upgrade install / uninstall processes. To identify the ways in which the installation procedures lead to incorrect results installation option New Upgrade Customized / Complete Under normal & abnormal conditions

Recovery Testing Testing how well a system recovers from crashes, hardware failures, or other catastrophic problems. Typically used interchangeably with “fail-over testing.”

Regression Testing Re-testing after fixes or modifications of the software or its environment. Verify that changes fixes have not introduced new problems. It can be difficult to determine how much re-testing is needed, especially near the end of development cycle.

Acceptance Testing Final testing based on specifications of the end-user or customer, or based on use by end-user / customer over some limited period of time. Determine whether the software is ready for final deployment. Done after the testing group has satisfactorily completed usability, function, & testing.

Contd… Organizations can arrange for alternative forms of acceptance testing: ALPHA BETA

ALPHA & BETA Both involve running & operating the s/w in production mode for a pre- specified period. The ALPHA test is usually performed by end users inside the development org. The BETA test is usually performed by a selected subset of actual customers outside the company, before the s/w is made available to all customers.