Software Testing1 Dr. Samy Abu Nasser Associate Professor Faculty of Engineering & Information Technology.

Slides:



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

Testing Relational Database
Test process essentials Riitta Viitamäki,
System Integration Verification and Validation
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
OHT 9.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Definitions and objectives Software testing strategies Software test.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
OHT 9.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Definitions and objectives Software testing strategies Software test.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Illinois Institute of Technology
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
OHT 9.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Chapter 9.3 Software Testing Strategies.
Software Testing Prasad G.
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.
Introduction to Software Testing
Types and Techniques of Software Testing
Software Testing & Strategies
Software Testing Introduction. Agenda Software Testing Definition Software Testing Objectives Software Testing Strategies Software Test Classifications.
Issues on Software Testing for Safety-Critical Real-Time Automation Systems Shahdat Hossain Troy Mockenhaupt.
Software System Integration
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Chapter 13 & 14 Software Testing Strategies and Techniques
Functional Testing Test cases derived from requirements specification document – Black box testing – Independent testers – Test both valid and invalid.
Extreme Programming Software Development Written by Sanjay Kumar.
Managing Software Quality
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.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
SOFTWARE TESTING STRATEGIES CIS518001VA : ADVANCED SOFTWARE ENGINEERING TERM PAPER.
CS 501: Software Engineering Fall 1999 Lecture 16 Verification and Validation.
CPIS 357 Software Quality & Testing
CMSC 345 Fall 2000 Unit Testing. The testing process.
RUP Implementation and Testing
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
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.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Testing Workflow In the Unified Process and Agile/Scrum processes.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 23 Reliability III.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Introduction to Software Testing. Types of Software Testing Unit Testing Strategies – Equivalence Class Testing – Boundary Value Testing – Output Testing.
Sylnovie Merchant, Ph.D. MIS 161 Spring 2005 MIS 161 Systems Development Life Cycle II Lecture 5: Testing User Documentation.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Software quality factors
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?
Integration testing Integrate two or more module.i.e. communicate between the modules. Follow a white box testing (Testing the code)
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
Software Quality Assurance and Testing Fazal Rehman Shamil.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
©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.
Testing and Evolution CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
ISQB Software Testing Section Meeting 10 Dec 2012.
Software Testing.
Software Engineering (CSI 321)
Chapter 13 & 14 Software Testing Strategies and Techniques
Software testing strategies 2
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
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 Testing COM /12/2019 Testing/Spring 98.
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Software Testing1 Dr. Samy Abu Nasser Associate Professor Faculty of Engineering & Information Technology

Software Testing2 Structured Testing

Software Testing3 Lecture Outline The Unbearable Hardness of Testing A definition of testing Structured testing Quality requirement factors Black-box testing Functional hierarchies

Software Testing4 Testing Will Not Be Easy Non-trivial software has bugs Cannot know in advance what will cause failure Passing a test does not show bug absence  f(x) may be correct for x = 213  f(x) may not be correct for x ≠ 213  f(x) may not be correct for x = 213 next time! Large input/state space

Software Testing5 Testing Stays Hard Tests help us find current bugs Future bugs will require new tests

Software Testing6 Testing as Risk Management How do we tame this complexity? Ask: what are the risks? Testing is about covering the risks Risks can be  Dependent on implementation ■ Coding errors, &c.  Independent of implementation ■ Specification errors, &c.

Software Testing7 A Definition of Testing Software testing is a formal process (carried out by a specialized testing team) in which a software unit, several integrated software units or an entire software package are examined by running the programs on a computer. All the associated tests are performed according to approved test procedures on approved test cases.

Software Testing8 Methodical Testing The testing definition implies testing should be methodical Since testing is a statement of confidence it must be convincing and therefore documented Document  Test process(es)  Test design  Test techniques Documentation must be adhered to

Software Testing9 Testing Objectives Direct objectives  Identify and reveal as many errors as possible in the tested software  To bring the tested software, after correction of the identified errors and retesting, to an acceptable level of quality  To perform the required tests efficiently and effectively, within budgetary and scheduling limitation Indirect objectives  To compile a record of software errors for use in error prevention (by corrective and preventive actions)

Software Testing10 Testing Strategies Big Bang testing  Test the software in its entirety Incremental testing  Test the software as it is built  Unit  Integration  System ■ May be bottom-up, may be top-down

