software testing techniques · static testing : in static testing software isn't actually...

63
SOFTWARE TESTING TECHNIQUES Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Upload: others

Post on 21-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

SOFTWARE TESTING

TECHNIQUES

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 2: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

2

Software Development

Software Development Life Cycle:

Planning

Design

Coding

Testing

Post-Release Maintenance

Page 3: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

3

Testing in Software Development

Testing

= process of searching for software

errors

How and when do we start?

Page 4: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

SOFTWARE TESTING FUNDAMENTALS

Verification :

Verification is the process of assuring the current process with should be matched with its previous one. Alternatively, Verification is the process of evaluating a system or

component to determine whether the products of a given development phase satisfy

the conditions imposed at the start of that phase.

Validation :

Validation is the process of evaluating a system or component during or at the end

of the development process to determine whether it satisfies specified requirements.Generally it is performed in the level of system testing.

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 5: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

STATIC TESTING :

In Static testing software isn't actually used. This checks algorithm in

document and checks structural representation without executing it.

It is primarily syntax checking of the code and manually reviewing the code

or document to find errors.

This can be used to care for coding standards. We can also find uninitialized

variable, parameter mismatching in prototypes, variable declared but not

used.

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 6: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

DYNAMIC TESTING :

Program executed and analysis is performed on its real output.

It output recorded for different test cases included in the test suite.

Dynamic analysis tool can be used to analyze and produce reports.

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 7: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

SOFTWARE DOCUMENTATION

PRD (Product Requirement Document)

FS (Functional Specification)

UI Spec (User Interface Specification)

Test Plan

Test Case

Test Suite

Traceability matrix

Risk Analysis matrix

7

Page 8: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

SOFTWARE DOCUMENTATION

PRD (Product Requirement Document)

What: set of software requirements

Who: Product Marketing, Sales, Technical Support

When: planning stage

Why: we need to know what the product is supposed to do

QA role: Participate in reviews

Analyze for completeness

Spot ambiguities

Highlight contradictions

Provide feedback on features/usability

8

Page 9: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

FS (Functional Specification)

What: software design document;

Who: Engineering, Architects;

When: (planning)/design/(coding) stage(s);

Why: we need to know how the product will

be designed;

QA role:

Participate in reviews;

Analyze for completeness;

Spot ambiguities;

Highlight contradictions. 9

Software documentation

Page 10: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DOCUMENTATION

Test Plan

What: a document describing the scope, approach,

resources and schedule of intended testing activities;

identifies test items, the features to be tested, the

testing tasks, who will do each task and any risks

requiring contingency planning;

Who: QA;

When: (planning)/design/coding/testing stage(s);

10

Page 11: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DOCUMENTATION

Test Plan (cont’d) Why:

Divide responsibilities between teams involved; if more than one QA team is involved (ie, manual / automation, or English / Localization) – responsibilities between QA teams ;

Plan for test resources / timelines ;

Plan for test coverage;

Plan for OS / DB / software deployment and configuration models coverage.

- QA role:

Create and maintain the document;

Analyze for completeness;

Have it reviewed and signed by Project Team leads/managers.

11

Page 12: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST CASE DESIGN

What: a set of inputs, execution preconditions and expected outcomes developed for a particular objective, such as exercising a particular program path or verifying compliance with a specific requirement;

Who: QA;

When: (planning)/(design)/coding/testing stage(s);

Why:

Plan test effort / resources / timelines;

Plan / review test coverage;

Track test execution progress;

Track defects;

Track software quality criteria / quality metrics;

Unify Pass/Fail criteria across all testers;

Planned/systematic testing vs Ad-Hoc

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 13: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DOCUMENTATION

Test Case (cont’d)

Five required elements of a Test Case:

ID – unique identifier of a test case;

Features to be tested / steps / input values – what

you need to do;

Expected result / output values – what you are

supposed to get from application;

Actual result – what you really get from application;

Pass / Fail.

13

Page 14: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DOCUMENTATION Test Case (cont’d)

Optional elements of a Test Case: Title – verbal description indicative of testcase

objective;

Goal / objective – primary verification point of the test case;

Project / application ID / title – for TC classification / better tracking;

Functional area – for better TC tracking;

Bug numbers for Failed test cases – for better error / failure tracking (ISO 9000);

Positive / Negative class – for test execution planning;

Manual / Automatable / Automated parameter etc –for planning purposes;

Test Environment.

14

Page 15: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

15

Test documentation

Test Case (cont’d)

– Inputs:• Through the UI;

• From interfacing systems or devices;

• Files;

• Databases;

• State;

• Environment.

– Outputs:• To UI;

• To interfacing systems or devices;

• Files;

• Databases;

• State;

• Response time.

Page 16: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DOCUMENTATION Test Case (cont’d)

