Test Design and Documentation. Test Design Test design is to ensure that all requirements are met through a series of test procedures, increasing the.

Slides:



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

Testing Relational Database
QuEdge Testing Process Delivering Global Solutions.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Ossi Taipale, Lappeenranta University of Technology
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
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 Testing Fundamentals
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
Chapter 7 Using Data Flow Diagrams
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Validating and Improving Test-Case Effectiveness Author: Yuri Chernak Presenter: Lam, Man Tat.
Chapter 9 Using Data Flow Diagrams
Testing an individual module
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
AUTOMATED SOFTWARE TESTING Donna Moy dxm06u. Presentation Content  Introduction to test planning and preparation  Why is planning and preparation important?
Test Design Techniques
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
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.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Let us start from the V-Model Verification Phases Requirements analysis System Design Architecture Design Module Design Coding Validation phases Unit.
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
Introduction Telerik Software Academy Software Quality Assurance.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Chapter 7 Using Data Flow Diagrams
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.
Black Box Testing Techniques Chapter 7. Black Box Testing Techniques Prepared by: Kris C. Calpotura, CoE, MSME, MIT  Introduction Introduction  Equivalence.
Black-box Testing.
The Systems Development Life Cycle
Software Construction Lecture 18 Software 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.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Software Engineering Saeed Akhtar The University of Lahore.
Software Testing and Quality Assurance 1. What is the objectives of Software Testing?
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Quality Assurance and Testing Fazal Rehman Shamil.
PROGRAMMING TESTING B MODULE 2: SOFTWARE SYSTEMS 22 NOVEMBER 2013.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
1 Phase Testing. Janice Regan, For each group of units Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Introduction to Software Testing Maili Markvardt.
Software engineering - 2 Section 8. QUIZ Show how it is possible to determine the height of a tall building with the aid of a barometer.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Functional testing, Equivalence class testing
ISQB Software Testing Section Meeting 10 Dec 2012.
Software Testing.
Rekayasa Perangkat Lunak Part-13
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introduction To Software Testing Concepts João Pascoal.
Quality Management Perfectqaservices.
Software engineering – 1
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Lecture 09:Software Testing
Fundamental Test Process
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
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.
Chapter 11: Integration- and System Testing
System analysis and design
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

Test Design and Documentation

Test Design Test design is to ensure that all requirements are met through a series of test procedures, increasing the probability of the software being capable of what is needed and wanted by the client. Test design should start the moment the system requirements have been approved and baselined. The test design changes/adapts during the system development lifecycles iterations

Initial steps We must first take into consideration the testing phase in which the test will be executed, as there are different types of test appropriate for testing: – Security – Performance – Usability – Compatibility – Functionality – And other phases testing

Initial Steps Continued Once we have done this we then review the test plan, so as to understand the context and framework within the test objectives are defined. To break down the testing tasks involved with test design we then have to ask ourselves the following questions:

What to test? This should have been documented during the test planning phase so all we have to do is to review our test plan. When should test procedures be developed? As already stated test procedures should be developed as soon as the requirements are approved. This question is more to do with what order tests should be developed. Higher priority test should be the first to be completed. The only exception to this rule is pre-cursor functions, as these are ran early regardless of there priority.

How should test procedures be designed? Generally there is no single solution to testing a whole system. What usually happens is each part of the system and how each part is integrated is analysed and then we use the most appropriate and effective test for each part. Who should develop the tests? Once we have determined when, what and how something is to be tested, it should be reasonably clear who should be responsible for the different testing.

More Questions We now have to consider the following: What type of testing techniques shall we use? – i.e. Black box or white box testing What test should be automated? – i.e. Tedious repetitive data entry ones, cost analysis What kind of test data is needed?

Test Procedure Template A test procedure template should be mandated as soon as it is possible to be applied. This is to ensure: – Consistency – Completeness – Repeatability

Test Procedure Standards It is important that test design standards are documented, communicated and followed by the whole development team. This is so that the required test information is produced. These guidelines are necessary whether they are manual or automated test procedures. The standards for manual test procedures should include an example of how much detail the procedure should go in. The standards for automated test design are pretty similar to those of best coding practises.

Test Procedure Standards While it is important to maintain and mandate a test procedure template it is worth noting that the template should remain in a generic manner, omitting test data which is too specific. This could lead to unnecessary duplication which could become both costly and time consuming.

Test-Design Techniques The amount of test variations is endless, to narrow down the amount of necessary test procedures we use certain test-design techniques: Functional Analysis – Involves analysing expected behaviour against functional specifications, then generating one or more test procedure for each function Equivalence Partitioning – Identifies ranges of inputs and initial conditions that produce expected similar results. It eliminates tests that are similar and hence narrows down the amount of tests to be concluded.

Test Design Techniques Path Analysis – Is used by testing the internal paths, connections and structure of a product and can be applied at two levels (code based, white-box testing during unit tests & functional/black-box testing by testers or users i.e. manually) Boundary Value – Used primarily for testing input edit logic, i.e. tests that the checks used for filtering out invalid data are working correctly.

Test Design Techniques Orthogonal Arrays – Allows the maximum amount of test coverage with the minimum amount of test coverage, very useful for when there is a large amount of test input data or combinations of this data

Orthogonal Arrays CASE #ABC

Exploratory Testing Exploratory testing is used in order to gain knowledge required for designing appropriate and effective tests. It is most appropriate when detailed design are either absent or not complete. Exploratory testing produces test conditions with each iteration of the development lifecycle. If a pattern occurs in the problems found early in exploratory testing, it helps focus the efforts of the later tests.

Summary Test design is to ensure all requirements are met through a set of procedures We then review the test plan and ask ourselves what to test, when to test, how to test and who to test? How to test in more detail, what tests should be automated, what type of testing techniques to use, what data do we need to be produced

More Summary Testing techniques – Functional analysis – Equivalence partitioning – Path analysis – Boundary value – Orthogonal arrays Exploratory testing