Software Testing Written by Zvika Gutterman Adam Carmi.

Slides:



Advertisements
Similar presentations
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Advertisements

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.
Software and System Development ™ Operating System Application Program Graphical User Interface (GUI) Systems Development.
Software Architecture Prof.Dr.ir. F. Gielen
Lesson 6 Software and Hardware Interaction
{ Dominion - Test Plan Version 1 – 22 nd Apr Aravind Palanisami.
Abirami Poonkundran 2/22/10.  Goal  Introduction  Testing Methods  Testing Scope  My Focus  Current Progress  Explanation of Tools  Things to.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Testing and Debugging CS221 – 2/13/09. Airline Program.
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Chapter 1 Program Design
Lecture 9 Testing Topics TestingReadings: Spring, 2008 CSCE 492 Software Engineering.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Introduction to Software Testing
Types and Techniques of Software Testing
Testing Dr. Andrew Wallace PhD BEng(hons) EurIng
Your Interactive Guide to the Digital World Discovering Computers 2012.
Lesson 4 Computer Software
CS102 Introduction to Computer Programming
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
BY: GARIMA GUPTA MCA FINAL YEAR WHAT IS SOFTWARE TESTING ? SOFTWARE TESTING IS THE PROCESS OF EXECUTING PROGRAMS OR SYSTEM WITH THE INTENT.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
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.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CMSC 345 Fall 2000 Unit Testing. The testing process.
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.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
 CS 5380 Software Engineering Chapter 8 Testing.
SOFTWARE TESTING Scope of Testing  The dynamic Indian IT industry has always lured the brightest minds with challenging career.
Software Development Software Testing. Testing Definitions There are many tests going under various names. The following is a general list to get a feel.

Functional Verification Figure 1.1 p 6 Detection of errors in the design Before fab for design errors, after fab for physical errors.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
DB2 Universal Database Confidential | July 2012 | India Software Lab Click to add text © 2012 IBM Corporation An End to End Windows Automation Framework.
Software Testing Łukasz Wojcieszek s2690 Tomasz Wyrzuc s2675.
What is Testing? Testing is the process of finding errors in the system implementation. –The intent of testing is to find problems with the system.
Module 1 – Lesson 6 Ms. Tracy. Bell Ringer What is the typical useful life for a personal computer?
GAM666 – Introduction To Game Programming ● DirectX is implemented as a collection of COM objects ● To use a DirectX program, the user must have the correct.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
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.
Unit 17: SDLC. Systems Development Life Cycle Five Major Phases Plus Documentation throughout Plus Evaluation…
Jason I. Hong CS169 - Software Engineering, Fall 1998 Testing Strategies.
Software Testing Reference: Software Engineering, Ian Sommerville, 6 th edition, Chapter 20.
SOFTWARE TESTING SOFTWARE TESTING Presented By, C.Jackulin Sugirtha-10mx15 R.Jeyaramar-10mx17K.Kanagalakshmi-10mx20J.A.Linda-10mx25P.B.Vahedha-10mx53.
1 Lesson 6 Software and Hardware Interaction Computer Literacy BASICS: A Comprehensive Guide to IC 3, 3 rd Edition Morrison / Wells.
Introduction to Software Testing Maili Markvardt.
Software Testing By Souvik Roy. What is Software Testing? Executing software in a simulated or real environment, using inputs selected somehow.
Chapter 6 Testing and running a solution. Errors X Three types Syntax Logic Run-time.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Testing and Debugging UCT Department of Computer Science Computer Science 1015F Hussein Suleman March 2009.
Software Testing Strategies for building test group
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
Software Engineering (CSI 321)
Testing Tutorial 7.
SOFTWARE TESTING OVERVIEW
Chapter 8 – Software Testing
Gary Hughes, South Oakleigh College
Introduction to 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 Verification and Validation
CSE 1020:Software Development
Software Testing.
Software Testing Strategies
Presentation transcript:

Software Testing Written by Zvika Gutterman Adam Carmi

Question? Who has the highest Salary in Israel public service in 2001? The test pilot of IAI ! Why?

Agenda Goal Introduction Vocabulary White Box Black Box Static vs. Dynamic Example - TVRS

Goal The process of executing a program (or part of it) with the intention of finding errors. [Myers] Any activity aimed at evaluating attribute of a program and determining that it meets its requires results. [Hetzel] –Myers: “The art of software testing” [1979] –Hetzel: “The Complete Guide to software testing” [1988]

Introduction 50-90% of software life cycle TVRS vs. Air Craft Industry Usually not done by professionals Not an exact science (can be impossible) Complete coverage is impossible ! –Number of options is exponential – just RAM O(2 ^N ) Fixes introduce new bugs

Introduction (cont.) OS & Hardware dependent Programming Language Dependent! –C++ vs. Java ! Never Ends (client as a tester..) –There is always another Bug Marketing vs. Testing –1980’s – PC –1990’s – Internet hype

Introduction (cont.) Requires writing additional code (which can include bugs) Automatic tools for testing exists –Mainly for knows fields Web servers (see ….) –Parasoft –Mercury Interactive

Vocabulary Bug, Fault, Error, Defect, Errata,.., Feature Fix, Patch, Service Pack, Update, Upgrade Versions: Alpha, Beta, Release Candidate, 1.1.x vs. 1.2.x Regression/Functional/White Box/Black Box/Unit/System/Integration Testing

White Box – Unit Testing Testing the Implementation Logic Usually done by the programmer – (good/bad?) Tests the source code Example: –Implementing a Sorting Method Merge Sort vs. Bubble sort

Black Box – Functional Testing Use Cases and Requirements based Interface Testing Input-Output Testing Use Valid and Invalid inputs Use “real” samples

Black Box – Sorting Method Unaware of the used algorithm Sorting: –Use complete enumeration for small examples 10 elements (10!) Should we test again for 11 elements? –Check for equal values (2,2,2,5,3,4,7) –Which input ranges are valid? (use extremes) Random Testing (why?)

Testing affects results Test Programs Another Software is using the same resources It is not the same code –Debug vs. Release For example: counters initialized to zero (gdb) assert(x=3);

Acceptance Testing testing used to simulate client activities within the software house used on a small group of clients –Advanced users? –Brave clients..

Static Testing Static –Compiler C++: -Wall, -pedantic, -ansi –Static Checker – e.g. – Lint ( –Human code review –Formal verification

Dynamic Testing Runtime Monitors –Memory management Debugger Unique Tools – Purify/Bounds Checker –Timing Quantify Microsoft –Coverage Pure coverage

Testing Metrics Number of bugs –Day/developer/team/product Define severity levels –No Go! –.. –Feature Regression Tools (re-approving the product) Acceptance Testing Poor man solution: –Time / Budget

Black Box - Algorithm 1.For each Use Case a)Identify different cases (named equivalent classes) b)Identify endpoints 2.Create tests i.Prefer automatic tests ii.Iterate on all possible Environments iii.Prioritize tests i.Among Use Cases ii.Among different tests

Example – TRVS – Black Box Use case: 3 – find Policeman –Equivalent classes Policeman with searched ID exists/not Policeman with searched Name exists/not Few policemen with searched Name exists Policeman with searched ID just deleted.. –Endpoints Does system allow to enter ID’s with varying number of digits?..

Example – TRVS – Black Box Test Index1 Use Case3 - Find Policeman PreconditionUser : {“Moshe”, “Cohen”, } exists in system. Action1.Select: Find by Name 2.Insert name: “Moshe” 3.Select – find button. Expected ResultsUser found with above details. Window appears on screen. Test Result Pass/Fail Reasoning

Example – TRVS – Black Box Test Index2 Use Case3 - Find Policeman PreconditionPoliceman records file “policemen.db” loaded. Action1.Select: Find by Name 2.Insert name: “Moshe” 3.Select – find button. Expected ResultsUser not found. Window appears on screen. Test Result Pass/Fail Reasoning