43
MCA –Software Engineering Kantipur City College

MCA –Software Engineering Kantipur City College. Topics include Validation Planning Testing Fundamentals Test plan creation Test-case generation

Embed Size (px)

Citation preview

Page 1: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

MCA –Software Engineering

Kantipur City College

Page 2: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Topics include

Validation PlanningTesting Fundamentals

Test plan creationTest-case generation

Black-box Testing White Box Testing

Unit Testing Integration TestingSystem testingObject-oriented Testing

Page 3: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Verification Vs. Validation Two questions

Are we building the right product ? => Validation Are we building the product right ? = > Verification

PeopleMoney

Machines

Materials

Building the right product

Building product right

Efficiencymaking best use of resources in achieving goals

Effectivenesschoosing effective goals and achieving them

Page 4: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Verification & Validation

Software V & V is a disciplined approach to assessing software products throughout the SDLC.

V & V strives to ensure that quality is built into the software and that the software satisfies business functional requirements.

V & V is to ensures that software conforms to its specification and meets the needs of the customers.

V & V employs review, analysis, and testing techniques to determine whether a software product and its intermediate deliverables comply with requirements. These requirements include both business functional capabilities and quality attributes.

V & V provide management with insights into the state of the project and the software products, allowing for timely change in the products or in the SDLC approach.

V & V is typically applied in parallel with software development and support activities.

Page 5: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Verification involves checking that The software conforms to its specification.System meets its specified functional and non-functional

requirements.

“Are we building the product right ?”Validation, a more general process ensure that the

software meets the expectation of the customer.

“Are we building the right product ?”You can't test in quality. If its not there before you begin

testing, it won’t be there when you’re finished testing.

Verification & Validation

Page 6: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Techniques of system checking & Analysis

Software inspections Concerned with analysis of the static system

representation to discover problems (static verification) such as• Requirements document• Design diagrams and • Program source code

It do not require the system to be executed. This techniques include program inspections, automated

source code analysis and formal verification. It can’t check the non-functional characteristics of the

software such as its performance and reliability.

Page 7: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Software testing It involves executing an implementation of the software

with test data and examining the outputs of the software and its operational behavior to check that it is performing as required.

It is a dynamic techniques of verification and validation. The system is executed with test data and its operational

behaviour is observed. Two distinct types of testing

Defect testing : to find inconsistencies between a program and its specification.

Statistical testing : to test program’s performance and reliability and to check how it works under operational conditions

Techniques of system checking & Analysis

Page 8: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Static and Dynamic V & V

Formalspecification

High-leveldesign

Requirementsspecification

Detaileddesign

Program

PrototypeDynamicvalidation

Staticverification

Page 9: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Software Testing fundamentals

Testing is a set of activities that can be planned in advance and conducted systematically.

Testing is the process of executing a program with the intent of finding errors.

A good test case is one with a high probability of finding an as-yet undiscovered error.

A successful test is one that discovers an as-yet-undiscovered error.

Page 10: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Software testing priciples

All tests should be traceable to customer requirements.

Tests should be planned long before testing begins.

The Pareto principle (80% of all errors will likely be found in 20% of the code) applies to software testing.

Testing should begin in the small and progress to the large.

Exhaustive testing is not possible. To be most effective, testing should be conducted

by an independent third party.

Page 11: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Operability-the better it works the more efficiently it can be tested

Observability-what you see is what you test Controllability-the better software can be controlled the

more testing can be automated and optimized Decomposability-by controlling the scope of testing, the

more quickly problems can be isolated and retested intelligently

Simplicity-the less there is to test, the more quickly we can test

Stability-the fewer the changes, the fewer the disruptions to testing

Understandability-the more information known, the smarter the testing

Software Testability Checklist

Page 12: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

V&V Vs. DebuggingVerification and validation A process that establishes the existence of defects in a

software system. The ultimate goal of the V&V process is to establish

confidence that the software system is “fit for purpose”.

Debugging A process that locates and corrects these defects

Locateerror

Designerror repair

Repairerror

Re-testprogram

Testresults Specification Test

cases

Page 13: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Design testcases

Prepare testdata

Run programwith test data

Compare resultsto test cases

Testcases

Testdata

Testresults

Testreports

The defect testing process

Test data Inputs which have been devised to test the system

Test cases Inputs to test the system and the predicted outputs from

these inputs if the system operates according to its specification

Page 14: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Project Planning

Plan DescriptionQuality Plan Describes the quality procedure and

