The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by , 2015-09-04 02:08:31

Software Testing

Software Testing

Software Testing | Gel Abad

Software
Testing

1

Software Testing | Gel Abad

Table of Contents

Fundamentals of Testing................................................................................................................................
Software Testing and its importance ........................................................................................................ 4
Testing Principles ...................................................................................................................................... 5
Fundamentals of Testing Process ............................................................................................................. 6
Psychology of Testing................................................................................................................................ 8

Testing throughout the software life cycle ..................................................................................................
Software development models ................................................................................................................ 9
Software Testing Levels .......................................................................................................................... 11
Software Test Types................................................................................................................................ 12
Maintenance Testing............................................................................................................................... 13

Static Techniques ...........................................................................................................................................
Reviews and the Test Process ................................................................................................................ 14
Review Process........................................................................................................................................ 16
Static Analysis By Tools ........................................................................................................................... 18

Test design techniques...................................................................................................................................
Identifying test conditions and designing test cases ............................................................................. 19
Categories of test design techniques...................................................................................................... 19
Specification-based or black-box techniques ......................................................................................... 20
Structure-based or white-box techniques .............................................................................................. 24
Experience-based techniques ................................................................................................................ 24
Choosing a test technique....................................................................................................................... 24

2

Software Testing | Gel Abad

Test management...........................................................................................................................................
Test plan ................................................................................................................................................. 25
Test Estimates ......................................................................................................................................... 27
Test strategies ........................................................................................................................................ 30
Test progress monitoring and control .................................................................................................... 31
Configuration management.................................................................................................................... 32
Risk and testing ....................................................................................................................................... 33
Incident management ............................................................................................................................ 34

Tool support for testing .................................................................................................................................
Types of test tool .................................................................................................................................... 35
Effective use of tools: Potential benefits and risks ................................................................................ 36
Introducing a tool into an organization .................................................................................................. 36

References ................................................................................................................................................. 37

3

Software Testing | Gel Abad

Fundamentals of Testing

Testing
It is a procedure for critical evaluation. A means of determining the quality, truth presence of

something.

Software Testing
Software testing, also known as Application Testing is a method of assessing the functionality of

a program such as usability, performance, security and compatibility. It is also the process of validating
and verifying that the software meets the business and technical requirements and identifying technical
bugs.

Image 1.0: Iron triangle of Project Management, is a model of the constraints of project management.

Testing is a vital process of any kind of software methodology because it ensures that the
application is safe, secure and meets the requirements set by the client. Fixing technical bug can be
expensive because it takes time and resources which then affects the overall quality of the system
(Image1.0). Which is why it is important that these bugs are found and fixed as soon as possible. The
earlier these defects are found, the cheaper and easier it will be to fix. However, testing does not only
find errors, but also ensures that the program meets the standards, such as IEEE1 and the client or
stakeholders.

1 IEEE (Institute of Electrical and Electronics Engineers) is an organization that develops global standards.

4

Software Testing | Gel Abad
Principles of Testing

1. Bug finding
- Testing reveals the defects/ errors in the application.

2. Testing software exhaustively is impossible
- Testers need optimum time to test the application.

3. Testing a software early
- Start the testing as early as possible.

4. Defect Clustering
- Most defects are related to a small number of modules.

5. Pesticide Paradox
- As the system evolves, the previously reported defects will have been fixed. Every time a
new functionality is added, regression testing is required to make sure it didn’t affect any
other part of the system.

6. Testing is context dependent
- The most appropriate type of testing depends on the nature of the application.

7. Absence of Errors Fallacy
- Even if the test result shows that there are no defects, it doesn’t mean that the software
is ready to be shipped.

5

Software Testing | Gel Abad

Fundamental Testing Process

Image 2.0: The process of Fundamental Testing

1. Planning and Control
- Identify the objectives of testing
- Determine the test approach
- Implement a test strategy2
- Determine the required resources such as people and PC.
- Schedule test analysis, test implementation, execution and evaluation

2. Analysis and Design
- Review the test basis
- Identify test conditions
- Design the test

2 Test Strategy describes the testing portion of the software development cycle. It is one of the most powerful
factor of the accuracy of the test plans.( Common test strategies: Analytical/Risk Analysis, Methodical/Checklist)

6

Software Testing | Gel Abad

- Evaluate testability of the requirements
- Design the test environment set-up and identify the required tools.

3. Implementation and Execution
Implementation:
- This is the part of the process wherein the test conditions are used as test cases.
- Usage of testware3 (scripts for automation)

