U.iv ST
U.iv ST
Regulation : 2017
UNIT IV
TEST MANAGEMENT
People and organizational issues in testing – Organization structures for testing teams –
Testing services – Test Planning – Test Plan Components – Test Plan Attachments – Locating
Test Items – test management – test process – Reporting Test Results – The role of three groups
in Test Planning and Policy Development – Introducing the test specialist – Skills needed by a
test specialist – Building a Testing Group.
1
IT6004 SOFTWARE TESTING
2
IT6004 SOFTWARE TESTING
3
IT6004 SOFTWARE TESTING
4
IT6004 SOFTWARE TESTING
5
IT6004 SOFTWARE TESTING
• Project manager should ensure that the development and testing teams do not view each
other as adversaries
• The testing team must participate in the project decision making and scheduling right
from the start
Organization Hierarchy
Structures for multi-product companies:
6
IT6004 SOFTWARE TESTING
Advantages:
• Developing a product architecture that is testable or suitable for testing
• Testing team will have better product and technology skills
• The testing team can get a clear understanding of what design and architecture are built for
and plan their tests accordingly
• The technical road map for product development and test suite development will be in
better sync.
The testing team reporting to the CTO is made effective by following the guidelines
• The team should be small in number
• It should be a team of equals
• It should have organization wide representation
• It should have decision making and enforcing authority and not just be a recommending
committee
• It should be involved in periodic reviews to ensure that the operations are in line with the
strategy.
The two types of Organizational Structures for distributing testing teams across multiple locations
are:
Round the clock development / testing model
Testing competency center model – 2 variants
Challenges in global teams:
• Cultural challenges
• Work allocation challenges
• Parity across teams
• Ability to work effectively
• Dependence on communication infrastructure
• Time difference
Challenges and Issues in Testing Services Organization:
• The outsider effect and estimation of resources
• Domain expertise
• Privacy and customer isolation issues
• Apportioning hardware and software resources and costs
• Maintaining a bench
Success Factors for Testing Organizations:
• Communication and teamwork
• Bringing in customer perspective
• Providing appropriate tools and environment
• Providing periodic skills upgrades
Test Planning
A plan is a document that provides a framework or approach for achieving a set of goals.
Test planning is an essential practice for any organization that wishes to develop a test process
that is repeatable and manageable.
A plan describes what specific tasks must be accomplished, who is responsible for each
task, what tools, procedures, and techniques must be used, how much time and effort is needed,
and what resources are essential.A plan also contains milestones.
7
IT6004 SOFTWARE TESTING
Milestone:
Milestones are tangible events that are expected to occur at a certain time in the project’s lifetime.
Managers use them to determine project status.
Essential high-level Items of test plan
1. Overall test objectives.
2. What to test (scope of the tests)?
3. Who will test?
4. How to test?
5. When to test?
6. When to stop testing?
8
IT6004 SOFTWARE TESTING
should be stored in a project database or come under the control of a configuration management
system. Organizational standards should describe the format for the test plan identifier and how
to specify versions, since the test plan, like all other software items, is not written in stone and is
subject to change. A mention was made of a configuration management system. This is a tool
that supports change management.
Introduction:
In this section the test planner gives an overall description of the project, the software
system being developed or maintained, and the software items and/or features to be tested. It is
useful to include a high-level description of testing goals and the testing approaches to be used.
References to related or supporting documents should also be included in this section, for
example, organizational policies and standards documents, the project plan, quality assurance
plan, and software configuration plan.
Items to be tested:
This is a listing of the entities to be tested and should include names, identifiers, and
version/revision numbers for each entity. The items listed could include procedures, classes,
modules, libraries, subsystems, and systems. References to the appropriate documents where
these items and their behaviours are described such as requirements and design documents, and
the user manual should be included in this component of the test plan.
Features to be Tested:
In this component of the test plan the tester gives another view of the entities to be tested
by describing them in terms of the features they encompass.
Features may be described as distinguishing characteristics of a software component or system.
In this component of the test plan references to test design specifications for each feature
and each combination of features are identified to establish the associations with actual test cases.
Approach :
This section of the test plan provides broad coverage of the issues to be addressed when
testing the target software. Testing activities are described. The level of descriptive detail should
be sufficient so that the major testing tasks and task durations can be identified.
The planner should also include for each feature or combination of features, the approach
that will be taken to ensure that each is adequately tested. Tools and techniques necessary for the
tests should be included. Expectations for test completeness and how the degree of completeness
will be determined should be described.
Constraints on testing should be also be included in this section, such as time and budget
limitations. The planner should also describe how the testing process will be monitored to insure
it is going according to plans. Criteria to be used for making decisions on when to stop testing
must also be included
Item Pass / Fail Criteria:
Given a test item and a test case, the tester must have a set of criteria to decide on whether
the test has been passed or failed upon execution. The master test plan should provide a general
description of these criteria
Suspension and Resumption Criteria:
In this section of the test plan, criteria to suspend and resume testing are described. In the
simplest of cases testing is suspended at the end of a working day and resumed the following
morning. For some test items this condition may not apply and additional details need to be
provided by the test planner. The test plan should also specify conditions to suspend testing based
9
IT6004 SOFTWARE TESTING
on the effects or criticality level of the failures/defects observed. Conditions for resuming the test
after there has been a suspension should also be specified. For some test items resumption may
require certain tests to be repeated.
Test Deliverables:
Execution-based testing has a set of deliverables that includes the test plan along with its
associated test design specifications, test procedures, and test cases. Deliverables may also
include other documents that result from testing such as test logs, test transmittal reports, test
incident reports, and a test summary report
Each organization should decide which of these documents is required for a given project.
Another test deliverable is the test harness. This is supplementary code that is written specifically
to support the test efforts, for example, module drivers and stubs.
Testing Tasks:
In this section the test planner should identify all testing-related tasks and their dependencies.
A Work Breakdown Structure is a hierarchical or tree like representation of all the tasks
that are required to complete a project.
High-level tasks sit at the top of the hierarchical task tree. Leaves are detailed tasks
sometimes called work packages that can be done by 1–2 people in a short time period, typically
3–5 days. The WBS is used by project managers for defining the tasks and work packages needed
for project planning.
The Testing Environment:
The test planner describes the software and hardware needs for the testing effort. For
example, any special equipment or hardware needed such as emulators, telecommunication
equipment, or other devices should be noted. The planner must also indicate any laboratory space
containing the equipment that needs to be reserved.
The planner also needs to specify any special software needs such as coverage tools,
databases, and test data generators. Security requirements for the testing environment may also
need to be described.
Responsibilities:
The staff who will be responsible for test-related tasks should be identified.
This includes personnel who will be:
• transmitting the software-under-test;
• developing test design specifications, and test cases;
• executing the tests and recording results;
• tracking and monitoring the test efforts;
• checking results;
• interacting with developers;
• managing and providing equipment;
• developing the test harnesses;
• interacting with the users/customers.
This group may include developers, testers, software quality assurance staff, systems analysts,
and customers/users.
Staffing and Training Needs:
The test planner should describe the staff and the skill levels needed to carry out test-
related responsibilities such as those listed in the section above. Any special training required to
perform a task should be noted.
10
IT6004 SOFTWARE TESTING
Scheduling:
Task durations should be established and recorded with the aid of a task networking tool.
Test milestones should be established, recorded, and scheduled. These milestones usually appear
in the project plan as well as the test plan. They are necessary for tracking testing efforts to ensure
that actual testing is proceeding as planned.
Schedules for use of staff, tools, equipment, and laboratory space should also be specified.
A tester will find that PERT and Gantt charts are very useful tools for these assignments
Risks and Contingencies:
Every testing effort has risks associated with it. Testing software with a high degree of
criticality, complexity, or a tight delivery deadline all impose risks that may have negative
impacts on project goals. These risks should be: (i) identified, (ii) evaluated in terms of their
probability of occurrence, (iii) prioritized, and (iv) contingency plans should be developed that
can be activated if the risk occurs.
It is important for the test planner to identify test-related risks, analyse them in terms of
their probability of occurrence, and be ready with a contingency plan when any high-priority risk-
related event occurs.
Testing Costs:
The IEEE standard for test plan documentation does not include a separate cost
component in its specification of a test plan. This is the usual case for many test plans since very
often test costs are allocated in the overall project management plan.
If the test plan is an independent document prepared by the testing group and has a cost
component, the test planner will need tools and techniques to help estimate test costs.
Test costs that should be included in the plan are:
• costs of planning and designing the tests;
• costs of acquiring the hardware and software necessary for the tests
• costs to support the test environment;
• costs of executing the tests;
• costs of recording and analysing test results;
• tear-down costs to restore the environment.
Other costs related to testing that may be spread among several projects are the costs of training
the testers and the costs of maintaining the test database.
Test cost impact items
The nature of the organization; its testing maturity level, and general maturity.
The nature of the software product being developed.
The scope of the test requirements.
The level of tester ability.
Knowledge of the project problem domain.
The level of tool support and Training requirements
Approvals:
The test plan(s) for a project should be reviewed by those designated by the organization.
All parties who review the plan and approve it should sign the document. A place for signatures
and dates should be provided.
11
IT6004 SOFTWARE TESTING
12
IT6004 SOFTWARE TESTING
(v) Shut down: to describe actions needed to suspend the test when unexpected events
occur
(vi) Restart: to describe restart points and actions needed to restart the procedure from
these points
(vii) Stop: to describe actions needed to bring the procedure to an orderly halt
(viii) Wrap up: to describe actions necessary to restore the environment
(ix) Contingencies: plans for handling anomalous events if they occur during execution of
this procedure.
Test Management
Test management, process of managing the tests. A test management is also performed
using tools to manage both types of tests, automated and manual, that have been previously
specified by a test procedure.
Test management tools allow automatic generation of the requirement test matrix (RTM),
which is an indication of functional coverage of the application under test (SUT).
Test Management tool often has multifunctional capabilities such as test ware management, test
scheduling, the logging of results, test tracking, incident management and test reporting.
13
IT6004 SOFTWARE TESTING
Testing process
The general testing process is the creation of a test strategy (which sometimes includes
the creation of test cases), creation of a test plan/design (which usually includes test cases and
test procedures) and the execution of tests. Test data are inputs that have been devised to test the
system Test Cases are inputs and outputs specification plus a statement of the function under the
test.
The stages in the testing process are as follows:
1. Unit testing: (Code Oriented)
2. Module testing
3. Sub-system testing: (Integration Testing) (Design Oriented)
4. System testing
5. Acceptance testing
14
IT6004 SOFTWARE TESTING
15
IT6004 SOFTWARE TESTING
16
IT6004 SOFTWARE TESTING
17
IT6004 SOFTWARE TESTING
• Ensure that the necessary training, education, and tools to carry out defined
testing/debugging goals is made available
• Assign responsibilities for testing and debugging.
Developers:
Developers have an important role in the development of testing goals and policies. They serve
as members of the goal/policy development teams. As representatives of the technical staff they
must ensure that the policies reflect best testing practices, are implementable, receive
management support, and support among technical personnel.
The activities, tasks, and responsibilities for the developers/testers include
• Working with management to develop testing and debugging policies and goals.
• Participating in the teams that oversee policy compliance and change management.
• Familiarizing themselves with the approved set of testing/debugging goals and policies,
keeping up-to-date with revisions, and making suggestions for changes when appropriate.
• When developing test plans, setting testing goals for each project at each level of test
that reflect organizational testing goals and policies.
• Carrying out testing activities that are in compliance with organizational policies.
Users and Clients:
Users and clients play an indirect role in the formation of an organization’s testing goals
and polices since these goals and policies reflect the organizations efforts to ensure
customer/client/user satisfaction. Feedback from these groups and from the marketplace in
general has an influence on the nature of organizational testing goals and policies. Successful
organizations are sensitive to customer/client/user needs.
For the the second management-oriented maturity goal at TMM level 2 “Initiate a Test
Planning Process,” input from the three critical Groups are required
Upper management supports this goal by:
• Establishing an organization wide test planning committee with funding.
• Ensuring that the testing policy statement and quality standards support test planning with
commitment of resources, tools, templates, and training.
• Ensuring that the testing policy statement contains a formal mechanism for user input to
the test planning process, especially for acceptance and usability testing.
• Ensuring that all projects are in compliance with the test planning policy.
• Ensuring that all developers/testers complete all the necessary post-test documents such as
test logs and test incident reports.
Project managers support the test planning maturity goal by preparing the test plans for each
project with inputs and support from developers.
Developers:
Developers who are experienced in testing support this maturity goal by participating in
test planning. They assist the project manager in determining test goals, selecting test methods,
procedures and tools, and developing the test case specifications, test procedure specifications,
and other test-related documents Developers are also responsible for ensuring that testability
issues are addressed during the requirements and design phases of development to support test
planning and test design.
User/Client:
18
IT6004 SOFTWARE TESTING
From the user/client point of view support for test planning is in the form of articulating
their requirements clearly, and supplying input to the acceptance test plan. The required
functional and performance-related attributes that are expected by the client/users must be
specified. Users/clients may also participate in the development of an operational profile which
may be used to guide system and acceptance tests. They can also participate in usability test
planning
Introducing the Test Specialist
The maturity goals at TMM level 3 calls for the “Establishment of a test organization.”
This is an important step for a software organization. It implies a commitment to better testing
and higher-quality software. This commitment requires that testing specialists be hired, space be
given to house the testing group, resources be allocated to the group, and career paths for testers
be established.
It also implies that the functional and managerial hierarchy of the organization be
redesigned, changes in the reporting structure be made, as well as changes be made to the
organizational Culture. By supporting a test group an organization acquires leadership in areas
that relate to testing and quality issues.
Responsibilities of Test Specialist / Test Engineers
• maintenance and application of test policies
• development and application of test-related standards
• participating in requirements, design, and code reviews
• test planning
• test design
• test execution
• test measurement
• test monitoring (tasks, schedules, and costs)
• defect tracking, and maintaining the defect repository
• acquisition of test tools and equipment
• identifying and applying new testing techniques, tools, and methodologies
• mentoring and training of new test personnel
• test reporting
19
IT6004 SOFTWARE TESTING
Technical level
• an education that includes an understanding of general software engineering principles,
practices, and methodologies;
• strong coding skills and an understanding of code structure and behaviour;
• a good understanding of testing principles and practices;
• a good understanding of basic testing strategies, methods, and techniques;
• the ability and experience to plan, design, and execute test cases and test procedures on
multiple levels
• a knowledge of process issues;
• knowledge of how networks, databases, and operating systems are organized and how they
work;
• a knowledge of configuration management;
• a knowledge of test-related documents and the role each documents plays in the testing
process;
• the ability to define, collect, and analyse test-related measurements;
• the ability, training, and motivation to work with testing tools and equipment;
• a knowledge of quality issues.
20
IT6004 SOFTWARE TESTING
inspections and walkthroughs, reviewing test work, the test repository, and staffing issues such
as hiring, firing, and evaluation of the test team members. He or she is also the liaison with upper
management, project management, and the quality assurance and marketing staffs.
The Test Lead: The test lead assists the test manager and works with a team of test
engineers on individual projects. He or she may be responsible for duties such as test planning,
staff supervision, and status reporting. The test lead also participates in test design, test execution
and reporting, technical reviews, customer interaction, and tool training.
The Test Engineer: The test engineers design, develop, and execute tests, develop test
harnesses, and set up test laboratories and environments. They also give input to test planning
and support maintenance of the test and defect repositories.
The Junior Test Engineer: The junior test engineers are usually new hires. They gain
experience by participating in test design, test execution, and test harness development. They may
also be asked to review user manuals and user help facilities defect and maintain the test and
defect repositories.
22