Format – follow company standards; if no standards – choose the one that works best for you:

MS Word document;

MS Excel document;

Memo-like paragraphs (MS Word, Notepad, Wordpad).

Classes:

Positive and Negative;

Functional, Non-Functional and UI;

Implicit verifications and explicit verifications;

Systematic testing and ad-hoc;

16

Page 17: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

17

Test documentation

Test Suite– A document specifying a sequence of actions for the

execution of multiple test cases;

– Purpose: to put the test cases into an executable order,

although individual test cases may have an internal set of

steps or procedures;

– Is typically manual, if automated, typically referred to as test

script (though manual procedures can also be a type of

script);

– Multiple Test Suites need to be organized into some

sequence – this defined the order in which the test cases or

scripts are to be run, what timing considerations are, who

should run them etc.

Page 18: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DOCUMENTATION

Traceability matrix

What: document tracking each software feature from PRD to FS to Test docs (Test cases, Test suites);

Who: Engineers, QA;

When: (design)/coding/testing stage(s);

Why: we need to make sure each requirement is covered in FS and Test cases;

QA role:

Analyze for completeness;

Make sure each feature is represented;

Highlight gaps. 18

Page 19: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DOCUMENTATIONTraceability matrix (example)

19

PRD Section FS Section Test case Notes

1.1. Validation of user

login credentials.

4.1. User login

validation.

6.1.4. User login with proper credentials.

6.1.5. User login with invalid username.

6.1.6. User login with invalid password.

1.2. Validation of credit

card information.

7.2.4. Credit card

information verification.

10.1.1. Valid credit card information input.

10.1.2. Invalid credit card number.

10.1.3. Invalid credit card name.

Page 20: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

20

Test design

Testing Levels

– Various development models are there in the market

– Within each development model, there are corresponding

levels/stages of testing

– There are four basic levels of testing that are commonly

used within various models:

– Component (unit) testing

– Integration testing

– System testing

– Acceptance testing

Page 21: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

21

Test design

Testing Levels– Acceptance testing: Formal testing with respect to user

needs, requirements, and business processes conducted

to determine whether or not a system satisfies the

acceptance criteria and to enable the user, customers or

other authorized entity to determine whether or not to

accept the system.

– System testing: The process of testing an integrated

system to verify that it meets specified requirements.

– Integration testing: Testing performed to expose defects

in the interfaces and in the interactions between integrated

components or systems.

– Component testing: The testing of individual software

components.

Page 22: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

22

Test design

Testing Strategies

– Depend on Development model.

– Incremental: testing modules as they are developed, each

piece is tested separately. Once all elements are tested,

integration/system testing can be performed.

– Requires additional code to be written, but allows to

easily identify the source of error

– Big Bang: testing is performed on fully integrated system,

everything is tested with everything else.

– No extra code needed, but errors are hard to find.

Page 23: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

23

Test design

Test Types– There are several key types of tests that help improve the

focus of the testing:

– Functional testing: testing specific functions

– Non-functional testing: testing characteristics of the software and

system

– Structural testing: testing the software structure or architecture

– Re-testing (confirmation) and regression testing: testing related to

changes

– White and black box testing

– Each test type focuses on a particular test objective

– Test objective: A reason or purpose for designing and

executing a test.

– Test object: The component or system to be tested.

– Test item: The individual element to be tested. There

usually is one test object and many test items.

Page 24: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

24

Test design

Test Types (cont’d)– Functional testing:

– Testing based on an analysis of the specification of the

functionality of a component or system.

– The functions are "what" the system does:

– They are typically defined or described in work products

such as a requirements specification, use cases, or a

functional specification;

– They may be undocumented;

– Functional tests are based on both explicit and implicit

features and functions;

– They may occur at all test levels, e.g., tests for components

may be based on a component specification;

– Functional testing focuses on the external behavior of the

software (black-box testing).

Page 25: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

25

Test design

Test Types (cont’d)– Non-Functional testing:

– Focuses on "how" the system works;

– Non-functional tests are those tests required to measure

characteristics of systems and software that can be

quantified;

– These quantifications can vary and include items such as:

response times, throughput, capacity for performance

testing etc.

– Testing the attributes of a component or system that do not

relate to functionality, e.g. reliability, efficiency, usability,

maintainability, compatibility and portability.

Page 26: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

26

Test design

Test Types (cont’d)– Structural (White box) testing:

– Testing based on an analysis of the internal structure of the

component or system / architecture of the system, aspects

such as a calling hierarchy, data flow diagram, design

specification, etc.;

– May may be performed at all test levels - system, system

integration, or acceptance levels (e.g., to business models

or menu structures);

– Structural techniques are best used after specification-

based techniques;

– Can assist in measuring the thoroughness of testing by

