Software Reviews & testing Software Reviews & testing An Overview.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Software Testing Techniques
Chapter 14 Software Testing Techniques - Testing fundamentals - White-box testing - Black-box testing - Object-oriented testing methods (Source: Pressman,
Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
Unit-V testing strategies and tactics.
Lecture 8: Testing, Verification and Validation
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Software Quality Assurance Plan
1 Software Engineering Lecture 11 Software Testing.
Illinois Institute of Technology
IMSE Week 18 White Box or Structural Testing Reading:Sommerville (4th edition) ch 22 orPressman (4th edition) ch 16.
Testing an individual module
Chapter 18 Testing Conventional Applications
Software Testing & Strategies
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
Introduction to Computer Technology
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Software Systems Verification and Validation Laboratory Assignment 3
Introduction to Software Quality Assurance (SQA)
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
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.
Software Testing Testing types Testing strategy Testing principles.
Software Testing The process of operating a system or component under specified conditions, observing and recording the results, and making an evaluation.
Agenda Introduction Overview of White-box testing Basis path testing
Unit Testing 101 Black Box v. White Box. Definition of V&V Verification - is the product correct Validation - is it the correct product.
INTRUDUCTION TO SOFTWARE TESTING TECHNIQUES BY PRADEEP I.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
White-box Testing.
Topics Covered: Software testing Software testing Levels of testing Levels of testing  Unit testing Unit testing Unit testing  Integration testing Integration.
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.
Theory and Practice of Software Testing
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Dynamic Testing.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
White Box Testing by : Andika Bayu H.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
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.
ANOOP GANGWAR 5 TH SEM SOFTWARE TESTING MASTER OF COMPUTER APPLICATION-V Sem.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
1 Software Testing. 2 What is Software Testing ? Testing is a verification and validation activity that is performed by executing program code.
Testing Integral part of the software development process.
PREPARED BY G.VIJAYA KUMAR ASST.PROFESSOR
Software Testing.
Software Testing.
Software Testing.
Software Testing Techniques
Software Engineering (CSI 321)
Quality Management Perfectqaservices.
Chapter 13 & 14 Software Testing Strategies and Techniques
White Box Testing.
Engineering Processes
Software testing strategies 2
Software Testing (Lecture 11-a)
Chapter 14 Software Testing Techniques
Lecture 09:Software Testing
Verification and Validation Unit Testing
Static Testing Static testing refers to testing that takes place without Execution - examining and reviewing it. Dynamic Testing Dynamic testing is what.
Chapter 10 – 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 “If you can’t test it, you can’t design it”
Software Reviews.
By: Lecturer Raoof Talal
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Software Reviews & testing Software Reviews & testing An Overview

Objective To provide an overview of procedures for software reviews & testing activities To provide an overview of procedures for software reviews & testing activities

NOV AG/MKT/Overview 3 Intended audience Project team who are involved in software development, reviews & testing

NOV AG/MKT/Overview 4SDLC

NOV AG/MKT/Overview 5 UR Phase A preliminary phase to the software development life cycle called the ‘User Requirements Definition Phase' (UR phase). The UR phase is the ‘problem definition phase’ of a software project. The review of the URD is done by the users. The approved URD is the input to the SR phase.

NOV AG/MKT/Overview 6 SR Phase The SR phase is the ‘analysis’ phase of a software project. A vital part of the analysis activity is the construction of a ‘model’ describing ‘what’ the software has to do, and not ‘how’ to do it.

NOV AG/MKT/Overview 7 SR Phase The SRD must be reviewed formally by the users, by the computer hardware and software engineers, and by the managers concerned, during the Software Requirements Review (SR/R). The approved SRD is the input to the AD phase.

NOV AG/MKT/Overview 8 AD Phase The purpose of the AD phase is to define the “structure of the software”. This model is transformed into the architectural design by allocating functions to software components and defining the control and data flow between them.

NOV AG/MKT/Overview 9 DD Phase The purpose of the DD phase is to detail the design of the software, and to code, document and test it. During this phase, unit, integration and system testing activities are performed according to verification plans established in the SR and AD Phases. As well as these tests, there should be checks on software quality.

NOV AG/MKT/Overview 10 UR Reviews User requirements which are rejected in the review process do not have to be removed from the URD, especially if it is anticipated that resources may be available at some later date to implement them. Nonapplicable user requirements shall be clearly flagged in the URD.

NOV AG/MKT/Overview 11 SR Reviews The outputs of the SR phase shall be formally reviewed during the Software Requirements Review (SR/R). This should be a technical review Participants should include the users, the operations personnel, the developers and the managers concerned

NOV AG/MKT/Overview 12 ADD Reviews The architectural design should be reviewed and agreed layer by layer as it is developed during the AD phase. Walkthroughs should be used to ensure that the architectural design is understood by all those concerned. Inspections of the design, by qualified software engineers, may be used to eliminate design defects.

NOV AG/MKT/Overview 13 DDD Reviews The project leader should participate in these reviews, together with the team leader and team members concerned. After modules have been coded and successfully compiled, walkthroughs or inspections should be held to verify that the implementation conforms to the design..

NOV AG/MKT/Overview 14 End of Reviews By the end of the UR review, the SR phase section of the SPMP shall be produced (SPMP/SR). SCMP shall be produced (SCMP/SR). SVVP shall be produced (SVVP/SR). SQAP shall be produced (SQAP/SR) Acceptance Test Plan. During the SR phase, the AD phase section of the SPMP shall be produced (SPMP/AD). SCMP shall be produced (SCMP/AD). SVVP shall be produced (SVVP/AD). SQAP shall be produced (SQAP/AD). System Test Plan.

NOV AG/MKT/Overview 15 End of Reviews During the AD phase, DD phase section of the SPMP shall be produced (SPMP/DD). SCMP shall be produced (SCMP/DD). SVVP shall be produced (SVVP/DD). SQAP shall be produced (SQAP/DD). Integration Test Plan. During the DD phase, the TR phase section of the SPMP shall be produced (SPMP/TR). SCMP shall be produced (SCMP/TD). SVVP shall be produced (SVVP/TD). SQAP shall be produced (SQAP/TD). Unit Test Plan.

NOV AG/MKT/Overview 16 Reviews improve schedule performance Reviews reduce rework. Rework accounts for 44% of development. Cost! Requirements (1%) Design (12%) Coding (12%) Testing (19%) Reviews are pro-active tests. - Find errors not possible through testing. Reviews are training. - Domain, corporate standards, group.

Testing activities 1.Unit Testing 2.Module/ Integration Testing 3.System Testing 4.Acceptance Testing 5.User Documentation Review

Unit Testing This is the testing performed on the most basic item of the software product i.e. the individual source code component to uncover the errors and to ensure that this is meeting all the specifications as described in SDD. Testing activities

Module/Integration Testing This is the testing performed at sub-system level to uncover errors related to interfacing. Testing activities

System Testing System testing is a validation activity used to demonstrate that the entire software product is conforming to the user requirement expressed and agreed upon earlier. This test is carried out after integrating all the components of the product in a common environment. Testing activities

Acceptance Testing Acceptance testing is a validation activity before the system is accepted by the user for operational use. Testing activities

User Documentation Review This is to verify that the user documentation has explained all the features of the software delivered correctly and clearly along with the operational procedure. Testing activities

Testing: A process of executing a program with the intent of finding an error A good test has a high probability of finding an undiscovered error A successful test uncovers an undiscovered error Testing Objectives

Testing strategy is a road map describing –Steps to be conducted as part of testing –When these steps should be planned and undertaken –How much effort, time, and resources will be required. Testing strategy

Testing strategy must incorporate –Test planning –Test case design –Test execution –Data collection and evaluation Testing strategy

NOV AG/MKT/Overview 26 Test known internal workings to assure that internal operation performs according to specs. Tests logical paths and procedural detail Test known internal workings to assure that internal operation performs according to specs. Tests logical paths and procedural detail Using white box testing, the software engineer can derive test cases that Using white box testing, the software engineer can derive test cases that –Guarantee that all independent paths within a module have been exercised at least once –Exercise all logical decisions on the their true and false sides –Execute all loops at their boundaries and within their operational bounds –Exercise internal data structures to assure their validity White Box Testing

Focuses on functional requirements of software Focuses on functional requirements of software –Incorrect or missing functions –Interface errors –Error in data structure & external data base access –Performance errors –Initialization & termination errors Tends to be applied during later stages of testing Tends to be applied during later stages of testing Black Box Testing

Number of possible logical paths, even in small programs, can be extremely large Therefore exhaustive white box testing is impractical Often the best test strategy is to perform both white box and black box testing Test Case Design

Flow Graph Notation One or more non-branching PDL or source code statements Sequence If While Until Case

Flow Graph 1 2, ,5 Edg e Node Region R1R1 R4R4 R3R3 R2R2

Nodes, Edges, And Regions Each circle is a node and represents one or more procedural statements (a sequence of process boxes and decision diamonds can map into a single node; each node that contains a condition is called a predicate node Arrows are called edges and must terminate at a node Areas bounded by edges and nodes are called regions, including the area outside the graph

Cyclomatic Complexity Cyclomatic complexity provides a quantitative measure of the logical complexity of a program –It is the upper bound for the number of tests that must be conducted to assure that all statements have been executed at least once Cyclomatic complexity, V(G) is given by the graph V(G) = E - N + 2, where E is the number of flow graph edges and N is the number of flow graph nodes V(G) = P + 1, where P is the number of predicate nodes contained in the flow graph V(G) = number of regions

Unit Testing Interface Local data structure Boundary conditions Independent paths Error-handling paths

Boundary Testing Last and probably most important unit test step –Errors often occur when nth element of n- dimensional array is processed, when ith repetition of loop with i passes is invoked, when max or min allowable value is encountered –Exercise data structure, control flow, and data values just below, at, and just above maxima and minima

Integration Testing Construct program structure while testing to uncover errors associated with interfacing –Data can be lost across interface –One module can have an inadvertent adverse effect on another module –Subfunctions, when combined, may not provide the desired total function –Individually acceptable imprecision may be magnified to unacceptable levels

System Testing Recovery testing is a system test that forces software to fail in a variety of ways and verifies that recovery is performed Security testing attempts to verify that system protection systems work Stress testing executes a system in an abnormal manner - frequency of interrupts, input data rates, use of memory Performance testing - resource utilization, execution intervals

NOV AG/MKT/Overview 37 Process - Review & testing activities For detailed descriptions & tasks of review & testing activities, refer to process manual - Software Verification, Validation & Testing (SVVT) Manual

Thank You