Execution:
- Execute test cases following the test procedures
- Re-execute the tests that failed previously.
- Log the outcome of the test execution. Also known as test log4.

4. Evaluating Exit Criteria and Reporting
- Check the test log against the exit criteria specified in test planning
- Assess if more test are needed
- Check whether there are changes to be made in exit criteria
- Write a test summary report for stakeholders

5. Test Closure Activities
- Check which planned deliverables are actually delivered. (ensures that all incident
reports have been resolved)
- Finalize the scripts, test environment for later reuse.
- Handover the testware to the maintenance organization
- Evaluate how the testing went.

3 Testware is the umbrella term for all utilities and application software that serve in combination for testing a
software package but not necessarily contribute to operational purposes.

4 Test log includes the following: test cases, tester, and status (pass/fail)

7

Software Testing | Gel Abad

Psychology of Testing

Mindset of Tester vs Developer
Developers are developing applications based on the specification given by the client. They are

also working to solve the problems encountered during the development process where as testers, looks
for the defects/failures in the software. Thus, building application requires a different mindset from
testing however, both are vital to ensure the success of the Software Development.

Balance between self-testing and independent testing
Developers can also become testers (vise-versa). In fact, developers test their own code before

handing it to others. However, finding the developers on mistake is not an easy task because, sometimes,
programmers tend to protect their own work. That is why, architects, business analyst and programmers
depend on others to test their work. The act of giving the application the testing specialists allows an
independent test of the system.

There are several levels of independence in software testing, which are listed here from the lowest level
of independence to the highest:
1. Tests by the person who wrote the item.
2. Tests by another person within the same team, like another programmer.
3. Tests by the person from some different group such as an independent test team.
4. Tests by a person from a different organization or company, such as outsourced testing or
certification by an external body.

8

Software Testing | Gel Abad

Testing throughout the software life cycle

Software development models
Software Development Life Cycle (SDLC) is a structured sequence of stages in software

engineering to develop the intended software product. The selection of model has a very high impact on
the testing. It will define the what, where and when of our planned testing, influence regression testing,
and largely determines which test techniques to use.
Types of SDLC:

 Waterfall
Simplest model of software development paradigm. Functions in a linear manner.

Image 3.0: Process of waterfall model

9

Software Testing | Gel Abad
 V-Model

At every stage, test plans and test cases are created to verify and validate the product according
to the requirement of that stage.

Image 4.0: Process of V-model
 Agile

Iterative approach is taken and working software builds is delivered after each iteration. Each
build is incremental in terms of features; the final build holds all the features required by the
customer.

Image 4.0: Process of Agile Method

10

Software Testing | Gel Abad
Software Testing Levels

Testing Levels identifies the missing areas, prevents overlap and repetition between
development life cycle phases

Types of Testing Level:
1. Unit testing

– done by developers to check if their code is working fine.
2. Component Testing

– Testing the modules of the application that are developed separately.
3. Integration Testing

– is done when two modules are integrated in order to test the functionality after
integration.
4. System Integration Testing

– Testing all the related systems that should maintain data integrity and can operate in
coordination in the same environment.
5. System Testing

– Tests the compatibility of the application with the system
6. Acceptance Testing

– Ensures that the requirements are met.
7. Beta Testing

– It is done just before the launch of the product.

11

Software Testing | Gel Abad
Software Test Types

Test Types are focused on a particular test objective which could be the performance, reliability,
usability, structure of the system or changes in the system.

Kinds of Software Test Types:
 Functional Testing
It is the testing of the functions of the system. Functional tests tend to answer the
questions like “Can the user do this?” or “does this particular feature work?” This is
typically described in requirements specification.
 Non-Functional Testing
It tests the quality of the system. It refers to the aspect of the software that may not be
related to a specific function. Like: reliability testing, usability testing, learnability,
efficiency, satisfaction and portability.
 Structural testing
The testing of the structure of the system. Often referred as the white box because the
interest only lies on what is happening inside the application. In structural testing, testers
are required to have the knowledge of the internal implementation of the code.
 Change Related Testing
Some of the changes related testing is confirmation testing (ex: confirming that the
defects have been fixed) and regression testing (for unintended changes).

12

Software Testing | Gel Abad
Maintenance Testing

Maintenance Testing is testing that is provided in the phase wherein a system is deployed. During
the time the system and its environment are corrected, changed or extended. It is performed to identify
problems, diagnose the current status of the system.
Two parts of Maintenance:

