is4500 – software quality assurance service & functional testing strategies copyright © 2012...

42
IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate or Distribute Without Written Consent of the Author. www.neu.edu · [email protected]

Upload: flora-carr

Post on 31-Dec-2015

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

IS4500 – SOFTWARE QUALITY ASSURANCE

SERVICE & FUNCTIONAL TESTING STRATEGIES

Copyright © 2012 by Martin Schedlbauer, Ph.D.All Rights Reserved. Do Not Duplicate or Distribute Without Written Consent of the Author.www.neu.edu · [email protected]

Page 2: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

2 Solution Validation & Testing

ObjectivesUpon completion of this chapter you will be

able to:◦ Test the services or functions provided by a

solution◦ Reduce the number of test cases through

equivalence partitioning◦ Identify common problems through boundary

analysis◦ Map application states and state transitions◦ Leverage use cases to build better test cases◦ Use decision tables to understand expected

responses◦ Perform ad-hoc exploratory testing when

specifications are unavailablev1.01

Page 3: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

3 Solution Validation & Testing

MotivationTesting is not an ad hoc activity and does

not simply mean that one “bangs against” a solution in order to break it.

Rather, testing is a formal activity that is documented in detail.

In fact, one of the most important skills of a successful tester is to be detail oriented and methodical.

Of course, the degree of formality depends on the type of solution that is being tested and the consequence of latent defects.

v1.01

Page 4: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

4 Solution Validation & Testing

Black Box TestingThis module shows how to test

software with “blinders on”, i.e., the solution is treated as a “black box” or in some cases as a “grey box”.

While programming skills are not necessary to be an effective tester, some understanding of programming is helpful, particularly when it comes to understanding boundary value analysis.

v1.01

Page 5: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

5 Solution Validation & Testing

Exploratory vs Predictive TestingExploratory testing is an ad hoc approach

where testers proceed without a test plan. This approach is used when there is an

absence of a formal specification or defined requirements.

It is also used during reverse engineering to learn about the solution’s functionality and capabilities.

The opposite of exploratory testing is predictive testing, where testing is done based on specific test cases derived from the requirements specification.

v1.01

Page 6: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

6 Solution Validation & Testing

What is a Test Case?A test case defines the expected

outcome for a specific set of stimuli. All test cases combined make up a

test suite. In practice, the terms test case and

test scenario are used interchangeably.

Writing test cases presumes that there is a requirements specification, otherwise perform exploratory testing.

v1.01

Page 7: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

7 Solution Validation & Testing

Test-to-Pass vs. Test-to-FailTest-to-Pass: the tester checks

that the solution meets the stated requirements and that it does not break when used in accordance with the specification.

Test-to-Fail: the solution is pushed to the edge and is made to break – testers are forcing errors and are using the solution in ways that were not laid out in the specification.

v1.01

Page 8: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

8 Solution Validation & Testing

Practical ApproachOf course, testers should start

with the test-to-pass approach first to make sure that the solution meets the specification and that there are no defects when used properly.

Then testers should “exercise” the solution and see how it behaves when used outside the design boundaries.

v1.01

Page 9: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

9 Solution Validation & Testing

Discussion QuestionWhat would test-to-

pass and test-to-fail mean for a computer that you are trying to purchase?

v1.01

Page 10: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

10 Solution Validation & Testing

The Test CaseTest cases should be properly documented

and tracked, ideally in a database such as those provided by testing tools.

Documented test cases are critical for logging purposes and to know what exactly has been tested.

They are essential for regression testing. Every time some aspect of the solution has

changed, all test cases testing potentially affected areas must be re-run.

The test case should define the precise inputs and expected outputs; it is a series of stimulus/response pairs.

v1.01

Page 11: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

11 Solution Validation & Testing

Components of a Test Case

v1.01

Page 12: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

12 Solution Validation & Testing

Use Case Analysis in TestingUse cases describe more specific

usage scenarios, whereas test cases simply apply a set of inputs to a test object to observe its reaction.

As such, use cases are more realistic since they test an actual use of the system.

v1.01

Page 13: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

13 Solution Validation & Testing

Actors & Use CasesA use case is an interaction that

a prospective user has with a solution, such as a software application or web site.

The prospective user is referred to as the actor.

Most actors are human users, but they can also be external systems.

The key is that an actor is external, i.e., it represents an outside stimulus.

v1.01

Page 14: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

14 Solution Validation & Testing

Examples of Use CasesEach use case represents a goal

that the actor intends to achieve by using the solution.

Two examples of use cases for BoatVentures:◦The broker intends to capture a new

charter lead◦The charter guest intends to search

for available yachts

v1.01

Page 15: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

15 Solution Validation & Testing

Use Case DiagramDuring initial analysis and when