standards that will be used in a project.

Validation Plan Describes the approach, resources and schedule used for system validation.

Configuration Management Plan

Describes the configuration management procedures and structures to be used.

Maintenance Plan Predicts the maintenance requirements of the system, maintenance costs and effort required.

Staff development Plan Describes how the skills and experience of the project team members will be developed.

Page 15: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Verification and Validation Plan

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

ServiceAcceptance

testSystem

integration testSub-system

integration test

Test Plan as a link between development and testing

Page 16: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Testing Process

Sub-systemtesting

Moduletesting

Unittesting

Systemtesting

Acceptancetesting

Componenttesting

Integration testing Usertesting

Page 17: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Testing Process

Unit testing - Individual components are tested independently, without other system components

Module testing - Related collections of dependent components( class, ADT, procedures & functions) are tested, without other system module.

Sub-system testing-Modules are integrated into sub-systems and tested. The focus here should be on interface testing to detect module interface errors or mismatches.

System testing - Testing of the system as a whole. Validating functional and non-functional requirements & Testing of emergent system properties.

Acceptance testing-Testing with customer data to check that it is acceptable. Also called Alpha Testing

Page 18: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Component testing Testing of individual program componentsUsually the responsibility of the component developer

(except sometimes for critical systems)Tests are derived from the developer’s experience

Integration testingTesting of groups of components integrated to create

a system or sub-systemThe responsibility of an independent testing teamTests are based on a system specification

The testing process

Page 19: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Acceptance TestingMaking sure the software works correctly for

intended user in his or her normal work environment. Alpha test-version of the complete software is

tested by customer under the supervision of the developer at the developer’s site.

Beta test-version of the complete software is tested by customer at his or her own site without the developer being present

The testing process

Page 20: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Black-box testing Also known as behavioral or functional testing. The system is a “Blackbox” whose behavior can be

determined by studying its inputs and related outputs. Knowing the specified function a product is to perform

and demonstrating correct operation based solely on its specification without regard for its internal logic.

Focus on the functional requirements of the software i.e., information domain not the implementation part of the software and disregards control structure.

The program test cases are based on the system specification

It is performed during later stages of testing like in the acceptance testing or beta testing.

Page 21: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Ie

Input test data

OeOutput test results

System

Inputs causinganomalousbehaviour

Outputs which revealthe presence ofdefects

Black-box testing

Page 22: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Test are designed to answer the following questions:

How is functional validity tested? How is system behavior and performance tested? What classes of input behavior will make good test case? Is the system particularly sensitive to certain input values? How are the boundaries of data class isolated? What data rates and data volume can the system tolerate? What effect will specific combinations of data have on system operations?

Black-box testing

Page 23: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Advantages of Black box testing

Validates whether or not a given system conforms to its software specification Introduce a series of inputs to a system and compare the outputs to a pre-defined test specification. Test integration between individual system components. Tests are architecture independent — they do not concern themselves with how a given output is produced, only with whether that output is the desired and expected output. Require no knowledge of the underlying system, one need not be a software engineer to design black box tests.

Page 24: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Disadvantages of Black box testing

Offer no guarantee that every line of code has been tested.

Being architecture independent, it cannot determine the efficiency of the code.

Will not find any errors, such as memory leaks, that are not explicitly and instantly exposed by the application.

Page 25: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Black-box testing techniques

Graph-based testing methods Equivalence Partitioning, Boundary Value Analysis (BVA) Comparison Testing Orthogonal Array Testing.

Page 26: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Black-box technique that divides the input domain into classes of data from which test cases can be derived

An ideal test case uncovers a class of errors( incorrect processing of all incorrect data) that might require many arbitrary test cases to be executed before a general error is observed

Equivalence class guidelines: If input condition specifies a range, one valid and two invalid

equivalence classes are defined If an input condition requires a specific value, one valid and

two invalid equivalence classes are defined If an input condition specifies a member of a set, one valid and

one invalid equivalence class is defined If an input condition is Boolean, one valid and one invalid

equivalence class is defined 

Equivalence Partitioning

Page 27: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

System

Outputs

Invalid inputs Valid inputs

Equivalence Partitioning

Page 28: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Between 10000 and 99999Less than 10000 More than 99999

999910000 50000

10000099999

Input values

Between 4 and 10Less than 4 More than 10

34 7

1110

Number of input values

Equivalence Partitioning

Page 29: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Boundary Value Analysis (BVA)

Black-box technique that focuses on the boundaries of the input domain rather than its center