1. Testing the changes that has been made because of the correction in the system, additional
features were added or the system is extended.

2. Regression testing is done to prove that the rest of the system had not been affected by the
maintenance work

13

Software Testing | Gel Abad

Static Test Techniques

Improves the quality of software products by assisting engineers to recognize and fix their own
defects early in the software development process

Static Testing
Is the manual testing of software products or with a set of tools, but not executed. Meaning,

computers are not necessary because the testing is done without executing the program. Like: reviewing,
walk through and inspection.

Two parts of Static Testing:
 Review
- Used to find and eliminate errors in documents such as requirements, design, test cases.
 Static analysis
- Code written by developers are analyzed for structural defects that may lead to error.

Review and the Test Process

Image 5.0: Different levels of formality by review type
Review process can vary widely in their level of formality. Some times of review are informal while
some are formal. Reviews can also have a variety of objectives. The way a review is conducted will depend
on what its specific objective is.

14

Software Testing | Gel Abad

Typical review objectives include:

 Finding defects
 Gaining understanding
 Generating discussion
 Decision making by consensus

Informal Review

Applied many times during the early stages of the life cycle of the document. The goal is to
improve the quality of the document. Informal reviews are not documented (may be documented but it
is not required). There is no formal process underpinning the review.

Informal Review may be implemented by pair programming wherein, one programmer reviews
the code of the other pair programmer or by a technical lead reviewing design and code.

Formal Review
It is a well-structured and regulated type of review.

Types of Review

 Walkthrough
- Lead by the authors
- Not a formal Process
- Useful for the people if they are not from the software discipline, who are not
used to or cannot easily understand software development process

 Technical Review
- Lead by the trained moderator
- Less formal review
- Often performed as peer review without management participation
- Defects are found by the expert who focus on the content of the document.

 Inspection
- Led by the trained moderators
- Most formal type of review
- Involves peer to examine the product
- The defects found are documented in a logging list or issue log
- Formal follow-up is carried out by the moderator applying exit criteria

15

Software Testing | Gel Abad

Review Process

1. Planning
- Begins with a request for review by the author to the moderator/ inspection
leader.
- Moderator takes care of the scheduling. Performs the entry check 5and also
defines the formal exit criteria. 6
- The entry criteria for any documents to go for the reviews are:
o Does not reveal a large number of major defects
o Documents to be reviewed should be with line numbers
o Should be cleaned up by running automated checks that apply
o Author should feel confident about the quality of the document
so that he can join the review team with that document.
- Author decides which part of the document is to be reviewed. Maximum size is
between 10 to 20 pages.

2. Kick-off
- Optional step in a review procedure.
- Gives a short introduction on the objectives of the review and the documents.
- Relationship between the document under review and the other documents are
also explained especially if the numbers of related documents are high.

3. Preparation
- Reviewers checks the document individually using the related documents,
procedures, rules and checklist provided
- Each participants identifies the defects, questions and comments according to
their understanding of the document and role.
- All issues are recorded using a logging form
- Checking rate7 is the success factor for a thorough preparation.

5 Entry check is done to ensure that the reviewer’s time is not wasted on a document that is not ready
6 Exit criteria are the average number of critical/ major defects found per page. If the number of defects found per
page is more than a certain level then the document must be reviewed again.
7 The success factor for a thorough preparation is the number of checker per hour. Usually the checking rate is in
the range of 5 to 10 pages per hour.

16

Software Testing | Gel Abad

4. Review Meeting
- Logging phase
o The issues and the defects that have been identified during the
preparation step are logged page by page. Every defects and its severity
should be logged. Three severity classes are:
 Critical – the defects will cause downstream damage
 Major – the defects could cause a downstream damage
 Minor – the defects are highly unlikely to cause the
downstream damage.
- Discussion Phase
o The issue that needs a discussion is logged and then handled in the
discussion phase.
o The moderator takes care of the people issues and prevents discussion
from getting too personal.
o The outcome of the discussions is documented for the future reference.

- Decision Phase
o At the end of the meeting, a decision on the document under review
has to be made by the participants, sometimes based on formal exit
criteria8.

5. Rework
- If the number of defects found per page exceeds the certain level then the
document has to be reworked.
- Not every defect that is found leads to rework
- The author is the judge whether the defect has to be fixed

