Progression of Test Categories

Slides:



Advertisements
Similar presentations
Testing Workflow Purpose
Advertisements

SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Chapter 12 Prototyping and Testing Design of Biomedical Devices and Systems By Paul H. King Richard C. Fries.
Ossi Taipale, Lappeenranta University of Technology
Software Quality Assurance Plan
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
ITIL: Service Transition
Documentation Testing
Software Configuration Management
Chapter 9 Testing the System, part 2. Testing  Unit testing White (glass) box Code walkthroughs and inspections  Integration testing Bottom-up Top-down.
CS 325: Software Engineering March 26, 2015 Software Quality Assurance Software Metrics Defect Injection Software Quality Lifecycle Measuring Progress.
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.
3. Software product quality metrics The quality of a product: -the “totality of characteristics that bear on its ability to satisfy stated or implied needs”.
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
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
Functional Testing Test cases derived from requirements specification document – Black box testing – Independent testers – Test both valid and invalid.
System Testing There are several steps in testing the system: –Function testing –Performance testing –Acceptance testing –Installation testing.
CH09: Testing the System to ensure the system does what the customer wants it to do: * Principles of System Testing * Function Testing * Performance Testing.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Software testing basic. Main contents  Why is testing necessary?  What is testing?  Test Design techniques  Test level  Test type  How to write.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
SWE © Solomon Seifu CONSTRUCTION. SWE © Solomon Seifu Lesson 13-2 Testing.
Testing Basics of Testing Presented by: Vijay.C.G – Glister Tech.
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.1.
Testing Workflow In the Unified Process and Agile/Scrum processes.
Software Engineering Modern Approaches Eric Braude and Michael Bernstein 1.
Chapter 9 Testing the System Shari L. Pfleeger Joann M. Atlee
Software Metrics and Reliability. Definitions According to ANSI, “ Software Reliability is defined as the probability of failure – free software operation.
TESTING LEVELS Unit Testing Integration Testing System Testing Acceptance Testing.
Fault Tolerance Benchmarking. 2 Owerview What is Benchmarking? What is Dependability? What is Dependability Benchmarking? What is the relation between.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
What is a level of test?  Defined by a given Environment  Environment is a collection of people, hard ware, software, interfaces, data etc.
Software reviews Cost impact of software defects Defect amplification model Review metrics and their use – Preparation effort (E p ), assessment effort.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
 Software reliability is the probability that software will work properly in a specified environment and for a given amount of time. Using the following.
ISQB Software Testing Section Meeting 10 Dec 2012.
CSC 480 Software Engineering
ITIL: Service Transition
Software Metrics and Reliability
Why Metrics in Software Testing?
Integration Testing.
SEVERITY & PRIORITY RELATIONSHIP
Chapter 18 Maintaining Information Systems
SYSTEM ANALYSIS AND DESIGN
Software Reliability Definition: The probability of failure-free operation of the software for a specified period of time in a specified environment.
Software Reliability PPT BY:Dr. R. Mall 7/5/2018.
Software Configuration Management
Some Simple Definitions for Testing
LEVEL OF TESTING J.ALFRED DANIEL, AP/CSE.
TESTING IN THE SOFTWARE LIFE CYCLE &TEST LEVELS Chapter 2 1/11/
Definitions.
Software Reliability: 2 Alternate Definitions
Tools of Software Development
Introduction to Software Testing
Test Planning Mike O’Dell (some edits by Vassilis Athitsos)
Lecture 09:Software Testing
Chapter 10 – Software Testing
Baisc Of Software Testing
Welcome to Corporate Training -1
CS385T Software Engineering Dr.Doaa Sami
Software metrics.
Chapter 8 Software Evolution.
Chapter 17 Software Testing Strategies.
Rapid software development
Software Testing Strategies
Presentation transcript:

Progression of Test Categories Unit test Functional test Unit test . Component test System test Unit test . . Acceptance; Installation; System configuration: Performance; Consistency of UI; Security; Recovery; Regression; etc. Component test Functional test Performance; Consistency of UI; Navigation; Reliability; Security; etc. Functions; Performance; Reliability: UI; etc. Unit test Mostly Functionality 3