assessing the degree of coverage of a structure;

– Tools can be used to measure the code coverage.

Page 27: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

27

Test design

Test Types (cont’d)

– Black box testing:

– The program is treated as black box;

– Inputs are fed into the program, outputs observed;

– Search for interesting and challenging input combinations

and conditions – they are most likely to expose an error.

Page 28: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

28

Test design

Test Types (cont’d)– Regression testing (retesting):

– Retesting of a previously tested program following

modification to ensure existing functionality is working

properly and new defects/faults have not been introduced

or uncovered as a result of the changes made;

– Tests should be designed to be repeatable – they are to be

used for retesting; the more defects found, the more often

the tests may have to run;

– Full regression / Partial regression / No regression – the

extent of regression is based on the risk of not funding

defects;

– Applies to functional, non-functional and structural testing;

– Good candidate for automation.

Page 29: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

29

Test design

Static Test Techniques– Static Testing:

– Testing of a component or system at specification or

implementation level without execution of the software;

– Non-execution based method for checking life cycle

artifacts;

– Manual static techniques: reviews (inspections,

walkthroughs etc.), formal and informal;

– Automated techniques: supporting reviews, static analysis

tools (compilers);

– Anything can be reviewed – PRD, Specs, Memos,

Proposals, User Guides etc.

Page 30: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TEST DESIGN

Test Case optimization

Optimizing Test design and planning

methodologies:

Boundary testing;

Equivalence classes;

Decision tables;

State transitional diagrams;

Risk Analysis.

30

Page 31: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

31

Test design

Equivalence class partitioning :– A black box test design technique in which test cases are

designed to execute representatives from equivalence

partitions. In principle, test cases are designed to cover each

partition at least once.

– Creates the minimum number of black box tests needed to

provide minimum test coverage

– Steps:

– Identify equivalence classes, the input values which are

treated the same by the software:

– Valid classes: legal input values;

– Invalid classes: illegal or unacceptable input values;

– Create a test case for each equivalence class.

Page 32: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

32

Test design

Equivalence class partitioning (cont’d):

Invalid Valid Invalid

<$1000 $1000-70000 >$70000

Equivalence partition (class):

– A portion of an input or output domain for which the behavior

of a component or system is assumed to be the same,

based on the specification.

Page 33: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

33

Test design

Boundary value testing:– A black box test design technique in which test cases are

designed based on boundary values.

– Each input is tested at both ends of its valid range(s) and

just outside its valid range(s). This makes sense for numeric

ranges and can be applied to non-numeric fields as well.

Additional issues, such as field length for alphabetic fields,

can come into play as boundaries.

– Boundary value: An input value or output value, which is on

the edge of an equivalence partition or at the smallest

incremental distance on either side of an edge, for example

the minimum or maximum value of a range.

Page 34: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

34

Test design

Boundary value testing (cont’d):– Run test cases at the boundary of each input:

– Just below the boundary;

– Just above the boundary;

– The focus is on one requirement at a time;

0 1 10 11

– Can be combined across multiple requirements – all valid

minimums together, all valid maximums together;

– Invalid values should not be combined.

Page 35: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

35

Test design

Decision table:

composed of rows and columns, separated into

quadrants:

Conditions Condition Alternatives

Actions Action Entries

Page 36: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

36

Test design

Decision table:

Page 37: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

37

Test design

State transitional diagrams:

Identify a finite number of states the model execution goes

through

Create a state transition diagram showing how the model

transitions from one state to the other

Assess the model accuracy by analyzing the conditions

under which a state change occurs

State transition: A transition between two states of a

component or system.

Page 38: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

38

Test design

State transitional diagrams (cont’d):

– Circles/ellipses are states

– Lines represent transitions between states

– Text represents the events that cause transitions

– The solid circle represents an initial state

– A solid circle or ellipses/circles with no exit lines (transitions) are

final states

– In the example above, minimal number of test cases to cover each

state is two

Page 39: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

BASIS PATH TESTING

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 40: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• By Tom McCabe

• McCabe, T., "A Software Complexity Measure," IEEE Trans. Software Engineering, vol. SE-2, December 1976, pp. 308-320.

• Enables the test case designer to derive a logical complexity measure of a procedural design.

• Uses this measure as a guide for defining a basis set of execution paths.

• Test cases derived to exercise the basis set are guaranteed to execute every statement at least once.

18-Jan-19

Page 41: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

IF

SEQUENCE

Page 42: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

WHILE

UNTIL

Page 43: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

1

2

34

E - N + 2

11-9+2 = 4

P + 1

3 + 1 = 4 # Regions = 4

Page 44: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

An independent path is any path through the

program that introduces at least one new set

of processing statements or a new condition.

In the flow graph, an independent path must