6. Follow-up
- The moderator check to make sure that the author has taken action on all
known defects.
- The moderator takes care of the distribution and collection of feedback incase
the participants decided to update the document.
- It is the responsibility of the moderator to ensure that the information is
correct and stored for future analysis.

8 Exit criteria are the average number of critical/ major defects found per page. If the number of defects found per
page is more than a certain level then the document must be reviewed again.

17

Software Testing | Gel Abad

Static Analysis by tools

Static Analysis

Performed on requirement design or code without actually executing the software. The goal of
static analysis is to find the defects whether or not they may cause failure. Finds defects rather than
failure.

Static Analysis Tools

- It is typically used by the developers before and sometimes during component and integration
testing.

- It is also used by the designers during software modeling
- Compiler can be considered as a static analysis tool because it builds a symbol table, points out

incorrect usage and checks for non-compliance to coding language conventions or syntax.

Static Analysis tools are as follows:

 Coding standards
- Consists of a set of programming rules, naming conventions and layout
specifications.
- If the company uses a well-known coding standard, there will probably be
checking tools available that support that standard.

 Coding Metrics
- Measurement of depth of nesting and number of lines of code.
- Are done to see if the design or code is becoming bigger, more complex and
more difficult to understand and maintain.
- Helps us decide between several designs alternatives.
- An example of structural measure is Cyclomatic complexity Metric wherein, it is
based on the number of decisions in the program.

 Code Structure
- Tells us about the effort required to write the code, to understand the code
while making changes or to test the code using particular tools or technique.
- Things to consider in code structure are the following
o Control flow structure
o Data flow Structure
o Data structure

18

Software Testing | Gel Abad

Test Design Techniques

Test Design

Test Design is the act of creating and writing test suites for testing a software. Test analysis and
identifying test conditions gives us a generic idea for testing. However, test cases needs to be very
specific. Exact and detailed input are important. Refer to IEEE 829 Standard for Test Documentation for
detailed Test Case Documentation Specification.

IEEE 829

It is a standard for documenting the testing of software. It applies to any stage in the testing of
developing software and each stage in the software’s development typically is documented using the
same application of the standard.

Identifying test conditions and designing test cases

 The basis for tests is called the “test basis”. It could be a requirement, technical specification,
the code itself or business process.

 A test condition is simply something that users could test.
 A good way to understand requirements better is to try to define tests to meet those

requirements.
 In identifying test conditions, it starts from a wider component leading to a more specific

category and select which ones to take forward to develop in more detail and combine into test
cases. This is called “Test possibilities”.
 It is a good idea to try and think of twice as many test conditions as needed and throw away the
less important ones. That way, there will be a much better set of test conditions

Categories of test design techniques

 Static Testing Technique
- Static testing is the testing of the software work products manually, or with a set of
tools, but they are not executed.

 Dynamic Testing Technique
- Dynamic Testing technique needs a computer for testing.
- It is done during validation process
- Ex: Unit testing, Integration testing

19

Software Testing | Gel Abad

Specification-based or black-box technique

 The testing concentrates on what the software does and not how it does it.
 It is appropriate at all levels of testing.
 Called “black-box” or input/output driven testing technique because the software is views as a

black-box with inputs and outputs

Types of Specification-based / Black-box technique

1. Equivalence Partitioning
- Divides a set of test conditions into groups/partition that can be considered the
same.
- Tests only one condition in each partition because it is assumed that all the
condition in one partition will be treated the same way by the software.
- If a condition in a partition works, it is implied that all the condition in that
partition will work.(Vise-versa)
- Also known as Equivalence Classes

Example: A software that calculates the interest due
Software Specification:

Rate of Interest Balance in Account

3% $0 - $100
5% $100 - $1000
7% $1000 and above

Actual testing: (error message for invalid)

Status Interest Balance
Rate
Valid $0 - $100.00
Valid 3% $100.01 - $999.99
Valid 5% $1000.00++
Invalid 7% -$0.01
Invalid - A (non-numeric)
-

In this case, if the system does not correctly handle a negative balance the
defects can be found. This approach is more effective and efficient.

20

Software Testing | Gel Abad

2. Boundary Value Analysis
- Based on testing at the boundaries between partitions
- We have both valid boundaries and invalid boundaries
- To apply a boundary value analysis, the minimum and maximum boundary
values from the valid partition together with the first or last value respectively
in each of the invalid partitions adjacent to the valid partition

Example: A software that calculates the interest due. (Refer to the example in
Equivalence partitioning)

