Chapter 6: Testing Overview Basic idea of testing - execute software and observe its behavior or outcome. If failure is observed, analyze execution record.

Slides:



Advertisements
Similar presentations
Testing and Quality Assurance
Advertisements

Chapter 4 Quality Assurance in Context
Testing Without Executing the Code Pavlina Koleva Junior QA Engineer WinCore Telerik QA Academy Telerik QA Academy.
Software engineering for real-time systems
Software Testing and Quality Assurance
SE 450 Software Processes & Product Metrics 1 Defect Removal.
Recall The Team Skills Analyzing the Problem
High Level: Generic Test Process (from chapter 6 of your text and earlier lesson) Test Planning & Preparation Test Execution Goals met? Analysis & Follow-up.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Software Integration and Documenting
Chapter 20: Defect Classification and Analysis  General Types of Defect Analyses.  ODC: Orthogonal Defect Classification.  Analysis of ODC Data.
Chapter 22. Software Reliability Engineering (SRE)
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.
Ch.4: QA in Context  QA and the overall development context Defect handling/resolution How alternative QA activities fit in process Alternative perspectives:
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
CPIS 357 Software Quality & Testing
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 14: Inspection  Basic Concept and Generic Process  Fagan Inspection  Other Inspection and Related Activities.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Week 2 Quality Assurance Quality Assurance in Context
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
Software Quality Engineering Chapters 1-3 Overview, Software Quality and Quality Assurance.
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.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Jump to first page (C) 1998, Arun Lakhotia 1 Quality Assurance: Reviews and Walkthroughs Arun Lakhotia University of Southwestern Louisiana Po Box
CSE403 Software Engineering Autumn 2001 More Testing Gary Kimura Lecture #10 October 22, 2001.
Software Testing Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Software Construction Lecture 18 Software Testing.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Software Testing and Quality Assurance Software Quality Assurance 1.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
Ensure that the right functions are performed Ensure that the these functions are performed right and are reliable.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Approaches to ---Testing Software Some of us “hope” that our software works as opposed to “ensuring” that our software works? Why? Just foolish Lazy Believe.
Software Quality Assurance and Testing Fazal Rehman Shamil.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M37 8/20/2001Slide 1 SMU CSE 8314 /
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Advances In Software Inspection
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Systems Development Life Cycle
SOFTWARE TESTING. SOFTWARE Software is not the collection of programs but also all associated documentation and configuration data which is need to make.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Software Testing. SE, Testing, Hans van Vliet, © Nasty question  Suppose you are being asked to lead the team to test the software that controls.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
GROUP MEMBERS AYAZ JAVED BITF06A002 SADAF SARFARAZ BITF06A003 SAMIN ATIQA BITF06A028 BILAL KHALID BITF06A042.
Testing Integral part of the software development process.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Software Engineering (CSI 321)
Testing Tutorial 7.
Software Quality Engineering
Software Engineering (CSI 321)
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
Software Engineering (CSI 321)
Software Quality Engineering
Verification & Validation
Software Quality Engineering
Software Quality Assurance
Software Quality Engineering
Chapter 14: Inspection Basic Concept and Generic Process
Software Quality Assurance
Fundamental Test Process
Presentation transcript:

Chapter 6: Testing Overview Basic idea of testing - execute software and observe its behavior or outcome. If failure is observed, analyze execution record and locate and fix fault that caused the failure. In this chapter  Testing: Concepts & Process  Testing Issues  Major Testing Techniques

Testing and QA Alternatives  Defect and QA: Defect: error/fault/failure. Defect prevention/removal/containment. Map to major QA activities  Defect prevention: Error blocking and error source removal.  Defect removal: Testing - Part II, Ch Inspection, etc.  Defect containment: Fault tolerance and failure containment (safety assurance).

QA and Testing  Testing as part of QA: Related activities throughout development process - phase in Waterfall (Fig p.45) - associated activities in V-Model (Fig p.48) One of the most important part of QA - QA/defect context: defect reduction (Fig p.30)  Testing: Key questions: Why: quality demonstration vs. defect detection and removal How: techniques/activities/process/etc. What to test (or View): functional/external/black-box vs. structural/internal/white-box When to exit: coverage vs. usage-based

Testing: Why (and How)?  Original purpose: demonstration of proper behavior or quality. ≈ “testing" in traditional manufacturing settings  New purpose: defect detection & removal: > Manufacturing is mostly defect-free. > Flexibility of software (ease of change - sometimes a curse) (defect detection => defect fixing) Failure observation => fault removal  Eclipsing original purpose  How? Run-observe-follow-up (particularly in case of failure observations)

Testing: Generic Process  Generic Process: Fig 6.1 (p.69). Instantiation of SQE in Fig 5.1, p.54. Planning-execution-analysis-feedback. Link major testing activities. Entry criteria: typically external. Exit criteria: internal and external. Some (small) process variations - focus on strategies/techniques.