move along at least one edge that has not been

traversed before the path is defined.

Page 45: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

1

2

3

4 5

67

8

9

1-9

1-2-8-7-1-9

1-2-3-4-6-7-1-9

1-2-3-5-6-7-1-9

Page 46: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

1-9

1-2-8-7-1-9

1-2-3-4-6-7-1-9

1-2-3-5-6-7-1-9

PATH 1

PATH 2

PATH 3

PATH 4

Page 47: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• Provides us with an upper bound for the number of

independent paths that form the basis set and, by

implication, an upper bound on the number of tests that

must be designed and executed to guarantee coverage

of all program statements.

18-Jan-19

Page 48: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• Using the design or code as a foundation,

draw a corresponding flow graph.

• Determine the cyclomatic complexity of

the resultant flow graph.

• Determine a basis set of linearly

independent paths.

• Prepare test cases that will force

execution of each path in the basis set.18-Jan-19

Page 49: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

IF a and b

THEN procedure Y

ELSE procedure X

ENDIF

a

b x

xy

Page 50: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

PROCEDURE average;

This procedure computes the average of 100 or fewer numbers that lie between bounding values; it also

computes the sum and the total number valid.

INTERFACE RETURNS average, total.input, total.valid;

INTERFACE ACCEPTS value, minimum, maximum

Page 51: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

TYPE value[1:100] IS SCALAR ARRAY;

TYPE average, total.input, total.valid;

minimum, maximum, sum IS SCALAR;

TYPE i IS INTEGER;

i = 1;total.input = total.valid = 0;

sum = 0;

DO WHILE value[i] <> -999 AND total.input < 100

increment total.input by 1;IF value[i] >= minimum AND value[i]<= maximum

THEN increment total.valid by 1;

sum = sum + value[i]

ELSE skip

ENDIF

increment i by 1;

ENDDO

IF total.valid > 0THEN average = sum/total.valid;

ELSE average = -999;

ENDIF

END average

Page 52: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

TYPE value[1:100] IS SCALAR ARRAY;

TYPE average, total.input, total.valid;

minimum, maximum, sum IS SCALAR;

TYPE i IS INTEGER;

i = 1;total.input = total.valid = 0;

sum = 0;

DO WHILE value[i] <> -999 AND total.input < 100

increment total.input by 1;IF value[i] >= minimum AND value[i]<= maximum

THEN increment total.valid by 1;

sum = sum + value[i]

ELSE skip

ENDIF

increment i by 1;

ENDDO

IF total.valid > 0THEN average = sum/total.valid;

ELSE average = -999;

ENDIF

END average

1

23

45

6

7

89

1011

1213

Page 53: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

18-Jan-19

1 2

3

4

5

6

78

9

10

1112

13

6

Page 54: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• path 1: 1-2-10-11-13

• path 2: 1-2-10-12-13

• path 3: 1-2-3-10-11-13

• path 4: 1-2-3-4-5-8-9-2-...

• path 5: 1-2-3-4-5-6-8-9-2-...

• path 6: 1-2-3-4-5-6-7-8-9-2-...

• ... indicates that any path through the remainder of the control structure is acceptable.

• nodes 2, 3, 5, 6, and 10 are predicated nodes.

18-Jan-19

Page 55: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• Path 1 test case

• value(k) = valid input, where k < i for 2 <= i <= 100,

• value(i) = -999 where 2 <= i <= 100.

• Expected results correct average based on k values and proper totals.

• Note: path 1 cannot be tested stand-alone but must be tested as part of path 4, 5, and 6 tests.

18-Jan-19

Page 56: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• value(1) = -999

• Expected results: Average = -999; other

totals at initial values.

18-Jan-19

Page 57: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• Attempt to process 101 or more values.

• First 100 values should be valid.

• Expected results: Same as test case 1.

18-Jan-19

Page 58: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• value(i) = valid input where i < 100

• value(k) < minimum where k < i

• Expected results: Correct average based

on k values and proper totals.

18-Jan-19

Page 59: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• value(i) = valid input where i < 100

• value(k) > maximum where k <= i

• Expected results: Correct average based

on n values and proper totals.

18-Jan-19

Page 60: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

• value(i) = valid input where i < 100

• Expected results: Correct average based

on n values and proper totals.

18-Jan-19

Page 61: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

CONTROL STRUCTURE TESTING

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 62: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

BLACK BOX TESTING

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)

Page 63: SOFTWARE TESTING TECHNIQUES · STATIC TESTING : In Static testing software isn't actually used.This checks algorithm in document and checks structural representation without executing

TESTING FOR SPECIALIZED ENVIRONMENT,

ARCHITECTURE AND APPLICATIONS.

Prepared By : Priyank Doshi (M.Sc. Maths, MCA)