Software Testing11 Structured Testing Testing can appear overwhelming initially Develop tests systematically Develop tests incrementally  According to the systematic process Testing will still be labor-intensive  Don’t cut corners

Software Testing12 Testing as Development Testing and development cannot be separated Testing shows the behavior of software  Therefore we don’t know how software will behave until we test it Develop tests from specification (model)  Specification defines correct operation  Tests should check for correct operation  Specification ↔ Tests ↔ Code

Software Testing13 Quality Requirement Factors Operation  Correctness  Reliability  Efficiency  Integrity  Usability Revision  Maintainability, Flexibility, Testability Transition  Portability, Reusability, Interoperability

Software Testing14 Test classifications (Operation) Correctness  Accuracy and completeness of outputs & data ■ Output correctness tests  Accuracy and completeness of documentation ■ Documentation tests  Availability  Data processing and calculations correctness  Coding and documentation standards

Software Testing15 Test classifications (Operation) Reliability  Reliability tests Efficiency  Stress/load tests Integrity  Security tests Usability  Training usability tests  Operational usability tests

Software Testing16 Test Classifications Revision  Maintainability  Flexibility  Testability Transition  Portability  Reusability  Interoperability ■ With other software ■ With other equipment

Software Testing17 Black Box Testing (IEEE) Testing that ignores the internal mechanism of a system or component and focuses solely on the output generated in response to selected inputs and execution conditionals Testing conducted to evaluate the compliance of a system or component with specified functional requirements

Software Testing18 Use of Black Box Testing Can’t look at particular implementation Sub-factors testable  Output correctness, Documentation, Availability  Reliability  Stress/load  Security  Training, Operational  Maintainability  Testability  Portability  Interoperability: software, equipment

Software Testing19 Black Box Testing Requirements What the system is supposed to do  How do we know this?  How is it described Need a model of the system Need a model of the tests Need a working component or (sub)system

Software Testing20 Results of Black Box Testing Types of errors  Missing/incorrect capability  Inadequate performance, deadlock, &c.  Incorrect output  Abnormal termination Causes of errors  Elicitation errors  Specification errors  Programming errors ■ via incorrect results  Configuration/integration errors

Software Testing21 Types of Black Box Testing Domain-based testing Stress/load testing Specification driven testing Risk-based testing Function testing Regression testing Scenario/use-case testing User-based testing Exploratory testing

Software Testing22 Domain-based testing Divide tests into equivalence classes Test boundaries/representatives from each set Pros  Easy  Generalizes  Can produce results from a small test set Cons  Domains may be difficult to determine  Faults not on boundaries may be missed

Software Testing23 Stress/load testing Push system to its limits and beyond  Large data/connection volumes  Long transactions  Degradation: partial cluster failure Pros  Cons Exposes ‘field’ problems  What about faults unrelated to stress?

Software Testing24 Specification driven testing Develop assertions from requirements and/or specifications Map assertions to test cases Pros  Defense against not meeting specification Cons  Will not find faults due to missing or incorrect requirements

Software Testing25 Risk-based testing Schedule testing according to perceived risks Pros  Optimal division of testing effort Cons  Risks may not be initially clear  Risk may not be identified  Wrong assignment of priority may lead to major risk being untested

Software Testing26 Function testing Test each function individually and thoroughly Requires functional analysis Pros  Thorough Cons  Misses functional interaction  Doesn’t assess system as a whole

Software Testing27 Regression testing Manage risk of ‘fix’ not fixing a bug or introduced side-effects Automated regression test suites Pros  Maintain consistency of behavior Cons  Doesn’t handle new functionality  Maintenance ranges from annoying to costly  May not cover things well

Software Testing28 Scenario/use-case testing Based on real use scenarios  Use cases  Transactions Pros  Realistic (and likely complex)  Exposes failures over time  Useful as part of UA testing Cons  Individual function failure can ruin whole tests  Coverage may be an issue

Software Testing29 User-based testing Let real users user the software Find faults in interface  Internal use sessions with external testers  Beta testing Pros  Exposes design/usability issues  May be recorded and/or focused Cons  Coverage may be patchy  Test cases may be poor  May not be free

Software Testing30 Exploratory testing Undocumented fiddling with software Learn-as-you go testing Pros  Little preparation needed Cons  May miss a lot due to ignorance

Software Testing31 Structured Testing Testing is systematic and structured Design tests  From specification ■ Functional, performance, security  From model ■ Risks model Criteria for correct operation