BVA guidelines: If input condition specifies a range bounded by values a and b,

test cases should include a and b, values just above and just below a and b

If an input condition specifies and number of values, test cases should be exercise the minimum and maximum numbers, as well as values just above and just below the minimum and maximum values

Apply guidelines 1 and 2 to output conditions, test cases should be designed to produce the minimum and maxim output reports

If internal program data structures have boundaries (e.g. size limitations), be certain to test the boundaries

Page 30: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Comparison Testing

Also called back-to-back testing.

Black-box testing for safety critical systems ( such as aircraft avionics, automobile braking system) in which independently developed implementations of redundant systems are tested for conformance to specifications

Often equivalence class partitioning is used to develop a common set of test cases for each implementation.

Page 31: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Orthogonal Array Testing

Black-box technique that enables the design of a reasonably small set of test cases that provide maximum test coverage

Focus is on categories of faulty logic likely to be present in the software component (without examining the code)

Priorities for assessing tests using an orthogonal arrayDetect and isolate all single mode faults Detect all double mode faults Mutimode faults

Page 32: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

White-box or Glass Box testing

Knowing the internal workings of a product, tests are performed to check the workings of all independent logic paths.

It derive test cases that:Guarantee that all independent paths within a module

have been exercised at least once.Exercise all logical decisions on their true and false

sides.Execute all loops at their boundaries and within their

operational bounds, andExercise internal data structures to ensure their

validity.

Techniques being used: basic path and control structure testing.

Page 33: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Componentcode

Testoutputs

Test data

DerivesTests

White-box or Glass Box testing

Page 34: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Tests complete systems or subsystems composed of integrated components

Integration testing should be black-box testing with tests derived from the specification

Main difficulty is localising errorsIncremental integration testing reduces this

problem.Incremental integration strategies include

Top-down integrationBottom-up integrationRegression testingSmoke testing

Integration Testing

Page 35: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Top-down testingStart with high-level system and integrate from the

top-down replacing individual components by stubs where appropriate

Bottom-up testing Integrate individual components in levels until the

complete system is created

In practice, most integration involves a combination of these strategies

Approaches to integration testing

Page 36: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Level 2Level 2Level 2Level 2

Level 1 Level 1Testing

sequence

Level 2stubs

Level 3stubs

. . .

Top-down testing

Page 37: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Level NLevel NLevel NLevel NLevel N

Level N–1 Level N–1Level N–1

Testingsequence

Testdrivers

Testdrivers

Bottom-up testing

Page 38: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

System Testing

Recovery testing Checks the system’s ability to recover from failures.

Security testing Verifies that system protection mechanism prevent improper

penetration or data alteration

Stress testing Program is checked to see how well it deals with abnormal

resource demands – quantity, frequency, or volume.

Performance testing Designed to test the run-time performance of software,

especially real-time software.

Page 39: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Object-oriented Testing

The components to be tested are object classes that are instantiated as objects

Larger gain than individual functions so approaches to white-box testing have to be extended

No obvious ‘top’ to the system for top-down integration and testing

Page 40: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Acceptance Test Format

Test Item List Identification of Test-item

Testing Detail Detailed testing procedure

Testing Result Summary of testing-item

Page 41: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Test-item List

Item No. Test Item Sub –item No.

Test-Sub Item Level

SR-02 Staff Review SR-02-01 Program Officer Review

A

SR-02-02 Early Decline Report A

Test-LevelA- Basic Function, compulsoryB- Enhanced Function, compulsoryC- Enhanced Function, optional

Page 42: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

Testing Details

Item No SR-02-01 Test Date

Item Staff Review Sub-item PO Review

Report: Early Decline

Precondition

Test Procedure

Test Standard

Test description

Test Result and Conclusion

Passed Failed

Sin of the Tester Sign of the Manager

SR-02 Staff Review

Page 43: MCA –Software Engineering Kantipur City College. Topics include  Validation Planning  Testing Fundamentals Test plan creation Test-case generation

References

From software engineering, A practitioner’s approach by Roger S. Pressman– Chapter 17: Software testing techniques

• Software Testing Fundamentals• Test case design• White-box testing- Basic path, Control Structure Testing• Black-box testing

– Chapter 18: Software Testing Strategies• A strategic approach to software testing• Unit, Integration, Validation, System testing

From Software Engineering, Ian Sommerville– Part5: Verification and Validation

• Chapter 19: Verification and validation• Chapter 20: Software testing