talking with stakeholders, many analysts like to sketch the actors and the use cases.

v1.01

Actor

Use Case

Page 16: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

16 Solution Validation & Testing

Use Case NarrativeThe details of each use case are

documented in a narrative that:◦ lists the steps in each successful and

unsuccessful scenario that make up the interaction

◦defines context pre-conditions: set of conditions that must be true in

order for the use case to be successful post-conditions: set of conditions that will be true once

the use case has completed either successfully or unsuccessfully

◦ links to detailed requirements and business rules◦ links to process models, data models, user

interface models, and other artifacts that support the use case

v1.01

Page 17: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

17 Solution Validation & Testing

Use Case TemplateMost organizations use a standard

template for the use case narrative. Although tools exist for organizing

use cases, most organizations prefer to use Microsoft Word.

When using Word there are two general approaches for writing the documents: ◦one document per use case or ◦one document that contains all use

casesv1.01

Page 18: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

18 Solution Validation & Testing

Scenarios and Use CasesNormal scenarioAlternate scenarioException scenario

v1.01

Page 19: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

19 Solution Validation & Testing

Identifying ScenariosThe analyst starts by eliciting the normal scenario. Then each step in the basic path is evaluated in

collaboration with the subject matter experts and users.

At each step, ask:◦ Are there other ways in which this step can be

completed? ◦ What could happen here? ◦ How might this be done differently? ◦ Does it always happen like that? ◦ What should we do if it happens differently?◦ Is the outcome always the same? When is it different?◦ Can we assume that the inputs are always as expected?

v1.01

Page 20: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

20 Solution Validation & Testing

Workshop Activity

v1.01

Goal: Work with use cases.

Time: 10-15 minutes Format: Individually or in groups

Materials: Case study background information in workbook

Instructions:

• Go back to the case study background information and re-read the use case narrative for “Book a Charter”.

• What are the scenarios that need to be tested?• Are there missing scenarios that should be considered?

Page 21: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

21 Solution Validation & Testing

Creating Test CasesWhen testing solutions, there are

often thousand or more possible scenarios to test.

Reduce the number of test cases and focus on the most important ones by using:◦Use Case Scenario Analysis◦Equivalence Class Partitioning◦Boundary Value Analysis◦Decision Tables, and ◦State Charting v1.01

Page 22: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

22 Solution Validation & Testing

Test Cases from Use CasesEach scenario of each use case

becomes the basis for a test case. Since use cases are devoid of

implementation details, they have to be expanded before they can become fully specified test cases.

v1.01

Page 23: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

23 Solution Validation & Testing

Equivalence Class Partitioning

Equivalence partitioning is a methodical approach to reducing the number (often infinite) of possible test cases into a smaller, more manageable, but still effective set of test cases.

Equivalence partition should be defined for correct as well as incorrect input values.

v1.01

DefinitionAn equivalence class or partition is a set of test cases that exercise the same part of the solution and therefore reveal the same defect if there is one present.

Page 24: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

24 Solution Validation & Testing

Example of Equivalence PartitionLet’s take an example from the

BoatVentures case. ◦When booking a charter, guests have to

provide the number of days for which they would like to charter a yacht.

In this situation any value greater than zero is valid, while any value of zero or less is invalid.

Testing all possible scenarios is impossible as there are an infinite number.

So, what is the practical set of test cases?

v1.01

Page 25: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

25 Solution Validation & Testing

Boundary Value AnalysisNot all values are equally likely to

fail, as programmers tend to make more mistakes at the “boundaries” of equivalence partitions.

This has to do with the fact that programmers frequently program control logic statements, such as IF or SWITCH, incorrectly.

v1.01

Page 26: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

26 Solution Validation & Testing

Example of Boundary ConditionsFor example, if BoatVentures

states that yacht charters over 7 days receive a 10% discount, then we would expect that there is a control flow statement in the code that tests for that condition.

v1.01

if (Booking.Days > 7)Booking.Price *= 0.1;

Page 27: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

27 Solution Validation & Testing

Identifying Boundary EdgesWhen defining equivalence

classes, rather than taking random values, it is most revealing to choose values at the boundary edges where programmers are most likely to make mistakes.

When a boundary condition has been identified, create an equivalence class for a value just inside the boundary, the last valid data point, and an invalid data point just outside the boundary.

v1.01

Page 28: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

28 Solution Validation & Testing

Other Equivalence ClassesDefault and empty valuesBad data

v1.01

Page 29: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

29 Solution Validation & Testing

Workshop Activity

v1.01

Goal: Apply boundary value analysis to create good equivalence partitions.

Time: 20-30 minutes Format: Individually or in groups

Materials: • Whiteboard, flipchart, or paper• Edge and bad data rules from workbook