Boundary Values
-$0.01
$0.00
$100.00
$100.01
$999.99
$1000.00

Ways to test an open Boundary:

- Check the specification to see if a maximum has been stated somewhere else
for a balance amount
- Investigate other related systems. Ex: the field holds that account balance
figure may be only 6 figures plus 2 decimal. This would give a maximum
account balance of $999 999.99
- Intuitive/Experience Based Approach can also be used if the two methods does
not work. (Try inputting various large values)

3. Decision Table
- A good way to deal with combination of things
- Also referred as “Cause-Effect” table
- Provides a systematic way of stating complex business rules which is useful for
developers as well as for testers

How to use decision tables for test designing

- Identify a suitable function or subsystem which reacts according to a
combination of inputs or event

- It is better to deal with large numbers of conditions by dividing into
subsets and deal with one subset at a time

- Put the combinations in table listing of true and false.

21

Software Testing | Gel Abad

Example: A New Customer wants to open a credit card account.

If you are a new customer and you want to open a credit card account then there are
three conditions first you will get a 15% discount on all your purchases today, second if
you are an existing customer and you hold a loyalty card, you get a 10% discount and third
if you have a coupon, you can get 20% off today (but it can’t be used with the ‘new
customer’ discount).

Image 6.0: decision table for credit card example. “X” means this combination should not occur.

o Rule 3 is an assumption. Since coupon has a greater discount, it
is assumed that customer will choose 20% rather than 15%. Note:
these two discount cannot be stacked since it cannot be used with
new customer discount
o The discounts in Rule 5 are stackable since both of them should
apply.

4. State Transition Testing

- Any system wherein a same input can result in different output depending on
what has happened before (finite state system)

- Often shown as a state diagram
- It is used where some aspect of the system can be in a finite number of different

states and the transitions from one state to another are determined by the rules
of machine.
- Advantage of state transition technique: An important part of the system can be
modeled with greater depth of detail whereas the less important, the model can
use a single state to signify what would be a series of different state.

Four Basic Parts of state transition model:

o The states that the software may occupy (open/closed or
funded/insufficient funds);

22

o The transitions from one state to Software Testing | Gel Abad
another (not all transitions are
allowed); Any given state, one event
can cause only one action
o The events that cause a transition
(closing a file or withdrawing if the same
money); event, from a different state

o The actions that result from a cause a different
transition (an error message or and a different
being given your cash).

Example:

If a user request to withdraw $100 from a bank ATM, the user may be given
cash. Later he may make exactly the same request but it may refuse to give
you the money because of your insufficient balance.

- This is because the state of the user’s bank account has changed.

Entering a Personal Identity Number (PIN) to a bank account. The states are
shown as circles, the transitions as lines with arrows and the events as the
text near the transitions

Figure 7.0: State diagram for PIN Entry

Deriving Test Cases:
- First test case: correct PIN is entered the first time
- Second test case: correct PIN is entered the second time.

23

Software Testing | Gel Abad

- Third test case: correct PIN is entered the third time.
- Fourth test case: incorrect PIN is entered each time (eats card)

Structure-based or white-box techniques

 The tester concentrates on how the software does it. Example: exercising loops
 Testers require knowledge of how the software is implemented.
 Developers use white-box techniques in component testing and component integration

testing.
 Also known as glass-box.

Experience-based Testing Techniques

 The knowledge, skills and background of the people are important to the test conditions and test
cases.

 Experience of both technical and business people is required because they bring different
perspectives to the test analysis and design process.

 Go together with specification-based and structure-based techniques.
 Useful under extreme time pressure.

Choosing a Test Technique

Internal factors that influence the decisions about which technique to use are:

 Models used in developing the system
 Testers knowledge and their experience
 Similar type of defects
 Test objective
 Documentation
 Life Cycle model used

External factors that influence the decisions about which technique to use are:

 Risk Assessment
- The greater the risk, the greater the need for more thorough and more formal testing

 Customer and Contractual Requirements
 Type of System used

- The type of system will influence the choice of techniques.
 Regulatory Requirements
 Time and Budget of the Project

24

Software Testing | Gel Abad

Test Management

Test plan

 Test Plan
A document that describes the scope, approach, resources and schedule of intended

test activities. It is the basis for formally testing any software in a project.

Types of Test Plans:

- Master Test Plan – single high-level test plan for a project that unifies all other test plans
- Testing Type Specific Test Plans – plans for major types of testing.
- Testing Level Specific Test Plans – plans for each level of testing