Testing: Activities  Major testing activities: Test planning and preparation Execution (testing) Analysis and follow-up (decision making and management, too)

Testing: Planning and Preparation  Test planning: Goal setting based on customers' quality perspectives and expectations. Overall strategy based on the above and product/environmental characteristics.  Test preparation: Preparing test cases/suites:  typically based on formal models. Preparing test procedure.  More details in Chapter 7.

Testing: Execution  General steps in test execution Allocating test time (& resources) Invoking test Identifying system failures (& gathering info for follow-up actions)  Key to execution: handling both normal vs. abnormal cases  Activities closely related to execution: Failure identification: test oracle problem Data capturing and other measurement  More details in Chapter 7.

Testing: Analysis and Follow-up  Analysis of testing results: Result checking (as part of execution) Further result analyses  defect/reliability/etc analyses. Other analyses: defect other metrics.  Follow-up activities: Feedback based analysis results. Immediate: defect removal (& re-test) Other follow-up (longer term):  decision making (exit testing, etc.)  test process improvement, etc.  More details in Chapter 7 (for activities) and Part IV (for mechanisms/models/etc.).

Testing: How?  How to test? Refine into three sets of questions.  Basic questions.  Testing technique questions.  Activity/management questions.  Basic questions: What artifacts are tested? What to test?  Which view? external functions or internal implementations  related: type of defects found? When to stop testing? Addressed in this Chapter.

Testing Technique Questions  Testing technique questions: Specific technique used? Systematic testing models used? (see below) Adapting technique from other domains (e.g. biology)? Integration of multiple techniques for efficiency/effectiveness?  Testing model questions: Underlying structure of the model?  main types: check list vs. FSM? How are these models used? (directly or with probabilities) Specialized model extension? Major techniques and Models: Chapters 8-11.

Test Activity/Management Questions  Addressed already: Generic process and relation to QA and software processes.  Other activity/management questions: Who performs which specific activities? When can specific activities be performed? Test automation? What about tools? Artifacts used for test management? General environment for testing? Product type/segment?  Most questions answered in Chapter 7.  Integration issues addressed in Chapter 12.

Functional vs. Structural Testing  Key distinction: Perspective on what needs to be checked/tested.  Functional testing: Tests external functions.  as described by external specifications Black-box in nature;  functional mapping: input => output  without involving internal knowledge  Structural testing: Tests internal implementations.  components and structures. White-box in nature;  “white" here = seeing through => internal elements visible. Really clear/glass/transparent box.

Black-Box vs. White-Box View  Object abstraction/representation: High-level: whole system black-box. Low-level: individual statements, data, and other elements white-box. Middle-levels of abstraction:  function/subroutine/procedure, module, subsystem, etc.  method, class, super-class, etc.  Gray-box (mixed black-/white-) testing: Many of the middle levels of testing. Example: procedures in modules  procedures individually as black box,  procedure interconnection ≈ white-box at module level.

White-box Testing  Program component/structure knowledge (or implementation details) Statement/component checklist Path (control flow) testing Data (flow) dependency testing  Applicability Test in the small/early Dual role of programmers/testers Can also model specifications  Criterion for stopping based on Mostly coverage goals. Occasionally quality/reliability goals.

Black-box Testing  Input/output behavior  Specification checklist.  Testing expected/specified behavior finite-state machines (FSMs)  Applicability Late in testing: system testing etc. Suitable for independent V&V Compatible with OO/Reuse paradigm  Criteria: when to stop Traditionally: functional coverage Usage-based: reliability target

When to Stop Testing  Resource-based criteria: Stop when you run out of time. Stop when you run out of money. Irresponsible.  Quality-based criteria in decreasing desirability : Stop when quality goals reached. Direct quality measure: reliability  resemble actual customer usages Indirect quality measure: coverage. Other surrogate: activity completion.

Usage-Based Testing and OP  Usage-based statistical testing (UBST): Actual usage and scenarios/information Captured in operational profiles (OPs) Simulated in testing environment (too numerous => random sampling)  Applicability Final stages of testing. Particularly system/acceptance testing. Use with S/W reliability engineering.  Termination criteria: reliability goals

Coverage-Based Testing  Coverage-based testing: Systematic testing based on formal models and techniques. Testing models based on internal details or external expectations. Coverage measures defined for models. Testing managed by coverage goals.  Applicability All stages of testing. Particularly unit and component testing. Later phases at high abstraction levels.  Termination criteria: coverage goals

Systematic Testing Steps  Instantiation of Fig 6.1 (p.69), but, with a formalized strategies/goals, based on formal models and techniques, managed by termination criteria.  Steps in model construction and usage: Define the model, usually represented as graphs and relations. “Check" individual elements: “Test": derive (sensitize) test cases and then execute them. Result checking and follow-up.  Specifics on model construction and usage in individual testing techniques: Ch.8-11.