Instructions:

Using boundary value analysis and the edge identification rules listed in the workbook, create equivalence classes for valid and invalid inputs for the following requirements and/or business rules:

• The number of charter guests on a time charter is limited to a maximum of six

• “Daily Specials” charters must be booked within 48 hours of departure and must be for a minimum of 2 hours but no more than 8 hours

• Day charters over 4 hours are discounted by 10% if paid with cash

What bad data or invalid inputs would you test in addition to the ones discovered above through boundary value analysis?

Page 30: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

30 Solution Validation & Testing

Decision TablesDecision tables provide a

methodical way to describe complex business rules where an outcome is based on multiple conditions and simple boundary analysis won’t suffice.

A decision table is a tabular representation containing an exhaustive list of all conditions that affect some action, outcome, or calculation. v1.01

Page 31: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

31 Solution Validation & Testing

Example of a Decision TableRules for a BoatVentures charter:

◦If the charter is longer than 4 hours, then a 10% discount is applied

◦Parties of fewer than 3 guests do not require a mate and are discounted 5%

◦All off-season charters receive a 10% discount

◦All discounts are cumulative and multiple discounts can apply

Let’s turn this into a decision table…

v1.01

Page 32: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

32 Solution Validation & Testing

Workshop Activity

v1.01

Goal: Identify test cases through decision table analysis.

Time: 20-25 minutes Format: Individually or in groups

Materials: • Whiteboard, flipchart, or paper

Instructions:

Build a decision table that represents the following rules regarding licensing of charter operators:

• Operators of time charters must have an OUPV 50GT license for all vessels less than 48’; for those 48’ or over they must have a 100GT endorsement

• Operators of demise charters must possess at least a 50GT Masters license if they are not employed or contracted through BoatVentures

• Operators of demise charters employed or contracted through BoatVentures do not require any licenses

Page 33: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

33 Solution Validation & Testing

Solution1 2 3 4 5 6 7 8

Charter Type D D D D T T T T

Vessel < 48’? Y Y N N Y Y N N

Employed by BV?

Y N Y N Y N Y N

50GT License?

X X X

100GT License?

X X X

Master License?

X X

v1.01

Page 34: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

34 Solution Validation & Testing

State ChartingThe testing to this point has

concentrated on test cases based on various inputs – both valid and invalid.

However, the logic and control flow in the solution has not yet been validated.

State charting helps in testing the different solution states and whether the solution progresses through the states in the expected sequence.

v1.01

Page 35: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

35 Solution Validation & Testing

UML State Chart Diagram

v1.01

Page 36: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

36 Solution Validation & Testing

Application of State ChartsNavigation Charts

◦Each screen or page can be viewed as a valid state and getting from one screen or page to another would be a transition

Application Mode Charts◦Mode maps are applied when an

application enters some processing phase where different actions are valid depending on the mode of the interaction

v1.01

Page 37: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

37 Solution Validation & Testing

Example: Navigation Map

v1.01

Page 38: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

38 Solution Validation & Testing

Example: Mode Map

v1.01

Page 39: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

39 Solution Validation & Testing

Workshop Activity

v1.01

Goal: Create a navigation map using state charts.

Time: 20-25 minutes Format: Individually or in groups

Materials: • Whiteboard, flipchart, or paper• BoatVentures CRM or other site• Optionally a UML modeling tool

Instructions:

Build a navigation map for the BoatVentures CRM or another web site or application of your choice.

You should use LucidChart.com or a similar UML modeling tool if possible.

Page 40: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

40 Solution Validation & Testing

Recording DefectsDefects discovered during testing

must be recorded and details of the test and the unexpected result must be communicated to the solution development team.

The report must include sufficient information for the solution team to understand the defect and be able to replicate it.

v1.01

Page 41: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

41 Solution Validation & Testing

Defect AttributesLet’s inspect the list of attributes

that should be recorded for a defect…

v1.01

Page 42: IS4500 – SOFTWARE QUALITY ASSURANCE SERVICE & FUNCTIONAL TESTING STRATEGIES Copyright © 2012 by Martin Schedlbauer, Ph.D. All Rights Reserved. Do Not Duplicate

42 Solution Validation & Testing

Summary In this module we learned that:

◦ Testing is a methodical activity that requires careful analysis

◦ Test cases are either test-to-pass or test-to-fail◦ Use cases help in defining test cases; there is one test case

for each use case scenario◦ Equivalence partitioning reduces the number of test cases◦ Boundary value analysis helps define the right equivalence

classes◦ Decision tables exhaustively list all combination of factors

that affect an outcome when testing complex business rules

◦ State chart help analyze and track the mode of an application

◦ Defects are carefully recorded following a template that contains the information needed to reproduce and resolve the error

v1.01