Component and System Test Working with more material and more people more functions (than unit test) more complexity (integrated sets of functions) more aspects (performance, reliability, consistency of UI, navigation and flow, installability, recoverability, etc.) Requiring ------- more test cases and libraries of test cases more people more steps and process activities The main Goal is still discovery of faults and fixing the errors to achieve : customer and user acceptance minimize support effort 1

Sources of Faults Component and System Tests are conducted towards the backend of the process and thus faces: undetected errors or misunderstanding or omissions from requirements phase undetected errors or misinterpretation or omissions or impreciseness from architecture and design phase undetected errors or misinterpretation or omissions from coding and implementation phase ----- and ------ errors introduced in the fixing of failures erroneously identified errors errors introduced in the combining of parts during build cycle 2

V & V Terminology Verification : Validation : Did we develop the system correctly ? Did we develop according to the way our processes and our designers dictated ? Validation : Did we develop the correct system ? Did we develop the system that the customers and users specified ? Component Test and System Test are interested in both V&V ---- but : System Test is definitely focused on the customers and users more (Validation) Lesser on the support effort (Verification) 4

Build Process In order to perform Functional, Component, and System tests there must be a way to construct these “sub-systems” so that they can be tested there must be a way to associate the test cases and testing activities with these “sub-systems” As part of the over-all Test Plan there is a portion called the Build and Integration plan Spell out the set of the parts (with pre-requisites and co-requisites, including data files ) for execution combining of the parts to form a bigger “component,” keeping track of the re-requisites and co-requisites each “spin” is a set of the components that may be executed for a component or a system test (** used in Agile a lot) 5

Configuration Manager Build and Integration may be performed manually with compilers and files but with any level of complexity, there is a need for a tool (Configuration Management tool): capability of tracking a variety of and a large number of parts speed of compilation versus accessing pre-compiled objects complexity of keeping track of pre-requisites and co-requisites keeping track of libraries of “tested and locked” parts and “untested” parts merging all the necessary parts to “build” an executable component 6

Some Definitions of Subtypes of Tests Stress Tests : testing the system to the “limits” of all the items (users, transactions, etc.) specified in the requirements ----- performance System Configuration Test: testing the overall hardware, software, and network combinations as specified in the requirements, including the compatibility and interfacing with existing systems ---- installation Recovery Test: testing the systems response to a loss of some resource and evaluating the response speed and results against the stated recovery requirement ---- back-up/recovery Security Test: testing to ensure that the security requirements are met Human Factors and Usability Test: testing to the user interface and the user performance requirements ----- UI consistency and Navigation

Reliability, Availability, Maintainability Some desirable characteristics of the system that we like our software to have : Reliability : to function consistently and correctly (according to the requirements) over a period of time (the longer the better) Availability : to be operational (every time if possible) when we need it Maintainability : to be repairable and modifiable quickly and easily (within some time frame every time, if possible). For Customer (valid) For Support (verifiable)

Measuring these Attributes A reasonable metric is needed for each of these attributes if we are to test for and understand these attributes: Mean Time To Failure (MTTF) : average time between two failures (ignoring fix time for a while) caused by some defect. For failure incidents of f1, f2, through fn, measure the time from one failure to the next failure (e.g. between fm and f (m+1) ) t1, t2 through tn. The average of t1 through tn is the the MTTF. With the MTTF, we are interested in the prediction of what the t (n+1) may be. Reliability is the estimated probability of t (n+1), based on MTTF. There are other metrics use for reliability such as defects/loc or defects /function point.

Measuring these Attributes (cont) Mean Time to Repair (MTTR): the average time required to locate and fix the problem. This is the time that the system is down and getting repaired; therefore the system is not available. Maintainability is sometimes measured with MTTR. Mean Time Between Failure (MTBF): this time between failure takes into account of the average time that the system is under repair or MTBF = MTTF + MTTR. Availability of the system may be measured with a ratio such as MTTF/MTBF. Try a numerical example to see this “availability” figure

Another Way to Use the 3 Metrics M. Shooman used the same metrics and characterized reliability, availability and maintainability with a standard scale between 0 and 1. (the closer to 1 --- the better) Reliability = MTBF/(1+MTBF) looking for big MTBF Availability = MTBF/(MTBF + MTTR) looking for big MTBF and small MTTR Maitainability = 1/(1 + MTTR) looking for small MTTR --- close to zero Repeats MTTR because MTBF contains MTTR or MTTF/MTBF (previous page)