Importance of Test Planning:

- It guides our thinking.
- It serves as the means of communication with other members of the project team.
- It helps the team to manage change.

Things to consider in when planning tests:

- Scope
- Objectives
- Product Risk
- Constraints affecting tests
- Testable aspect of the product
- Schedule of test execution
- Integrate and coordinate all the test work to be done.
- Test Environment
- Required Resources

25

Software Testing | Gel Abad

IEEE 829 Standard Test Plan Template

 Test Plan Identifier
- Provides a unique identifier for the document
 Test Plan Deliverables
- Test plan
- Test Cases
- Test scripts
- Defect/Enhancement Logs
- Test Reports
 Introduction
- Overview of the test plan
 Test tasks
 Test Items
- List the test items/software and their versions
 Environmental needs
- Specify the properties of test environment and the testing tools
 Features to be tested
- List the features of the software to be tested.
 Responsibilities
- List the responsibilities of each team/individual.
 Features not to be tested
- List the features of the software which will NOT be tested.
 Staffing and Training need
- Specify staffing needs by role and required skills
 Approach Schedule
- Specify the testing level, testing types and the test methods
 Item pass/fail criteria
- Specify the criteria to determine whether each test item has passed or failed
 Risk and Contingencies
- List the identified risks and specify the contingency plan for each risk.
 Suspension and Resumption
- Specify criteria to be used to suspend the testing activity and the tests which must be

redone when testing is resumed.

26

Software Testing | Gel Abad

Test Estimates and Strategies

Test Estimation
A management activity which approximates how long a task would take to complete.

Few points need to be considered before estimating testing activities:

 Check if all requirements are finalize or not.
 If it not then how frequently they are going to be changed.
 All responsibilities and dependencies are clear.
 Check if required infrastructure is ready for testing or not.
 Check if before estimating task is all assumptions and risks are documented.

Basis of Calculation of Test Estimation Technique:

 Past Data/Past experience
 Available documents/Knowledge
 Assumptions
 Calculated risks

Types of Software Testing Estimation Technique:

 Delphi Technique
- Collects the data from participants who are experts.
- Each task is assigned to each team member
- Multiple rounds of surveys are conduct
- In each round, task are gathered and feedback is
provided

 Work Breakdown Structure (WBS) task scheduling,
- Breaks down the project into individual components cost estimation
in a hierarchal structure
- Project is divided into modules and are divided into necessary tasks
sub-modules
- Sub-modules are divided into functionality.
- Each Functionality can be divided into sub
functionality.

27

Software Testing | Gel Abad

 Three Point Estimation E
- Based on statistical data
- Tasks are broken down into subtasks. estimation of the task
- Three types of estimation are done on this sub pieces SD
o Optimistic Estimate (Best case scenario) = a
o Most Likely Estimate = m estimation is
o Pessimistic Estimate (worst case scenario) = b correct

Formula to Find Value for Estimate (E):

Standard Deviation:

 Functional Point Method
- Estimates size, duration and cost for the tasks
- Functional Points are divided to:
o Complex
– Compromise of multiple components that interact with each other
o Medium
– System with limited number of components
o Simple
– composed of small components

- Base on the complex of software functions, test manager has to give WEIGHTAGE to
each functional point. Example:

28

Software Testing | Gel Abad
- After classifying the complexity of the function points. The next step is to estimate the

duration to test them.
Example:

- The total effort to complete the task is around 498 man-hours.
Test Estimation Best Practices:

 Add some buffer time
 Account Resource Planning in estimation (Ex: long leave of a member in the team)
 Use Past Experiences as Reference

29

Software Testing | Gel Abad
Test Strategies

The choice of test strategy is one of the most powerful factor in the success of the test effort
and the accuracy of the test plans and estimates.

Types of Test Strategies:
 Analytical
- Risk Based Strategy – involves performing a risk analysis using project documents
- Requirement Based Strategy – analysis of the requirement specification forms the basis
for planning, estimating and designing of tests.
 Model-Based
- Creation or selection of some formal or informal model for critical system behaviors.
 Methodical
- Systematized approach that has been developed in-house
- Assembled from various concepts developed in-house and gathered from outside
 Process – or standard Compliant
- Reliance upon an externally developed approach of testing Like IEEE 829, Extreme
Programming.
 Dynamic
- Concentrates on finding as many defects as possible during test execution.
 Consultative or Directed
