Project Management in Testing Phase
Project Management in Testing Phase
MANAGEMENT(PM)
Module 4:
Part 1: Project Management in the
Testing Phase
[Link]
Syllabus Module 4:
Project Management in the Testing and
Maintenance Phase
• Project Management in the Testing phase: Introduction, what is testing? what
are the activities that makeup testing? test scheduling and types of tests, people
issue in testing, management structures for testing in global teams, metrics for
testing phase.
• Project Management in the Maintenance Phase: Introduction, Activities during
Maintenance Phase, management issues during Maintenance Phase,
Configuration management during Maintenance Phase, skill sets for people in
the maintenance phase.
2
Project Management in the
Testing Phase
What is Testing?
❖ The eventual goal of a software project is to have zero defects in the end product that
goes out to customers.
❖ The defects in the final product normally creep in by means of defects from various
phases. For example,
• Defects can come from improper identification of requirements.
• Incorrect translation of requirements into design.
• Through erroneous coding.
❖ Mechanisms like design reviews can catch the defects in the initial phases.
4
The main goal of any software project is to deliver a product to the customer that is
free of defects (errors/bugs).
But in reality, defects creep in during different stages of software development:
[Link] Phase – If requirements are not properly understood or documented,
the software may not solve the customer’s actual problem.
Example: Customer asks for "monthly reports" but the requirement is wrongly noted as
"weekly reports."
[Link] Phase – Even if requirements are correct, they can be wrongly converted
into design.
Example: Requirement says “fast response time,” but the design chosen makes the
system slow.
5
Coding Phase – Mistakes in programming can also introduce defects.
Example: Wrong formulas, missing conditions, or syntax errors.
6
What is Testing?
Testing refers to activities that are carried out to ensure that the final
software product meets the requirements that the product is intended
to satisfy.
Attributes of Testing are:
1. Testing is done on a product that has already been built.
2. Testing is done to detect the presence of defects in the product, not to prove that the product
is defect free.
7
Attributes of Testing are:
3. Tests are divided into physical units called the test scripts (or test cases).
• Each script defines an expected result and produces an actual result when
executed.
8
Example
•Test Script: Enter valid username and password into the
login page.
•Expected Result: User should be redirected to the
homepage.
•Actual Result: User is redirected to the homepage.
•Outcome: Pass (Expected = Actual).
9
Attributes of Testing are:
4. When a test fails, both the product and the expected results are
reviewed to find the cause.
10
Test Case: Add two numbers (5 + 3).
•Expected Result: 9
•Actual Result: 8
•Outcome: Fail
Analysis:
•If the program logic is wrong → fix the code, re-run → now result is 9 (Pass).
•If the expected result was wrongly set as 9 but should actually be 8 → update
expected result → test becomes Pass.
Either the product is corrected, or the expected result is updated, and the test is re-
run until it succeeds.
11
12
ACTIVITIES THAT MAKE UP TESTING
13
ACTIVITIES THAT MAKE UP TESTING
Test Specification
➢ This can also be viewed as "requirements specifications" for the testing activity.
➢ Some of the questions that get answered during this phase are:
1. Which hardware configurations should be used for testing the product?
2. Are there any cut-off configurations under which the product must be tested?
3. Which software environments should the product be tested under?
4. What are the most common scenarios that need to be tested?
5. What are the criteria for test completion?
14
ACTIVITIES THAT MAKE UP TESTING
Test Specification
❖ This helps estimate the cost of hardware and the time needed for testing.
❖ More platforms mean higher effort, cost, and time for both test development and
execution.
15
ACTIVITIES THAT MAKE UP TESTING
Test Specification
❖ These should be identified during requirements and revisited during test design to
ensure proper testing on them.
16
ACTIVITIES THAT MAKE UP TESTING
Test Specification
17
ACTIVITIES THAT MAKE UP TESTING
Test Specification
18
ACTIVITIES THAT MAKE UP TESTING
Test Specification
❖ Test completion criteria (e.g., 95% code coverage, 80% routine coverage, or market
deadlines) should be defined during test specification.
19
ACTIVITIES THAT MAKE UP TESTING
Test Design
20
ACTIVITIES THAT MAKE UP TESTING
Test Design
• In the test specification stage, we only decide what to test (high level).
In the test design stage, we add details like exact test cases and expected
results.
Example
• High-level scenario (specification): “System should support a maximum of 100
concurrent users.”
• Test design details:
• Test Case 1: Try with 50 users → Expected output: System works smoothly.
• Test Case 2: Try with 100 users → Expected output: System still works, no crash.
• Test Case 3: Try with 120 users → Expected output: System rejects extra users with an
error message.
21
ACTIVITIES THAT MAKE UP TESTING
Test Design
2) Are we planning to use a tool for test automation or are the tests going to be run
manually?
• Once the tests are developed, they have to be run multiple times, once each time a new version
of the product is built.
• Using a test automation tool eases the problem. Automation tools provide mechanisms to
capture or "record" tests and the outputs, and then play the tests to verify that the produced
output and expected outputs match.
• Decision to use a test automation tool has to be taken during the test design stage itself as it has
ramifications on the cost, effort, and the technology to be used for test development.
22
ACTIVITIES THAT MAKE UP TESTING
Test Design
➢ Documentation standards → Record what each test does, its purpose, and any
updates. Example: A test case document explains “Login test checks valid/invalid
credentials.”
24
ACTIVITIES THAT MAKE UP TESTING
Test Automation
❖ One way to lessen the problem associated with manual testing is
the use of Test Automation Tools.
25
ACTIVITIES THAT MAKE UP TESTING
Test Automation
❖ Such tools provide mechanisms to
• Capture or record the user inputs.
• Invoke the right parts of the product (or the environment) in an automated
way, based on the user inputs.
• Specify responses the product should produce.
• Compare actual results and expected results.
❖ Automation requires manual effort to create initial testing scripts.
❖ Test automation tool can run the tests automatically with minimal human
intervention.
❖ Allows the execution of repetitive tasks and regression tests.
26
ACTIVITIES THAT MAKE UP TESTING
Test Automation
When to Perform Automation Testing?
➢ When we need to run repetitive tasks: Automated tests are the best option in
scenarios where there is a requirement to run repetitive tests.
• For example, case in which regression tests must be executed periodically to make sure
that the newly added code does not disrupt the existing functionality of the software.
➢ When human resources are scarce: Automated tests are viable and the best
option to get tests executed within deadlines when there are only a limited
number of dedicated testers.
27
ACTIVITIES THAT MAKE UP TESTING
Test Automation
Benefits of Automation Testing
➢ Finds more bugs: Automation testing helps to find more bugs and defects in the
software.
➢ Reduce time for regression tests: Automated tests are suitable for regression tests as
the tests can be executed in a repetitive manner periodically.
➢ The process can be recorded: This is one of the benefits of using automation tests as
these tests can be recorded and thus allows to reuse of the tests.
➢ No fatigue: As automation, tests are executed using software tools so there is no
fatigue or tiring factor as in manual testing.
➢ Increased test coverage: Automation tests help to increase the test coverage as using
the tool for testing helps to make sure that not even the smallest unit is left for testing.
28
ACTIVITIES THAT MAKE UP TESTING
Test Automation
29
ACTIVITIES THAT MAKE UP TESTING
Test Automation
30
ACTIVITIES THAT MAKE UP TESTING
Test Automation
2. Coding the tests in the language that the tool would understand, that would result
in test scripts.
32
ACTIVITIES THAT MAKE UP TESTING
Test Automation
• Ensures that this matches with the standard expected behavior for future runs.
5. Registering (baselining) the test script/the input output capture into the
Configuration Management System.
33
ACTIVITIES THAT MAKE UP TESTING
Test Automation
❖ At this stage, the test scripts are available and the standard expected
inputs and outputs are calibrated to the actual expected
inputs/outputs.
34
ACTIVITIES THAT MAKE UP TESTING
Test Automation
Limitations of Automation Testing
➢ Difficult to inspect visual elements: It is difficult to get insight into the visual
elements like color, font size, font type, button sizes, etc. as there is no human
intervention.
➢ High cost: Automation tests have a high cost of implementation as tools are
required for testing, thus adding the cost to the project budget.
35
ACTIVITIES THAT MAKE UP TESTING
Test Automation
➢ Not false proof: Automation tests also have some limitations and mistakes in
are required.
36
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
❖ The tester executes test cases and generates test reports without any
help from the automation tools.
38
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
Some salient points that should be kept in mind while documenting tests
for manual execution are:
1. Do not assume the tester will have an in-depth knowledge of the application.
• The tester may not know the details of the application he is testing.
• For example, the statement, "check if the item has reached its re-order quantity
level" may be very obvious to the developer of an Inventory application but may
not make sense to someone who is new to the application domain and is testing
the application.
42
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
2. Do not assume that the tester is proficient with the details and syntax of the
underlying software
• e.g. if an application is built on top of a relational DBMS supporting SQL, it may not
be sufficient to tell the tester, "subtract quantity ordered from quantity on hand
for the product“.
• You would have to give an explicit SQL syntax which the tester would have to key
in.
43
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
❖ When the instructions are documented, they should follow the specific syntax
and the punctuation that the tester should type in.
❖ When a GUI application is being tested, the instructions should go into details of :
• Where the mouse should be placed?
• What kind of cursor the tester would see?
• What he should do (mouse click, double click, tabbing across choices, etc.)?
• What would be the result of such an action?
44
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
4. Do not assume that all the environment is set up and is ready for testing
• Test may require some set-up to be done.
• E.g. Suppose the required table (PART) has to be created and populated with
necessary rows (ITEM 100 and 200).
• It is the test developer's responsibility to ensure that specific instructions for doing
the set-up are provided.
• It is a good idea to drop the existing environment and recreate it to remove any
undesirable side effects of data left over by the previous test runs.
45
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
5. Run the test on an environment distinct from the one in which the test
development was carried out before registering/baselining the test.
• When a test developer develops the tests, he is usually running in his test
environment which may not match the environment in which the tests are
supposed to run.
46
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
6. Do have someone else run the tests by just following your test documentation
• The person running the tests routinely may not have access to the test developer while
running the tests. Hence it is useful to have someone else test out the test
documentation.
• Eventually, all the tests have to be run one after the other to test out the complete
product functionality.
• Every test should be followed by clean up i.e. drop the unnecessary data, unset any
environment variables etc.
47
ACTIVITIES THAT MAKE UP TESTING
Manual Testing
48
Manual Testing And Automated Testing
Conclusion
➢ Both manual testing and automated testing play crucial roles in ensuring
software quality.
49
ACTIVITIES THAT MAKE UP TESTING
Test Registration
1. The tests have to be run multiple times for each build of the product.
2. Whenever a product it tested, it is necessary that the correct versions of the tests be
run.
4. “Tests", refers to test specification, test scripts, test documentation, test inputs that
are captured and the expected test outputs that are produced.
50
1.
Example:
Imagine you’re developing a mobile banking app.
•Build 1: You add the “Login” feature. You test it.
•Build 2: You add the “Money Transfer” feature. You must test both Login and Money Transfer again.
•Build 3: You add “Check Balance”. You again test all three
2. Example:
Build 1: Login button is labeled “Submit”.
Build 2: It’s renamed to “Sign In”.
→ The old test script looking for the “Submit” button will fail.
→ You must update the test script and run the new version for Build 2.
3. Example:
In your testing repository, you might have:
/tests/v1.0/login_test.py
/tests/v2.0/login_test.py
You know Build v1.0 uses the first script, and Build v2.0 uses the second one.
51
•Test specification: Describes what should be tested and how.
•Test scripts: The code or automation steps to perform the test.
•Test documentation: Explains the test plan, steps, and results.
•Test inputs: Data used for testing.
•Expected outputs: What result should appear if the software works correctly.
Component Example
Test specification Verify user login with correct and incorrect passwords
Test script Selenium script to enter username/password and click login
Test documentation Test case ID TC001 – “Login Functionality”
Test input username: user123, password: pass@123
Expected output User successfully logs into dashboard
52
ACTIVITIES THAT MAKE UP TESTING
Test Execution
❖ Test Execution refers to the actual execution of tests against a given build of the product. This
step is repeated several times, usually every time the product is built.
❖ Objectives of test execution are to detect any old defects that have re-surfaced and to report
any new defects.
❖ If automated tools are used for executing the tests, such test execution can be piggybacked
on the activity of building the product (CI/CD).
❖ If the test execution is manual, then it can be triggered by a formal communication to the
testing team upon successful completion of a given version of the product.
53
Test Execution refers to the actual execution of tests against a given build of the
product.”
This is the stage where tests are actually run on the software build (version) to check
if it works correctly.
Each “build” of the product is a version that includes new code or fixes.
The goal is to see whether the software behaves as expected and whether any bugs
appear.
Example:
Imagine your team is developing an online shopping app.
After the developers finish a new build (say Build 3.2), the testing team:
runs all the test cases (like login, add to cart, payment, etc.)
checks if everything still works properly.
That activity is called Test Execution.
54
•Every time a new build is created (for bug fixes, new features, or improvements),
tests must be run again to ensure:
• old bugs haven’t come back, and
• new bugs haven’t appeared.
Example:
•Build 3.0 – Tests run → all passed.
•Build 3.1 – New feature added → Tests run again.
•Build 3.2 – Bug fix done → Tests run again.
→ This repetition ensures product stability.
55
“Objectives of test execution are to detect any old defects that have re-surfaced
and to report any new defects.”
•Sometimes, when developers fix something, an old bug might reappear (called
regression).
•Also, new bugs may be introduced due to new code changes.
•So the testing team’s aim is to find both.
Example:
•Earlier bug: “Payment page crashes” — fixed in Build 3.0.
•But in Build 3.2, after UI changes, the same crash happens again.
→ This is an old defect that re-surfaced.
•If a new issue occurs (e.g., product image not loading), it’s a new defect.
56
Automated test execution
“If automated tools are used for executing the tests, such test execution can be piggybacked on the
activity of building the product (CI/CD).”
•Automated testing tools (like Selenium, Jenkins, or JUnit) can run tests automatically each time
developers build the product.
•This is part of CI/CD (Continuous Integration / Continuous Deployment) pipelines.
•It means as soon as the new build is ready, tests start running automatically — no human trigger
needed.
Example:
In Jenkins pipeline:
Step 1: Build application
Step 2: Run automated test suite
Step 3: Generate test report
If the build passes all tests, it automatically moves to deployment.
57
Manual test execution
“If the test execution is manual, then it can be triggered by a formal
communication to the testing team upon successful completion of a given version
of the product.”
•When tests are not automated, testers run them manually.
•The development team informs the testing team — usually through an email,
ticket, or project management tool — that the build is ready for testing.
•Only then do testers begin manual test execution.
Example:
•Developer sends a message:
•“Build 3.2 is successfully deployed to the test server. Please start testing.”
•The QA team receives it and begins manual testing following test cases.
58
CI/CD
❑ Build Triggered
•Once the code is pushed, a CI (Continuous Integration) tool such as Jenkins, GitHub Actions, or
Azure DevOps automatically starts the build process.
•The build means compiling the code, packaging files, and preparing it for testing.
Example: Jenkins detects the new commit and starts building the latest version of the app.
60
3️⃣ Automated Tests Run
•After building, automated tests (like unit tests, integration tests, or UI tests) run
automatically.
•These check if the new code works correctly and doesn’t break existing features.
Example: The system runs tests to ensure the login feature works and doesn’t affect
the signup process.
61
ACTIVITIES THAT MAKE UP TESTING
Test Maintenance
❖ Over time, a product evolves with its new versions. New features are introduced.
❖ Some features keep getting enhanced while some other become obsolete.
❖ Also, testing technology itself can evolve with more automation and tools.
❖ Because of all these changes, the tests and/or the expected results need to be
maintained.
62
ACTIVITIES THAT MAKE UP TESTING
Test Maintenance
❖ The existing tests may need to be changed to reflect changes in product behavior.
Example:
Earlier, when a user entered the wrong password, the app showed:
• “Invalid Password.”
63
ACTIVITIES THAT MAKE UP TESTING
Test Maintenance
❖ Existing tests may also need to be scrapped as some of the features may be desupported in newer
releases.
• Example
Suppose you have an online shopping app.
• Old version: Had a feature called “Pay by Cheque”.
• New version: The company removes that feature and now supports only “Pay by Card” or
“UPI”.
Old test case:
• “Verify that payment through cheque works correctly.”
This test is now irrelevant, because the feature no longer exists in the app.
→ So, the test should be scrapped (deleted).
64
ACTIVITIES THAT MAKE UP TESTING
Test Maintenance
❖ Any new product version would have new features. It is important that as new features
get added to the product, new tests for those features also get added to the test suites.
Example
Old version of app: Only allows users to view products.
New version: Adds a feature to add products to wishlist.
New test case needed:
“Verify that a user can successfully add a product to the wishlist.”
65
Similarities between Code Development
& Test Development
❖ Requirements: Product requirements get finalized first; similarly, what needs
66
Similarities between Code Development
& Test Development
❖ Configuration Management: Test code, just like the program code, needs to go
❖ Debugging: Tests get debugged just as code gets debugged. Debugging a test involves
ensuring that the tests are coded and executed in the right way to produce the right
expected results.
69
Test Scheduling and Types of Tests
❖ The kind of testing that needs to be done depends upon the level or position that a
product is in.
❖ There are different types of tests that are done at different points of product
development life cycle.
❖ Each of these test types may require different skill sets, different profiles, and the
responsibility of the test activities would rest with different people.
70
•A developer accidentally creates a defect in the
shopping app (checkout works without a shipping
address).
•This defect is injected during coding.
•The QA team finds it during testing and reports it.
•The developer fixes it immediately.
71
Test Scheduling and Types of Tests
Different types of
Regression Black box
testing testing
testing done during
Product Life Cycle Installation Integration
testing testing
System
testing
72
White Box Testing
73
White Box Testing
Why and how is this type of testing is done?
❖ A software product accomplishes different functionality or options by
executing different paths through the code.
❖ In white box testing, the program is run with various test data that
exercise as many of the various paths in the source program as possible,
thereby testing as much of the functionality as possible.
❖ White box testing requires knowledge of source code of the product.
Either the developer (or someone elşe who can understand the source
code) looks at it and identifies the various paths through the program
code and designs test cases to cover as many of these paths as possible.
74
White Box Testing
Why and how is this type of testing is done?
Some means of widening the coverage of different paths through the program are:
❖ Tests that exercise the multiple conditions in a Boolean expression in various
combinations.
❖ Tests that exercise the THEN and ELSE parts of conditional statements.
❖ Tests that are within the various CASE conditions of a multi-way decision statement like the
SWITCH statement in C.
❖ Tests that take a loop construct from 0 to the maximum value expected in the loop
variable.
❖ Tests that exercise various error conditions by giving erroneous data.
❖ Tests that check the combinations of correct and incorrect values for input parameters.
75
White Box Testing
76
White Box Testing
What are the required skill sets?
❖ Design of white box tests are best done by the author of the program
himself as he is familiar with the programming language, program logic
and the various paths within a program.
78
White Box Testing
Common Challenges In White Box Testing
79
White Box Testing
Common Challenges In White Box Testing
80
3️⃣ Testing perspective challenge
Developers focus on code paths, not real-world usage patterns.
They may miss common or critical paths that users frequently
encounter.
Tests should be designed from an external user perspective, focusing
on:
Common usage paths
Critical paths / potential show stoppers
81
White Box Testing
Disadvantage of White Box Testing
82
Black Box Testing
❖ To bridge this important gap in white box testing we have the black box
testing.
83
Black Box Testing
84
Black Box Testing
85
Black Box Testing
86
Black Box Testing
Why and how is this type of testing
is done?
87
Black Box Testing
Why and how is this type of testing is done?
There are multiple approaches possible to design black box tests. Presented below is one
approach that is usually quite effective:
1. From the requirements specifications, the product is broken down into its salient
features or logical modules.
❖ Test designer is allowed to look only at the external behavior of the product and not at the
implementation in the source files.
2. For each feature, tests are designed for functionality, usability, limits, error handling
and interfaces.
88
Black Box Testing
Why and how is this type of testing is done?
Functionality testing:
❖ This type of tests exercises the basic functionality of the product from an external
perspective.
90
Black Box Testing
Functionality Testing
Test Data for Black Box Testing
❖ We’ll design test cases based on functional requirements, not internal logic.
❖ Techniques like Equivalence Partitioning and Boundary Value Analysis are used.
1. Equivalence Partitioning
91
Black Box Testing
Functionality Testing
Test Data for Black Box Testing
92
Black Box Testing
Functionality Testing
93
Black Box Testing
Functionality Testing
Test Data for Black Box Testing
94
Black Box Testing
Why and how is this type of testing is done?
Usability testing:
❖ Does the user interface match the GUI standards of the platform?
95
Black Box Testing
Why and how is this type of testing is done?
Limit testing: A product feature may have in-built hard limits e.g. maximum size of a
particular data item, maximum logical size of a file, maximum number of concurrent
users on the system, etc.
96
Black Box Testing
Why and how is this type of testing is done?
Error handling tests: It is important to validate product behavior not only for correct
data but also for incorrect data. The system should handle error conditions gracefully
and in a user friendly manner.
Interfaces testing: Each module (feature) should talk to the other modules (features)
interfaces through well defined interfaces.
❖ Interface testing is done to ensure that proper interfaces are passed across modules.
• Interfaces can be external, (like files) or internal, (like internal data structures).
• Since all the modules may not be available at the same time for testing, it is important to
document clearly what the interfaces are so that such interface test data can be generated
manually and the tests carried out.
98
Black Box Testing
Responsibilities and Skill Sets
❖ The people who design black box tests need not be totally familiar with
the programming language used during development.
99
Black Box Testing
Responsibilities and Skill Sets
❖ Hence the black box tests development team is usually different from the people
who actually develop the code.
100
Black Box Testing
Common Challenges in Black Box Testing
1. Ambiguous or unclear expected behavior:
❖ The success of black box testing is dictated by how well the external behavior of the
product is understood.
❖ When the development cycles are short, the requirement or design specifications may
leave some loose ends in terms of the expected product behavior.
• E.g. All the possible usage scenarios may not be documented.
• So the tester may have his own view of "what is the correct behavior", which may be distinct
from what the product was originally intended to do.
❖ To overcome this - tighten the Requirement and Design to describe unambiguously the
expected behavior in various scenarios.
101
Black Box Testing
Common Challenges in Black Box Testing
❖ The black box testing group is kept separate from the development group.
❖ As the testing group is distinct and their job is to find defects in the products produced
by the developers, there is a possibility of the two groups viewing each other as
adversaries.
102
Black Box Testing
Common Challenges in Black Box Testing
❖ The challenge (as in white box testing) lies in visualizing the common usage patterns,
prioritizing them and ensuring that they are tested.
103
Black Box Testing
Common Challenges in Black Box Testing
3. Relating common usage patterns and prioritizing:
❖ Why this Is Difficult?
❖ No access to source code: Unlike white box testing, we can't trace logic paths or
branches.
❖ High variability in user behavior: Different users may use the same feature in vastly
different ways.
❖ Resource constraints: Time, budget, and manpower limit how many test cases can
be executed.
104
Black Box Testing
Common Challenges in Black Box Testing
❖ To overcome this, testers must visualize usage patterns and prioritize based on
risk, frequency, and impact.
105
Black Box Testing
Common Challenges in Black Box Testing
106
Black Box Testing
Common Challenges in Black Box Testing
3. Relating common usage patterns and prioritizing:
The Solution: Strategic Prioritization
3. Error-Prone Areas
• Prioritize areas with a history of bugs or complexity.
• Example: Dynamic form validation or multi-step transactions.
4. Boundary and Edge Cases
• Use techniques like Equivalence Partitioning and Boundary Value Analysis to reduce
test cases while maximizing coverage.
5. User Personas and Journeys
107
Black Box Testing
Common Challenges in Black Box Testing
108
Black Box Testing
Example: Restaurant Management System
Tester might identify:
Prioritization Matrix
❖ Tester will focus his black box tests on the “Add new order” flow first, using real-world inputs
and expected outputs—without needing to know how the backend processes it.
109
White Box vs. Black Box Testing
Aspect White Box Testing Black Box Testing
Internal logic, code structure, and External behaviour and functional
Focus
control flow correctness
Requires access to and understanding No knowledge of internal code
Tester Knowledge
of source code required
Based on code paths, branches, Based on requirements,
Test Design Basis
loops, and conditions specifications, and expected outputs
Statement coverage, branch Equivalence partitioning, boundary
Techniques Used
coverage, path testing value analysis, error guessing
Typically developers or technically Typically QA engineers or functional
Who Performs It
skilled testers testers
To verify internal operations and logic To validate that the system meets
Purpose
correctness user expectations and requirements
Unit tests, integration tests with UI testing, system testing, acceptance
Examples 110
code-level assertions testing
White Box vs. Black Box Testing
Summary
❖ White box testing is like inspecting the engine of a car to ensure
every part works as designed.
❖ Black box testing is like driving the car to see if it performs as
expected, without knowing what’s under the hood.
111
Integration Testing
Why and how is this type of testing is done?
❖ The primary goal of integration testing is to identify defects in the interfaces and
interactions between these integrated modules.
112
Integration Testing
Why and how is this type of testing is done?
❖ In black box testing during the step of testing interfaces, all the interfaces may not be
available at the same time, interface data have to be generated manually for testing
purposes.
❖ When we come to Integration testing, the modules that are to be integrated are
available for testing. So, the manual test data is replaced by the data which is
generated automatically from the various modules.
113
Integration Testing
Why and how is this type of testing is done?
Sequence in which the modules can be integrated and tested depends upon the
following factors:
❖ Modules with maximum impact: Among the modules that are available, integrating
those with the maximum impact will detect the integration errors earlier.
114
Integration Testing
Why and how is this type of testing is done?
Reveals Interface Issues:
❖ It aims to expose errors related to data flow, parameter passing, and function calls
between modules, as well as potential compatibility issues.
Methods of Integration:
❖ Various strategies exist for integrating modules, including
• "Big Bang" (all at once)
• "Top-Down" (from higher-level modules downwards)
• "Bottom-Up" (from lower-level modules upwards)
• "Sandwich" or "Mixed" (combining top-down and bottom-up)
115
Integration Testing
Responsibilities and Skill Sets
Similarities with black box test development team:
❖ Both have good product knowledge from an external perspective test development team.
Both know the basic modules / features within the product.
116
Integration Testing
Common Challenges
❖ This requires someone who understands the external product functionality as well
as the internal units of integration. To find this combination of skill sets is not easy.
117
Integration Testing
Common Challenges
❖ Because of scheduling conflicts, these other modules might not be available. Thus,
integration testing may come to a standstill.
❖ In order to avoid this situation, one may have to, at times, proceed further with
development and defer integration testing.
118
Integration Testing
Common Challenges
❖ In integration testing, we are taking modules developed by different groups and putting
them together for testing. When a problem comes up, it is sometimes very difficult to
pin-point where the problem lies and who should take the corrective action.
119
Integration Testing
Common Challenges
4. Communication:
❖ In white box and black box testing, the testing is carried out pretty close to the point
of development as there are very few external dependencies.
120
Integration Testing
Common Challenges
4. Communication:
❖ Multiple Modules: Often developed by different teams (e.g., frontend, backend,
database).
❖ Timing Sensitivity: One module’s delay can block the entire integration test.
121
Integration Testing
Common Challenges
4. Communication:
What This Demands?
122
Integration Testing
Common Challenges
4. Communication:
Example: Billing System Integration: Suppose a tester is testing a billing engine that pulls data from:
❖ A customer database
❖ A transaction processor
❖ A tax calculation module
If the tax module isn’t ready, the integration test fails—not because of the billing logic, but due to a
dependency.
Resolving this requires:
• Fast communication between module owners
• Shared understanding of interface contracts (input, output, protocols, error handling)
• A test coordinator who tracks readiness and escalates blockers
123
System Testing
124
System Testing
Aspects
125
System Testing
Aspects
1. Load testing:
❖ Testing with a high number of concurrent users and ensuring that the system
does not break;
❖ Trying to pump in more data than what the network bandwidth or other similar
physical limits can handle.
126
System Testing
Aspects
2. Configuration testing: It is a type of non-functional testing that
validates how a software product performs across different hardware,
software, network, and system settings. It ensures compatibility,
stability, and performance under all supported configurations.
127
System Testing
Aspects
2. Configuration testing: Every product should have the specifications of
the hardware configurations that it runs under. Configuration testing
is a means of running the software product under various
combinations of these configurations.
128
System Testing
Aspects
2. Configuration testing:
129
System Testing
Aspects
2. Configuration testing:
130
System Testing
Aspects
3. Integrity testing: Regardless of the things that go wrong in the
environment, the product should not compromise the integrity of the
data it handles.
132
System Testing
Aspects
3. Integrity testing:
Core Objectives
133
System Testing
Aspects: Integrity testing
135
System Testing
Aspects
4. Inter-operability testing:
❖ In today's componentized world, a product would be expected to inter-operate with other
products, whether from the same vendor or from different vendors.
❖ While doing Inter-operability testing, the approach should be to specify which versions of
which products should interoperate with each other and test such combinations.
❖ Inter-operability testing usually becomes increasingly complex as the product matures (as
there would be more versions to test inter-operability) and increasingly expensive too
because of the number of combinations possible.
136
System Testing
Aspects
4. Inter-operability testing:
Why It’s Critical
❖ Modern systems are modular and distributed (think APIs, microservices, cloud
platforms).
139
System Testing
Aspects: Inter-operability testing
Example: Billing System Interoperability
Let’s say a billing engine must work with:
• Database: PostgreSQL 12, 13, 14
• Browser: Chrome, Firefox, Edge
• Payment Gateway: Stripe v3, Razorpay v2
• OS: Windows 10, Ubuntu 20.04
We need to test combinations like:
• Stripe v3 + PostgreSQL 14 + Chrome on Windows 10
• Razorpay v2 + PostgreSQL 12 + Firefox on Ubuntu
140
System Testing
Aspects: Inter-operability testing
Example: Billing System Interoperability
Each combination must be validated for:
❖ Data accuracy
❖ Transaction success
❖ UI rendering (It refers to how the user interface elements like buttons, forms, tables, etc. are visually
displayed and behave across different environments.)
❖ Security compliance
141
System Testing
Responsibilities and Skill Sets
❖ The skill sets of system testing encompass and transcend the skill sets of integration
testing.
❖ The added requirement is that in tests like load testing, the person developing and
running the tests must be thoroughly familiar with the nuts and bolts of the underlying
system software.
❖ For example, load testing has a significant dependency on the hardware configuration
and system tuning. Such skill sets are fairly niche and difficult to come by.
142
System Testing
Common Challenges
❖ Each customer's system could be different so, what constitutes a good system test
for one customer may be inappropriate for another customer.
143
System Testing
Common Challenges
144
System Testing
Common Challenges
145
System Testing
Common Challenges
4. Reproducibility:
❖ In software testing, reproducibility means the ability to consistently recreate a
defect or issue under the same conditions.
• Validating fixes
• Preventing regressions
146
System Testing
Common Challenges
4. Reproducibility:
❖ Most problems that show up during system testing do so because of a complex
combination of factors from the product, the software environment and the
hardware configuration.
147
System Testing
Common Challenges
5. Problem Identification:
❖ A natural consequence of the difficulty to reproduce results in the system tests is
that problem analysis and responsibility allocation becomes a more serious issue
than in the case of integration testing.
❖ Does the problem lie in the product or in the environment? Which should be
corrected? These are difficult questions with no easy answers.
149
System Testing
Common Challenges
5. Problem Identification: Why Reproducibility Is Hard in System & Integration
Testing?
Unlike unit testing, where inputs/outputs are tightly controlled, system/integration testing involve:
❖ Multiple modules interacting
❖ Variable environments (OS, drivers, memory, network)
❖ Timing-sensitive operations (race conditions, concurrency)
❖ External dependencies (APIs, databases, hardware)
This leads to non-deterministic behavior, where a bug might appear once and vanish on next run.
150
Integration Testing vs System Testing
Aspect Integration Testing System Testing
❖ System Testing ensures that the final product behaves as expected in real-
world scenarios, making it essential for stakeholder validation and release
readiness.
152
Installation Testing
153
Installation Testing
It’s often called implementation testing, and it’s typically performed in the final stages
before release or deployment.
154
Installation Testing
Key Objectives
❖ Ensure correct packaging of files, dependencies, and configurations.
❖ Packaging can be the creation of a master copy in a media like a CD or the creation and
publishing of a location (ftp site / URL) from where the user can download/install the
product.
❖ The packaging has to be easy to use, customizable and conforming to any platform or
product standards.
156
Installation Testing
Steps to be followed :Packaging
Reproducibility-friendly Matrix
157
Installation Testing
Steps to be followed
2. Documenting:
❖ Accompanying the product would be some documentation about how to install
the package.
158
Installation Testing
Steps to be followed: Documenting
Reproducibility-friendly Matrix
159
Installation Testing
Steps to be followed
3. Installing: The person performing the installation tests should get the media and the
documentation listed above, follow the instructions given in the documentation and
ensure that:
❖ The screen shots and the defaults shown in the documentation are accurate.
❖ There is a match between the documentation and the actual behavior of options
chosen, installation flow and the results observed.
❖ If erroneous inputs are given, the installation system handles the errors gracefully
and gives appropriate error messages.
❖ No extraneous or repetitive information is sought from the user unnecessarily.
160
Installation Testing
Steps to be followed : Installing
Reproducibility-friendly Matrix
161
Installation Testing
Steps to be followed
4. Verifying:
❖ Every installation packaging should have some means of verifying that the
162
Installation Testing
Steps to be followed : Verifying
Reproducibility-friendly Matrix
163
Regression Testing
❖ Regression Testing is a type of software testing that ensures that the new
changes or updates to the code haven’t unintentionally broken existing
functionality.
164
Regression Testing
❖ It is obvious that from one cycle to the next, the older defects should not
re-surface.
165
Regression Testing
Example
❖ In the example above, if the tests for fixes of D1/D2/D3 would have also
been run at the end of the second cycle, then a regress of D1/D2/D3
would have been captured.
168
Regression Testing
❖ Regression test can be defined as tests that are run to verify that
problems do not resurface tests are (or then regress).
169
Regression Testing
What tests should constitute regression tests?
❖ Tests that exercise those product areas that are historically defect prone.
170
Regression Testing
❖ Regression tests are usually designed to run automatically every time a product is built.
❖ The choice of what to test should be done judiciously, balancing the knowledge of the
internal code and design with the common external usage scenarios.
❖ It is important to keep the size of these tests within manageable limits so that they can be
completed in reasonable time.
❖ Keep the list of regression tests updated by deleting unwanted tests and by adding tests for
the new features periodically.
171
Regression Testing
Strategy Overview
Purpose:
❖Ensure that new changes (bug fixes, enhancements, refactoring) do
not break existing functionality.
172
Regression Testing
Strategy Overview
Key Principles
Principle Description
Balanced Design Combine internal code awareness with external usage patterns.
Purpose:
❖ To validate that the product meets the customer’s expectations and contractual
requirements in their specific environment, using their data and performance
benchmarks.
174
Acceptance Testing
175
Acceptance Testing
Key Characteristics
Attribute Description
Customer-defined Test cases are specified by the customer during requirement gathering.
Environment-
Tests simulate the customer’s actual usage conditions.
specific
Data-driven Uses customer-provided datasets to validate functionality.
Performance-bound May include load(users) tests to validate response time and throughput.
176
Acceptance Testing
Acceptance Testing Workflow
Step Activity Stakeholder Involvement
1 Requirements finalized Customer, Business Analyst
2 Acceptance test cases documented QA Lead, Customer
3 Environment setup (mirroring customer) DevOps, QA
4 Test data provided by customer Customer
5 Functional and performance tests executed QA Team
6 Results validated against expected output QA + Customer
7 Sign-off or feedback Customer
177
Ordered Testing Flow in SDLC
Phase Testing Type Purpose
Development White Box Testing Tests internal logic, control flow, and code paths (unit-level).
System Testing System Testing Tests the complete system as a whole against requirements.
Deployment Prep Installation Testing Verifies correct installation, configuration, and environment setup.
Post-Changes Regression Testing Ensures new changes haven’t broken existing functionality.
Final Validation Acceptance Testing Confirms system meets business needs and is ready for release.
178
Ordered Testing Flow in SDLC
Visual Sequence
Note: Black box testing is a technique, not a phase—so it’s applied during System,
Acceptance, and even Integration testing depending on context.
179
People Issues in Testing
❖ Out of all the life cycle activities in software development, testing activity faces
the highest number of people related issues.
❖ Generally, employees do not want to be in the role of a tester.
❖ There is a perception that testing is a mundane job and does not require any
special skills.
❖ Given a choice, most people prefer to be in development rather than in testing
180
People Issues in Testing
Issue Category Description Impact
Educational Gaps Testing is rarely taught formally in Leads to undervaluing testing as a skilled
universities or tech programs. discipline.
Lack of Visibility Testing receives less attention than design Fewer role models, less community
or development in forums and media. engagement, lower prestige.
Management Bias Leadership often prioritizes development Testers feel undervalued; defect reports
over testing. may be ignored or deprioritized.
Inaction on Defects Management may not act decisively on Erodes trust, reduces motivation, and
issues raised by testers. weakens quality culture.
Career Testing is seen as a temporary role before High turnover, low retention, and lack of
Misconceptions moving into development. long-term investment in QA. 181
People Issues in Testing
182
People Issues in Testing
Contending with Negative Perceptions of Testing
Core Principles for Organizational Change
Principle Actionable Implementation Impact
Align compensation, awards, and visibility for
Parity in Recognition Builds morale and signals equal value.
testers with developers.
Mandate defect resolution before release; Reinforces the importance of testing
Defect Accountability
celebrate defect discovery as a win for quality. outcomes.
Balanced Talent Assign top engineers to testing roles, not just
Elevates testing’s technical credibility.
Allocation development.
Create formal growth ladders: QA Analyst →
Encourages long-term commitment to
Career Pathing Automation Lead → Test Architect → QA
testing.
Strategist.
Rotate developers into testing roles Fosters empathy, cross-functional skill,
Role Rotation
periodically. and respect.
Train testers in communication, conflict Improves collaboration and defect
Soft Skill Investment 183
resolution and stakeholder engagement. reporting clarity.
People Issues in Testing
Soft Skills That Shift the Narrative
184
Management Structures for Testing
in Global Teams
185
Management Structures for Testing
in Global Teams
❖ In order to organize the
Integrated Testing Team Model
testing and development
teams to minimize conflicts Dedicated Testing Team Model
presented.
186
Management Structures for Testing
in Global Teams
Integrated Testing Team Model
187
Management Structures for Testing
in Global Teams
Integrated Testing Team Model: Advantages
Benefit Description
Resource Multiplexing Project Manager can multiplex developers and testers, improving
utilization
Load Balancing Development-heavy early stages and test-heavy later stages are
smoothed out
Reduced Conflict Shared goals and daily interaction foster empathy and alignment
188
Management Structures for Testing in Global Teams
Integrated Testing Team Model: Disadvantages
Concern Description
Defect Minimization Bias Project Manager focused on delivery may downplay defects to meet
deadlines.
Loss of Critical Perspective When the same people test what they build, different perspectives may
not come into the picture.
Skill Set Mismatch Testing requires analytical, investigative, and adversarial thinking—skills
not always aligned with development.
Testing Becomes Validation Instead of finding defects, testing may devolve into proving that the
product “works.”
Reduced Checks and Balances Without independent QA, accountability and objectivity may suffer.
Managerial Conflict of Interest A single manager may prioritize delivery over quality, especially under
189
pressure.
Management Structures for Testing
in Global Teams
Dedicated Testing Team Model
190
Management Structures for Testing
in Global Teams
Dedicated Testing Team Model
❑ The testing team can further be broken down into sub-teams and each sub-
resources who are assigned the testing of different products on a need basis.
191
Management Structures for Testing in Global Teams
Dedicated Testing Team Model- Disadvantages
Disadvantage Description
1. Self-contained locations
193
Management Structures for Testing in Global Teams
Testing Teams in Geographically Distributed Product Teams
Self-contained locations
Feature Description
Component-Based Product is split into distinct components, each
Division assigned to a specific location.
195
Management Structures for Testing in Global Teams
Testing Teams in Geographically Distributed Product Teams
Cross location testing: Advantages
Advantage Explanation
196
Management Structures for Testing in Global Teams
Testing Teams in Geographically Distributed Product Teams
Cross location testing: Disdvantages
Disadvantage Explanation
Excessive Need for Distributed teams require more structured and frequent
Communication communication to coordinate effectively.
Reduced Face-to-Face Co-located teams benefit from spontaneous discussions and
Interaction quicker issue resolution, which is harder to replicate remotely.
Impact on Throughput Lack of direct interaction may slow down problem-solving and
and Speed reduce overall efficiency.
197
Management Structures for Testing in Global
Teams
Testing Teams in Geographically Distributed Product
Teams
❖ Another possible variation to the above models is a Globally Dedicated testing
team.
❖ In this testing competency centers are created by designating a particular
location for testing.
❖ This is very similar to the dedicated testing team model.
198
Management Structures for Testing in Global
Teams
Testing Teams in Geographically Distributed Product
Teams
Feature Explanation
Designated Testing A specific site is assigned as the central hub for testing activities
Location across the product.
Similarity to Dedicated Mirrors the structure of dedicated testing teams, but adapted
Testing Teams for global distribution.
Enables round-the-clock productivity: products developed
Advantage: Exploitation of during day time in one location can be tested during the
Time Zone Differences subsequent hours in another location, maximizing the 24-hour
199
cycle.
Management Structures for Testing in Global
Teams
Hydrid Models
200
Management Structures for Testing in Global
Teams
Hydrid Models: Advantage
Aspect Explanation
Testing responsibilities are aligned with
Proximity to Defect Injection Points development layers, enabling earlier defect
detection.
Each testing layer(white-box, black-box,
integration) is positioned close to its
Strategic Placement of Testing Teams
relevant development context, improving
efficiency and accountability.
201
Management Structures for Testing in Global
Teams
Hydrid Models: Practical Interpretation
Why This Improves Efficiency &
Testing Type Aligned With
Accountability
They know the internal logic best, so
White Box Testing Developers writing the code
they can catch logic errors early.
❖ The primary purpose of testing is to uncover the presence of defects and thereafter,
to feed this information back into the system in an effort to minimize recurrence of
the defects.
❖ The purpose of metrics in the testing phase is to transform testing from a subjective
activity into a measurable, improvable, and accountable process.
203
Metrics for Testing Phase
Core Metrics for the Testing Phase
Percentage of code Higher coverage reduces the Use coverage reports to identify
Code
executed during risk of untested logic and blind spots and refine
Coverage
testing unexpected behaviour unit/integration test suites
❖ Reproducibility & Attribution: These metrics help build a defensible defect attribution
matrix—who missed what, and why.
❖ Stakeholder Communication: They offer concrete data to support escalation
workflows and justify testing investments.
❖ Organizational Learning: Recurring defects can be used as case studies to redesign
testing protocols and improve team accountability.
206
Syllabus Module 4:
Project Management in the Testing and
Maintenance Phase
• Project Management in the Testing phase: Introduction, what is testing? what
are the activities that makeup testing? test scheduling and types of tests, people
issue in testing, management structures for testing in global teams, metrics for
testing phase.
• Project Management in the Maintenance Phase: Introduction, Activities during
Maintenance Phase, management issues during Maintenance Phase,
Configuration management during Maintenance Phase, skill sets for people in
the maintenance phase.
207
Project Management in the
Maintenance Phase
What is the Maintenance Phase?
209
What Maintenance Phase deals with?
Activity Purpose
Implement Fixes or Enhancements Modify the product to address defects or improve behaviour
210
Lifecycle Transition:
Maintenance → Obsolescence
Progression takes place in the software product lifecycle, where the maintenance phase
transitions into the obsolescence phase.
Phase Description Customer Impact
212
Activities during Maintenance Phase
Activity Purpose
213
Central Role of the Problem Repository
❖ The Problem Repository acts as the single source of truth for all
reported and resolved issues.
214
Central Role of the Problem Repository
Key Data Stored per Problem Record
Field Description
Unique Identifier Distinct ID for tracking and referencing the issue
Customer Info Who reported the issue
Platform & Environment Where the issue occurred (OS, hardware, configuration)
Reproduction Test Case Steps or scripts to reproduce and validate the issue
Root Cause Analysis Technical insight into why the issue occurred
Fix Details What was changed to resolve the issue
Fix Location Where the fix can be accessed or deployed from
215
Central Role of the Problem Repository
Access Control:
❖ Not all fields are visible to all stakeholders.
❖ For example, fix implementation details are typically restricted to the
development team to protect IP and maintain security.
216
Activities during Maintenance Phase
Problem Reporting
217
Activities during Maintenance Phase
Problem Reporting
Initial Contact: The Support Call
➢ Customers reach out via phone, email, or internet.
➢ The Customer Support Group/Call center (not the development team)
handles these calls.
A Support Analyst is assigned to:
❖ Verify caller authorization (e.g., valid license, role in organization).
❖ Gather detailed information about the issue.
218
Activities during Maintenance Phase
Problem Reporting
Information Collected by the Support Analyst
What is the product that is giving the problem? Identify the scope of the issue
219
Activities during Maintenance Phase
Problem Reporting
Initial Assessment
❖ If the issue is a user error, the analyst:
• Provides corrective guidance
• Updates the Problem Repository with the report and resolution
• Flags recurring user errors for management review (may indicate poor documentation or
product design)
❖ If the issue is not a user error, the analyst checks the Problem Repository to see if:
• A similar issue with a fix exists → fix is distributed
• A known issue without a fix (Known problem) exists → workaround is offered and
repository updated.
oThis update is necessary to prioritise the fixing of these known problems. 220
Activities during Maintenance Phase
Problem Reporting
Handling New Problems
If the issue is not previously reported, it is treated as a new problem:
1. Criticality is evaluated based on business impact:
❖ Example: Invoicing failure = high severity (show stopper)
❖ Misaligned report field = low severity
2. A new record is created in the Problem Repository:
❖ Includes all collected details
❖ Assigns a unique reference number
❖ Logs severity/priority to guide resolution efforts
221
Activities during Maintenance Phase
Activities in Problem Reporting
222
Activities during Maintenance Phase
Problem Resolution
223
Activities during Maintenance Phase
Problem Resolution
Step-by-Step Breakdown
1. Criticality Analysis
❖ The development team reviews the problem’s impact on the customer’s
business.
❖ Severity (entered by the support analyst) helps prioritize which issues to
address first—showstoppers take precedence.
2. Developer Assignment
❖ A single developer is assigned to own and track the resolution process.
224
Activities during Maintenance Phase
Problem Resolution
Step-by-Step Breakdown
3. Problem Reproduction
❖ The developer attempts to recreate the issue using the environment and test
case described in the problem repository.
❖ Accurate reproduction is essential to identify the root cause.
225
Activities during Maintenance Phase
Problem Resolution
Step-by-Step Breakdown
4. Root Cause Analysis & Fix
❖ If reproducible:
❖ The developer locates the source code files responsible.
❖ Implements the fix and verifies that:
• The issue is resolved
• No other functionality is broken
226
Activities during Maintenance Phase
Problem Resolution
Step-by-Step Breakdown
4. Root Cause Analysis & Fix
❖ Follows formal change control processes:
• Authorization
• Peer review
• Execution
• Testing
• Re-baselining
227
Activities during Maintenance Phase
Problem Resolution
Step-by-Step Breakdown
5. Non-Reproducible Issues
❖ If the issue cannot be reproduced:
➢ The developer collaborates with the support analyst and possibly the
customer.
➢ Techniques include:
• Phone walkthroughs
• Remote diagnostics
• On-site visits
228
Activities during Maintenance Phase
Problem Resolution
Step-by-Step Breakdown
6. Repository Updates
❖ Throughout the process, the problem repository is updated with:
• Status changes
• Diagnostic findings
• Fix progress
• Any unresolved issues
229
Activities during Maintenance Phase
Activities in Problem Resolution
230
Activities during Maintenance Phase
Problem Resolution
Outcome
❖ Once the fix is implemented and validated, the product is rebuilt and
the solution is ready for distribution to affected customers,
transitioning into the Solution Distribution phase.
231
Activities during Maintenance Phase
Solution Distribution
232
Activities during Maintenance Phase
Solution Distribution
Key Factors Influencing Fix Distribution Timing
❖ Severity of the Issue
• Showstopper: Immediate dissemination is critical.
• Minor Issue: Prefer bundling into scheduled patch releases.
❖ Customer Considerations:
• Installing individual minor fixes is inefficient.
• Bundled patches reduce operational overhead.
233
Activities during Maintenance Phase
Solution Distribution
Key Factors Influencing Fix Distribution Timing
❖ Supplier Considerations:
• Frequent small releases strain resources.
• Multiple configurations increase support complexity.
❖ Best Practices:
• Accumulate minor fixes into intermediate cumulative releases.
• Maintain a problem repository with fix availability details.
• Ensure support analysts are informed to relay updates to customers.
• Consider proactive distribution if issue is severe and likely to affect others.
234
Activities during Maintenance Phase
Solution Distribution
Fix Distribution Decision Matrix
Criteria Immediate Fix Bundled Patch Release
Severity: Showstopper Yes Not preferred
Severity: Minor Not preferred Yes
Customer Impact: High Yes Not preferred
Customer Impact: Low Not preferred Yes
Resource Cost to Supplier High Lower
Configuration Complexity Increases Controlled
Risk of Issue Affecting Others Distribute widely Case-by-case
235
Activities during Maintenance Phase
Proactive Defect Prevention
236
Activities during Maintenance Phase
Proactive Defect Prevention
Key Strategies for Prevention
Analysing common user errors and updating documentation as necessary
Trigger: High volume of user errors classified as misunderstandings.
Action: Audit manuals, tooltips, and help content for ambiguity.
Outcome: Reduces support calls and improves user autonomy.
Analysing common user errors and changing the product as necessary
Trigger: Repeated user errors despite clear documentation.
Action: Re-evaluate product design assumptions; align with user expectations.
Outcome: Enhances usability and reduces friction.
237
Activities during Maintenance Phase
Proactive Defect Prevention
Key Strategies for Prevention
Publishing common user errors and work-arounds on a bulletin board or a website
Trigger: Frequently reported but easily resolvable issues.
Action: Publish FAQs, workarounds, and error resolutions on a public portal.
Outcome: Cuts support costs and improves customer satisfaction.
Performing root cause analysis of problem areas and Code Refactoring
Trigger: High defect density in specific modules.
Action: Conduct root cause analysis; refactor or redesign problematic areas.
Outcome: Improves code maintainability and long-term stability.
238
Activities during Maintenance Phase
Proactive Defect Prevention
Key Strategies for Prevention
239
Activities during Maintenance Phase
Key Strategies for Prevention
Trigger Condition Recommended Action Impact Area Stakeholder Benefit
High volume of user Update documentation UX / Support Reduces support load,
errors improves clarity
Persistent user errors Modify product behavior Design / Aligns product with user
despite documentation Requirements expectations
Frequently reported Publish self-service Support / Customer Enables faster
minor issues workarounds Portal resolution, lowers cost
High defect density in Refactor or re-architect Engineering / QA Improves
specific modules code maintainability and
stability
Recurring bugs in Expand regression test QA / Release Prevents regressions,
critical workflows coverage Management boosts confidence
240
Management Issues During the
Maintenance Phase
241
Management Issues During the
Maintenance Phase
242
Management Issues During the
Maintenance Phase
243
Management Issues During the
Maintenance Phase
244
Management Issues During the
Maintenance Phase
245
Management Issues During the
Maintenance Phase
246
Management Issues During the
Maintenance Phase
247
Management Issues During the
Maintenance Phase
249
Management Issues During the
Maintenance Phase
250
Management Issues During the
Maintenance Phase
251
Management Issues During the
Maintenance Phase
252
Configuration Management During the
Maintenance Phase
253
Configuration Management During the
Maintenance Phase
254
Configuration Management During the
Maintenance Phase
255
Configuration Management During the
Maintenance Phase
256
Configuration Management During the
Maintenance Phase
4. Regression testing for fixes:
❖ SCM system at the development site includes:
➢ Source files
➢ Test cases
➢ Test results
❖ For each fix:
1. Design a test case to reproduce the issue and verify the fix.
2. Re-baseline the source changes.
3. Update the configuration repository and test procedures to include the new test.
257
Configuration Management During the
Maintenance Phase
258
Skill Sets for People in the
Maintenance Phase
1. Why developers are not the first point of contact?
❖ Developers are focused on building new products and versions.
❖ They may not be available for immediate customer support.
❖ Developers may show bias when diagnosing issues in their own code.
❖ Their core strength lies in deep technical development, not customer-facing
communication.
❖ Handling frustrated customers requires emotional intelligence and objectivity—
skills not always emphasized in development roles.
259
Skill Sets for People in the
Maintenance Phase
2. Key skill sets for Support Analysts
Strong understanding of the product’s external functionality.
Excellent communication skills to extract specific details from customers.
Ability to take a balanced, objective view—considering both customer and product
perspectives.
Skill in identifying patterns and abstracting test cases from customer problem
descriptions.
Good follow-through attitude to ensure all stakeholders stay informed and aligned.
Soft skills are critical for Support Analysts to succeed in this role.
260
Skill Sets for People in the
Maintenance Phase
3. Challenges for development staff in maintenance
❖ Often required to understand and modify someone else’s code.
❖ Maintenance is reactive, unlike planned product development.
❖ Workload is unpredictable due to the nature of incoming issues.
❖ Success depends on:
✓ Flexibility
✓ Quick responsiveness
✓ Adaptability to changing problem contexts
261
262