Software Testing32 Specifications End-users must be included in test design  Help mitigate against missing/incomplete documentation and requirements Specification may be development incrementally Test design may involve development of the specification

Software Testing33 Test Objectives Directed against a specific (set of) components High level test objectives  Decomposed to more detailed objectives Test objectives and cases must be documented  Audit trail from specification to tests  Document templates ensure consistency

Software Testing34 Functional Analysis Model of system functionality Develop lists of functions Analyze functionality to determine tests

Software Testing35 Example: FontForge Outline font editor which supports  Creation of character outlines  Development of typographical tables for OpenType and AAT (Apple Advanced Typography )  Saving of fonts in various formats Problems  Documentation/tutorial is patchy (inconsistent)  Output of this program is used in many different environments

Software Testing36 Functions Identify functions which are part of the system  Group functions as an hierarchy  Leaves of this tree are individual functions Functional hierarchy  May mirror menus in the application  May mirror documentation  May be a mixture

Software Testing37 Function Hierarchy Develop an hierarchy of function groups and Functions

Software Testing38 Function Hierarchy

Software Testing39 Deeper functionality

Software Testing40 Documenting Functions Document each identified function  What the function does  How it is supposed to work

Software Testing41 Add new substitution variant Accessed from Glyph Info dialog Allows the user to add a new substitution variant for a glyph Once entered the data becomes part of the translation tables in the font

Software Testing42 Documenting Functions Level of detail dependent on end-users of documentation  ‘Accessed from Glyph Info dialog’ may or may not be enough information Descriptions may be provided up-front or an as-needed basis during the design of tests

Software Testing43 Data Flow Inputs  Target components  Substitution tag  Script/language tag  Flags Outputs  Entry in substitution table for glyph

Software Testing44 Data Flow Model

Software Testing45 Analysis Analyze each function to define test criteria Analyze each function’s input and output to determine required tests Analyze the functions’  Criteria  Inputs  Outputs  Internal conditions  Internal state

Software Testing46 Criteria Define post-conditions to determine whether the function is performing correctly

Software Testing47 Criteria Tools are just that: tools not solutions  XML  UML  Java  They should not be used for the sake of it

Software Testing48 Criteria #CriterionId 1New substitution variant GLYPH-SUBS-CR-001

Software Testing49 Outputs Identify output which must be produced by the system to support the function Identify how values will be determined to be correct

Software Testing50 Outputs #OutputAccessCorrectness Id 1 Target componentSubstitution tableAs enteredGLYPH-SUBS-OU Type tagSubstitution tableAs enteredGLYPH-SUBS-OU ScriptSubstitution tableAs enteredGLYPH-SUBS-OU FlagsSubstitution tableAs entered GLYPH-SUBS-OU-004

Software Testing51 Inputs Identify input required to generate outputs Identify how invalid inputs are treated

Software Testing52 Inputs #InputRequirementsId 1 Target component glyph Target glyph of substitution. Glyph is entered into appropriate substitution table GLYPH-SUBS-CR-001 GLYPH-SUBS-OU Type tag substitution table GLYPH-SUBS-CR-001 GLYPH-SUBS-OU Script Script for which substitution is to be used GLYPH-SUBS-CR-001 GLYPH-SUBS-OU FlagsModifier flags GLYPH-SUBS-CR-001 GLYPH-SUBS-OU-004

Software Testing53 Invalid Inputs #InputTreatmentId 1 Tag If tag type does not exist disallow confirmation but do not abort. GLYPH-SUBS-II Tag If tag type is invalid for glyph disallow confirmation but do not abort. GLYPH-SUBS-II-002

Software Testing54 Internal Conditions Identify internal conditions under which outputs may be produced Identify consequences when required conditions are not satisfied

Software Testing55 Internal Conditions #ConditionEffectId 1 Target Component glyph exists Entry added to substitution table GLYPH-SUBS-SC-001

Software Testing56 Unsatisfied Internal Conditions #ConditionTreatmentId 1 Target Component glyph does not exists Addition of substitution cannot be completed GLYPH-SUBS-UC-001

Software Testing57 Internal State Identify how the internal state changes after receiving input Identify how the internal state can be observed to check for correct change of state

Software Testing58 Internal Conditions Identify internal conditions under which outputs may be produced Identify consequences when required conditions are not satisfied