- Involves reliance on a group of non-testers to guide/ perform the testing effort.
 Regression-Averse
- Usually automated.
- Testing is almost entirely focused on testing functions that already have been released.

30

Software Testing | Gel Abad

Test progress monitoring and control

Test Monitoring

 Process of evaluating and providing feedback of the currently in progress testing phase.
 Allows opportunities to guide and improve the testing and the project
 Measures the status of the testing, coverage, and test items against the exit criteria.
 Gather data for use in estimating future efforts

Test monitoring activity includes:
 Providing feed back to the team and the other required stakeholders about the progress of the
testing efforts.
 Broadcasting the results of testing to associated members.
 Finding and tracking the test metrics.
 Planning and estimation and deciding the future course of action based on the metrics
calculated.

Metrics that can be used for test monitoring:
 Test coverage metric
 Test execution metrics (Number of test cases pass, fail, blocked, on hold)
 Defect metrics
 Requirement traceability metrics
 Miscellaneous metrics like level of confidence of testers, dates milestones, cost, schedule and
turnaround time.
 Extent of completion of test environment preparation
 Status of the testing (analysis, design and implementation)

Test Control

 Activity of guiding and taking corrective action based on some metrics/information to improve
the efficiency and quality

Sample Action for Test Control:

 Prioritize the testing efforts
 Revisiting the test schedules and dates
 Re-organizing the test environment
 Re-prioritizing the test cases and conditions

31

Software Testing | Gel Abad
Configuration Management

 Determines the items that make up the software (Source code, test scripts, third-party software,
hardware, data and both development and test documentation)

 Ascertain that the “items” are managed carefully, thoroughly and attentively.
 Has a number of important implications for testing. (Allows testers to manage their testware)
 Supports the build process which is important for delivery of a test release into the test

Environment
 Allows the team to keep the record of what is being tested to the underlying files and

components that make it up.
Ideally, when testers receive an organized, version-controlled test release from a change-managed source
code repository, it is along with a test item transmittal report or release notes [IEE 829]

32

Software Testing | Gel Abad

Risk and Testing

Risks
 Possible problems that might endanger the objectives of the project stakeholders
 A Potential Problem
 Something that has not happened yet and it may never happen.

Categories of Risks:

 Product Risk
- Possibility that the software might fail to satisfy some reasonable expectation of the
client.

The product risks that can put the product or software in danger are:

o If the software skips some key function that the customers specified, the users
required or the stakeholders were promised.

o If the software is unreliable and frequently fails to work.
o If software fail in ways that cause financial or other damage to a user or the company

that user works for.
o If the software has problems related to a particular quality characteristic, which

might not be functionality, but rather security, reliability, usability, maintainability
or performance.

 Project Risk

The project risk that can endanger the project are: Remember to
likelihood of occurrence of
o Risk such as the late delivery of the test items the risk and the impact of
to the test team or availability issues with the the risk.
test environment.
Early risk analysis, are often
o There are also indirect risks such as excessive educated guesses. At key
delays in repairing defects found in testing or project milestones it’s
problems with getting professional system important to
administration support for the test
environment. on
the risk analysis

33

Software Testing | Gel Abad
For any risk, project risk or product risk we have four typical actions that we can take:

 Mitigate: Take steps in advance to reduce the possibility and impact of the risk.
 Contingency: Have a plan in place to reduce the possibility of the risk to become an outcome.
 Transfer: Convince some other member of the team or project stakeholder to reduce the

probability or accept the impact of the risk.
 Ignore: Ignore the risk, which is usually a good option only when there is little that can be done

or when the possibility and impact of that risk are low in the project.

Risk based testing
 Uses risk to prioritize and emphasize the appropriate tests during test execution.
 Starts early in the project
 Involves both mitigation and contingency

Guidelines on how to perform risk based testing:
1. Make a prioritized list of risks.
2. Perform testing that explores each risk.
3. As risks evaporate and new ones emerge, adjust your test effort to stay focused on the current
crop.

Incident Management
 When actual result is different from the expected result, then it is called as: incident, bugs,
defects, issues
 Other causes of incidents include misconfiguration or failure of the test environment, corrupted
test data, bad test, invalid expected results and tester mistakes

34

Software Testing | Gel Abad

Tool support for testing

Types of Test Tools: Use computers to do things
that they are really good at.
Classification of different types of test tools according to the test
process activities: Tool support is very useful
for
1. Tool support for management of testing and tests:
 Test management tools A tool that measures some
 Requirements management tools aspect of software may have
 Incident management tools few unexpected side-effects
 Configuration management tools also on that software. Like:

 is an alteration

2. Tool support for static testing: in the frequency of run-time
 Review process support tools
 Static analysis tools (D) computational errors
 Modelling tools (D)
observed when delays are
3. Tool support for test specification:
 Test design tools introduced into concurrent
 Test data preparation tools
programs
4. Tool support for test execution and logging:
 Test execution tools is a bug that
 Test harness/ Unit test framework tools (D) disappears or alters its
 Test comparators behavior when one
 Coverage measurement tools (D) attempts to probe or isolate
 Security tools it.

Ex: If the code is run with the
5. Tools support for performance and monitoring: debugger, then the bug
 Dynamic analysis tools (D) disappears; it only re-
 Performance testing, Load testing and stress-testing appears when the debugger
is turned off.
tools
 Monitoring tools

35

Software Testing | Gel Abad

Effective use of tools: Potential benefits and risks

Advantages
 Reduction of repetitive work
 Greater consistency and repeatability
 Objective Assessment
 Ease of access to information about tests or testing

Disadvantages

 Unrealistic expectations from the tool
 People often make mistakes by underestimating time, cost and effort for the initial

introduction of a tool
 People frequently miscalculate the time and effort needed to achieve significant and

continuing benefits from the tool
 People depend on the tool a lot.

Introducing a tool into an organization

 The organization must be ready to introduce, use and be involved in adapting the tool through
its test processes.

 During evaluation phase of a test tool, identify whether it performs effectively within the
software under test and within the current infrastructure and the potential changes needed.

 Start on a pilot project once the assessment is done for learning more detail about the tool,
confirming that the assumptions are justified and mastering its use before a large
implementation or not

 For deploying a tool efficiently within an organization, success factors can be followed like :
o Rolling out the tool to the rest of the organization incrementally.
o Adapting and improving processes to fit in with the use of the tool.
o Providing training and coaching/mentoring for new users.
o Defining usage guidelines.
o Implementing a way to gather usage information from the actual use of a given tool.
o Monitoring tool use and benefits.
o Providing support for the test team for a given tool.
o Gathering lessons learned from all teams.

36

Software Testing | Gel Abad

References:

Janssen, C. (N.d.). Software Testing. Retrieved June 26, 2015, from
http://www.techopedia.com/definition/17681/software-testing\
Ghahrai, A. (2008, November 30). Seven Principles of Software Testing. Retrieved June 26, 2015, from
http://www.testingexcellence.com/seven-principles-of-software-testing/
Tutorials Point. (n.d) Retrieved June 26, 2015, from
http://www.tutorialspoint.com/software_engineering/software_development_life_cycle.htm
ISTQB EXAM CERTIFICATION. (n.d.) Retrieved June 26, 2015, from http://istqbexamcertification.com/
Software Testing Review Process. (2011, June 3). Retrieved June 29, 2015,
from http://aboutqtp10.blogspot.com/2011/06/software-testing-reviews-test-process.html
Static Testing. (n.d.). Retrieved June 29, 2015, from
http://www.tutorialspoint.com/software_testing_dictionary/static_testing.htm
IEEE 829. (n.d.). Retrieved June 29, 2015, from http://www.webopedia.com/TERM/I/IEEE_829.html
Graham, D., & Veen, E. (n.d.). Identifying Test Conditions. Retrieved June 29, 2015, from
http://learnthebasicsofsoftwaretesting.blogspot.com/2013/05/blog-post.html
TEST PLAN Fundamentals. (2011, April 26). Retrieved June 30, 2015, from
http://softwaretestingfundamentals.com/test-plan/
Introducing a Tool into an Organization. (2012, November 26). Retrieved June 30, 2015, from
http://istqbfoundation.blogspot.com/2012/11/63-introducing-tool-into-organization-k1.html
What is Test Monitoring and Test Control? (n.d.). Retrieved June 30, 2015, from
http://www.softwaretestinghelp.com/test-monitoring-and-test-control/
Software Test Estimation: An Expert View. (n.d.). Retrieved June 30, 2015, from
http://www.guru99.com/an-expert-view-on-test-estimation.html
Software Estimation Techniques - Common Test Estimation Techniques used in SDLC. (n.d.). Retrieved
June 30, 2015, from http://www.softwaretestingclass.com/software-estimation-techniques/

37


Click to View FlipBook Version