0% found this document useful (0 votes)
54 views165 pages

SQT QB Final C

Uploaded by

monishablossom1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views165 pages

SQT QB Final C

Uploaded by

monishablossom1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 165

lOMoARcPSD|18464566

SQT QB Final C

Master of Computer Applications (Anna University)

Scan to open on Studocu

Studocu is not sponsored or endorsed by any college or university


Downloaded by Monisha Vinoth ([email protected])
lOMoARcPSD|18464566

MC4026 SOFTWARE QUALITY AND TESTING


UNIT I
Part-A
1.What is software quality?
software quality refers to two related but distinct notions:
• Software's functional quality reflects how well it complies with or conforms to a given design,
based on functional requirements or specifications. That attribute can also be described as the
fitness for purpose of a piece of software or how it compares to competitors in the marketplace
as a worthwhile product. It is the degree to which the correct software was produced.
2.What is meant by role of testing?
Software testing is the process of evaluating and verifying that a software product or
application does what it is supposed to do123. The role of testing in software development is
to prevent bugs, reduce development costs and improve performance1. Testing helps
to discover defects in software and determine the reliability of the software4. By applying
testing practices consistently throughout the software development life cycle process, developers
can ensure the detection of bugs or errors at the right time, which further ensures delay of any
kind of risk in terms of time and cost5
3.Give a short notes on verification and validation?

Verification and validation (V&V) are processes of checking that a software system meets
specifications and requirements and fulfills its intended purpose123. They are also known
as software quality control123. Verification targets the software's quality, architecture, design,
database, etc., and is done by the QA team before the software is built34. Validation targets the
software's functionality, usability, and customer's requirements, and is done by the testing team
with the QA team after the software is built and before the production release345.

4.Shortly explain about Failure,Error,Fault and Defect?


The main terms related to error, fault, and failure in software testing are12345:
 Error: A mistake made in the code by a human145.
 Fault: A state or manifestation of an error in the software that causes it to deviate from its
expected outcome or specification1234.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Defect: A deviation or departure of a quality characteristic from its specified value that
results in a product not satisfying its normal usage requirements24.
 Bug: A defect recognized by the development team2.
 Failure: A transition from correct to incorrect service delivery or a difference from the
expected result

5.Write a short notes on The notion of software reliability?


Software reliability is the probability of failure-free operation of a computer program for a
specified period in a specified environment123. It is a customer-oriented view of software
quality and relates to operation rather than design of the program1. The key elements of the
definition include probability of failure-free operation, length of time of failure-free operation
and the given execution environment2. Software reliability starts with many faults in the system
when first created, but after testing and debugging, it enters a useful life cycle3.
6.What is objectives of testing?
Software Testing has different goals and objectives.The major objectives of Software testing
are as follows:
 Finding defects which may get created by the programmer while developing the software.
 Gaining confidence in and providing information about the level of quality.
 To prevent defects.
 To make sure that the end result meets the business and user requirements.
 To ensure that it satisfies the BRS that is Business Requirement Specification and SRS
that is System Requirement Specifications.

7.What is meant by test case?


A test case is a set of conditions or variables under which a tester determines whether the
software satisfies requirements and functions properly1234. A test case consists of
preconditions, procedures, expected results and postconditions14. A test case is a single
executable test that guides the tester through the steps of the test2. A test case is developed for a
specific test scenario and verifies compliance against a specific requirement34.
8.Give a short notes on expected outcome?
The expected outcome in software testing is the ideal result that should be achieved once a
test case has been executed. Results refer to displayed textual or graphical data, database
changes, state changes, links, data transmission, etc.
9.What is the concept of complete testing?
Complete testing is a test approach in which the test suite comprises all combinations of
input values and preconditions12. Testers use test plans, test cases, or test scenarios to test
software to ensure the completeness of testing3. Manual testing also includes exploratory testing,
as testers explore the software to identify errors in it3.
10.What is meant by central issue in testing?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

1. Inadequate schedule of testing:


2. Insufficient testing environment and tools:
3. Wrong testing mindset
4. Testing lessons are often ignored
5. Poor integration of testing and engineering processes

11.What is quality assurance?


QA is a systematic process that aims to prevent defects in the software development process. It
involves defining and implementing processes and standards to ensure that software is developed
correctly from the beginning.
12.What is Quality control?
QC involves activities and techniques used to identify and fix defects in a software product after
it has been developed. This includes testing, code reviews, and inspections.
13.What is Defect?
A defect, also known as a bug or issue, is any deviation from the desired behavior of the
software. Defects can lead to software failures and impact the user experience.
14.What is quality attributes?
Quality attributes, also known as non-functional requirements, are characteristics that describe
the overall quality of a software product. Common quality attributes include reliability,
performance, scalability, security, and usability.
15.What is testing?
Testing is a fundamental activity in software quality. It involves executing the software to
identify defects and ensure that it behaves as expected. Testing can encompass various levels,
including unit testing, integration testing, system testing, and user acceptance testing.
16.What is SDLC?
The SDLC is a structured process that defines the stages and activities involved in developing
software. It typically includes requirements gathering, design, development,testing,deployment
and maintenance.
17.What is quality standards and models?
Quality standards, such as ISO 9001, and quality models, like the Capability Maturity Model
Integration (CMMI) and ISO/IEC 25010 (formerly ISO/IEC 9126), provide guidelines and
frameworks for achieving and assessing software quality.
18.What is code review?
Code review is the process of examining source code to identify defects, enforce coding
standards, and improve the overall quality of the code.
19.what is continuous integration and continuous delivery?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

CI/CD practices involve automating the integration, testing, and deployment of code changes,
ensuring that software is continually built, tested, and delivered with high quality.
20.What is user experience (UX) design?
UX design focuses on creating software that provides a positive and user-friendly experience. It
involves considering factors like usability, accessibility, and user satisfaction.

Part-B
1.Describe about White box and Black box testing?
Software Testing can be majorly classified into two categories:

1. Black Box Testing is a software testing method in which the internal


structure/design/implementation of the item being tested is not known to the tester. Only
the external design and structure are tested.
2. White Box Testing is a software testing method in which the internal
structure/design/implementation of the item being tested is known to the
tester. Implementation and impact of the code are tested.

Black box testing and white box testing are two different approaches to software testing,
and their differences are as follows:

Black box testing is a testing technique in which the internal workings of the software are not
known to the tester. The tester only focuses on the input and output of the software. Whereas,
White box testing is a testing technique in which the tester has knowledge of the internal
workings of the software, and can test individual code snippets, algorithms and methods.
Testing objectives: Black box testing is mainly focused on testing the functionality of the
software, ensuring that it meets the requirements and specifications. White box testing is
mainly focused on ensuring that the internal code of the software is correct and efficient.
Knowledge level: Black box testing does not require any knowledge of the internal workings
of the software, and can be performed by testers who are not familiar with programming
languages. White box testing requires knowledge of programming languages, software
architecture and design patterns.
Testing methods: Black box testing uses methods like equivalence partitioning, boundary
value analysis, and error guessing to create test cases. Whereas, white box testing uses methods
like control flow testing, data flow testing and statement coverage.
Scope: Black box testing is generally used for testing the software at the functional level.
White box testing is used for testing the software at the unit level, integration level and system
level.
Advantages and disadvantages:
Black box testing is easy to use, requires no programming knowledge and is effective in
detecting functional issues. However, it may miss some important internal defects that are not
related to functionality. White box testing is effective in detecting internal defects, and ensures
that the code is efficient and maintainable. However, it requires programming knowledge and
can be time-consuming.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

In conclusion, both black box testing and white box testing are important for software testing,
and the choice of approach depends on the testing objectives, the testing stage, and the
available resources.
Differences between Black Box Testing vs White Box Testing:
Black Box Testing White Box Testing

It is a way of testing the software in which the


It is a way of software testing in which the
tester has knowledge about the internal
internal structure or the program or the code is
structure or the code or the program of the
hidden and nothing is known about it.
software.

Implementation of code is not needed for Code implementation is necessary for white
black box testing. box testing.

It is mostly done by software testers. It is mostly done by software developers.

No knowledge of implementation is needed. Knowledge of implementation is required.

It can be referred to as outer or external


It is the inner or the internal software testing.
software testing.

It is a functional test of the software. It is a structural test of the software.

This testing can be initiated based on the This type of testing of software is started after a
requirement specifications document. detail design document.

It is mandatory to have knowledge of


No knowledge of programming is required.
programming.

It is the behavior testing of the software. It is the logic testing of the software.

It is applicable to the higher levels of testing It is generally applicable to the lower levels of
of software. software testing.

It is also called closed testing. It is also called as clear box testing.

It is least time consuming. It is most time consuming.

It is not suitable or preferred for algorithm


It is suitable for algorithm testing.
testing.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Black Box Testing White Box Testing

Can be done by trial and error ways and Data domains along with inner or internal
methods. boundaries can be better tested.

Example: Search something on google by


Example: By input to check and verify loops
using keywords

Black-box test design techniques-


White-box test design techniques-
 Decision table testing
 Control flow testing
 All-pairs testing
 Data flow testing
 Equivalence partitioning
 Branch testing
 Error guessing

Types of Black Box Testing: Types of White Box Testing:


 Functional Testing  Path Testing
 Non-functional testing  Loop Testing
 Regression Testing  Condition testing

It is less exhaustive as compared to white box It is comparatively more exhaustive than black
testing. box testing.

2.Discuss briefly about test planning and design?

Test plan
A test plan often describes a document that identifies the quality assurance team's projects
schedule as well as various tasks that they will be taking on. According to Software Testing Help,
this deliverable often includes all activities in the project as well as defines the scope, roles,
risks, entry and exit criteria, test objectives and more. A test plan can also include a test strategy,
which outlines the testing approach, and gives generic details for teams to follow. While a test
plan gives specific responsibilities to team members, the test strategy ensures that anyone is able
to execute the tests, aligning with agile practices.

It's important to note that setting up the test environment is also part of test planning. According
to InformIT contributor Elfriede Dustin, installing hardware, software and network resources,
integrating testing assets, refining test databases and creating test bed scripts will all be a part of

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

this phase. In this way, organizations will be sure that they have the tools on hand to support the
test environment and create quality projects.

Test design
The test design revolves around tests themselves, including how many will need to be performed,
the test conditions and ways that testing will be approached. According to the ISTQB blog, test
design also involves creating and writing test suites for testing a software, but will require
specificity and detailed input. After choosing the input value, QA teams can then determine what
the expected result would be and document it as part of the test case. Doing so will help give
qualifications for passing and failing tests, allowing QA to quickly mitigate errors and refine
their projects to achieve overarching goals.

"Much like a software development effort, the test program must be mapped out and consciously
designed to ensure that test activities performed represent the most efficient and effective tests
for the system under test," Dustin wrote. "Test program resources are limited, yet ways of testing
the system are endless. A test design is developed to portray the test effort, in order to give
project and test personnel a mental framework on the boundary and scope of the test program."

Although there are a number of terms to understand in software development, test planning and
test design are two critical assets that must be fully utilized. By leveraging an enterprise test
management tool, organizations can enact their test design, prioritize their test cases and
collaborate effectively.

3.Explain about monitoring and measuring test execution?


Test Monitoring and Test Control is basically a management activity. Test Monitoring is a
process of evaluating and providing feedback on the “currently in progress” testing phase. Test
Control is an activity of guiding and taking corrective action based on some metrics or
information to improve efficiency and quality.
Test Monitoring activity includes:
1. Providing feedback to the team and the other concerned stakeholders about the progress
of the testing efforts.
2. Broadcasting the results of testing performed, to the associated members.
3. Finding and tracking the Test Metrics.
4. Planning and Estimation, for deciding the future course of action, based on the metrics
calculated.
Points 1 and 2 basically talk about Test Reporting, which is an important part of Test Monitoring.
Reports should be precise and should avoid “long stories”. It is important here to understand that
the content of the report differs for every stakeholder.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Points 3 and 4 talk about the metrics. The following metrics can be used for Test
Monitoring:
1. Test Coverage Metric
2. Test Execution Metrics (Number of test cases pass, fail, blocked, on hold)
3. Defect Metrics
4. Requirement Traceability Metrics
5. Miscellaneous metrics like level of confidence of testers, date milestones, cost, schedule,
and turnaround time.
Test Control involves guiding and taking corrective measures activity, based on the results
of Test Monitoring. Test Control examples include:
1. Prioritizing the Testing efforts
2. Revisiting the Test schedules and Dates
3. Reorganizing the Test environment
4. Re prioritizing the Test cases/Conditions
Test Monitoring and Control go hand in hand. Being primarily a manager’s activity, a Test
Analyst contributes to this activity by gathering and calculating the metrics which will be
eventually used for monitoring and control.

4.What is test tools and automation?


There are two main types of software testing tools: functional testing tools and non-functional
tools1. Functional testing tools include Testiny, Selenium, and Appium12. Non-functional tools
include SauceLabs and JMeter1. TestComplete and LambdaTest are two popular automation
testing tools for desktop, mobile, and web applications3. TestComplete supports a wide range of
applications and allows for regression, parallel, and cross-browser testing3. LambdaTest allows
for both manual and automated cross-browser testing on a combination of 2000+ desktop and
mobile browsers3. Selenium has several components, including Selenium IDE, Selenium Client
API, Selenium Remote Control, Selenium WebDriver, and Selenium Grid2.
An automation testing tool is a piece of software that lets you define testing tasks and then
takes over to perform the tests for you. Ideally, this happens with minimal human oversight.
There is a wide range of automation testing tools to test across multiple platforms, including
smartphones, mobile devices, and desktop computers. Through testing automation,
performance testing can run without human intervention, which provides the ability to test
code 24 hours a day if needed, speeding up the test execution process.
But that’s not the only thing automation testing tools can do. Let’s take a closer look at why
using an automated testing tool is often the best approach.
Benefits Of Automation Testing
Automated testing has many benefits over manual testing, but some cases really exemplify its
worth, including:
 Multilingual sites
 Test cases that are repeated
 Tedious cases
 Cases that are broad and expansive

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

While these tests can be performed by a human, they are quite complex and are therefore prone
to errors. For example, someone testing a site in a foreign language is bound to make mistakes,
especially if the site is sizable. In instances like this, it's easy to see why automation testing is
the right option.

That said, there are some instances where manual testing is better, including:
 New test cases that have not yet been executed manually
 Test cases where the criteria are always changing
 Test cases that are not routine
In these instances, you can see why it would be beneficial to have a pair of human eyes on the
testing. For example, the first time a test code is written, it should be run manually to ensure
that it delivers the expected result. Once this is verified, it can then be used as an automated
solution.
In the cases where automation testing is appropriate, you’ll see some specific benefits,
(perhaps even more so if you are already using AI in test automation) including:
 Speed
 Wider test coverage
 Consistency
 Cost savings
 Frequent and thorough testing
 Faster time to market
Now that you know when to use an automation tool and the reasons why you should, let’s look
at how to choose the right tool for your needs.
9 Types Of Automation Testing
Generally, there are two types of testing. Functional testing tests the real-world applications of
the software while non-functional testing tests different software requirements, like security
and data storage.
Many specific types of testing fit into these categories, and some of them may overlap. The
types of automated testing include:

1. Unit Testing

Unit testing is testing small, individual components of the software. It’s the first stage of
testing, and while it’s usually done manually, it can be automated, so I wanted to include it
here.

2. Smoke Tests

A smoke test is a functional test that determines whether or not a build is stable. It verifies the
function of essential features to make sure the program can endure further testing. The name
comes from the idea that this test prevents the program from catching fire if it’s not ready for
additional testing.

3. Integration Tests

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

These functional tests make sure that all of the individual pieces of software test are well when
operating as a whole.

4. Regression Tests

Regression tests are both functional and non-functional, ensuring that no part of the software
has regressed after changes are made.

5. API Testing

The application programming interface or API acts as the conduit between all the other systems
that your software needs to function. It’s usually tested after software development to make
sure that everything is working together as it should.

6. Security Tests

Security tests are also functional and non-functional. Their purpose is to check everything for
security weaknesses that can be exploited.

7. Performance Tests

Non-functional performance tests evaluate stability and responsiveness. They ensure that the
software can handle stress and deliver a better and more reliable user experience.

8. Acceptance Tests

Acceptance tests are functional tests that try to determine how end-users will respond to the
final product. This test must be passed successfully before the product can be released to end-
users.

9. UI Tests

User interface tests are one of the last tests in the process. This test is designed to accurately
replicate a typical user experience. It ensures that the end product that users interact with
works as it should.
Test Automation Frameworks
Once you know what kind of automated testing you need to do, the next step is to choose a
framework to organize the testing process.
The biggest benefit of doing this is that it standardizes the testing process, which provides a
structure so that everyone applying automated testing to the project is on the same page.
Some of the most common types of test automation framework are:

Linear Framework

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

This type is sometimes called Record and Playback. Testers create a test script for each test
case. It’s a very basic approach that’s more suited to a small team that doesn’t have a lot of
experience with test automation.

Modular Based Framework

This framework organizes each test case into small, independent modules. Each one has a
different scenario, but they are all handled by the framework’s single master script. This
approach is very efficient, but a lot of planning is required, and it’s best used by testers who
have experience with automation testing tools.

Library Architecture Framework

Library Architecture Framework is an expansion of the modular-based approach, with a few


differences. In a Library Architecture Framework, tasks are grouped within the test script
according to common objectives.
These functions are then stored in a library so they can be quickly accessed when needed. This
framework is very flexible, but creating the scripts takes time, so experience in automated
testing is beneficial.

5.Elaborately explain about test team organization and management?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

6.Describe about Theory of program testing?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

7.What is meant by unit testing objectives and types?Explain it.


The main objective of unit testing is to isolate a section of code and test its correctness12345.
Other objectives of unit testing include:
 To uncover early bugs and flaws in application code that can be more challenging to
identify in the later stages of the software testing life cycle2.
 To fix bugs early in the development cycle and to save costs3.
 To help the developers to understand the code base and enable them to make changes
quickly3.
 To help with code reuse34
Unit Testing is of two types

 Manual
 Automated

Unit testing is commonly automated but may still be performed manually. Software Engineering
does not favor one over the other but automation is preferred. A manual approach to unit testing
may employ a step-by-step instructional document.

Under the automated approach-

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 A developer writes a section of code in the application just to test the function. They
would later comment out and finally remove the test code when the application is
deployed.
 A developer could also isolate the function to test it more rigorously. This is a more
thorough unit testing practice that involves copy and paste of code to its own testing
environment than its natural environment. Isolating the code helps in revealing
unnecessary dependencies between the code being tested and other units or data
spaces in the product. These dependencies can then be eliminated.
 A coder generally uses a UnitTest Framework to develop automated test cases. Using an
automation framework, the developer codes criteria into the test to verify the correctness
of the code. During execution of the test cases, the framework logs failing test cases.
Many frameworks will also automatically flag and report, in summary, these failed test
cases. Depending on the severity of a failure, the framework may halt subsequent testing.
 The workflow of Unit Testing is 1) Create Test Cases 2) Review/Rework 3) Baseline 4)
Execute Test Cases.

8.Write the advantages and disadvantages of unit testing tools?

Advantages of Unit Testing

Software development projects can gain a number of advantages through unit testing, including
the following:

1. Early Bug Detection: Unit testing aids in the early detection of flaws or defects in the
software code, helping to avoid them developing into larger problems or spreading to
later stages of the software development cycle. This reduces the entire development time
and lowers costs.
2. Quicker Software Development: Unit tests help engineers find and quickly fix errors,
which speeds up software development. Unit testing also aids in the early detection of
flaws, which makes it simpler to fix problems before they worsen.
3. Higher Quality Code: Unit testing helps guarantee that code is of a high standard and
complies with the specifications of the software. Early bug detection allows engineers to
create more dependable, scalable, and effective code.
4. Better Team Communication: Unit testing gives team members a clear and concise way
to discuss the code, which enhances team communication. Developers can cooperate to
make sure their code complies with the criteria by having an easy time understanding
what is expected of their code.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

5. Code Reusability: Unit testing can assist in locating code that is applicable to different
areas of the programme. Developers can increase the code's modularity and make it
simpler to maintain and modify in the future by spotting these code snippets early on.
6. Better Documentation: Unit tests acts as documentation which shows how the code is
supposed to operate. These tests can be used by developers as a guide for comprehending
the code, which can assist prevent misunderstandings and confusion.

Overall, unit testing is a crucial part of creating modern software. Unit testing can save time and
money while ensuring that software satisfies the needs of the end user by detecting errors early,
guaranteeing code quality, enhancing collaboration, and lowering technical debt.

Disadvantages of Unit testing

While unit testing offers many benefits to software development, here are some potential
disadvantages that should be considered. Here are some of the key disadvantages of unit testing:

1. Time Consuming: Unit testing can take a lot of time, particularly in complicated, large-
scale projects. Unit test creation, execution, and maintenance can be labour-intensive and
extend development time.
2. Increased Code Complexity: Unit testing might result in increased code complexity
since developers must add more code to support test scenarios. For individuals who are
unfamiliar with the project, in particular, this can make the code more difficult to read
and comprehend.
3. False Sense of Security: Passing unit tests simply validates the functionality of the tested
unit; it does not take into account how the tested unit interacts with other components of
the system. An issue in production may arise if a unit passes all tests but fails in the larger
system.
4. Maintenance Challenges: Maintaining unit tests can be difficult, particularly when code
modifications happen often. To keep the tests relevant, developers must update them,
which can be time-consuming and challenging.
5. Limitations on Test Coverage: It could be challenging to obtain 100% test coverage,
particularly in complex systems with lots of interdependent components. The lack of
testing in some areas of the code can cause problems in the production environment.
6. Cost: Putting in place a thorough unit testing approach may call for more resources and
raise the price of software development.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

9.Describe about control flow testing and its processes?


Control flow testing is a white-box testing technique that uses the program’s control flow as
a model123. It involves creating and analyzing control flow graphs, which represent the code
modules and the execution paths between them435. The tester selects a large portion of the
program to test and sets the testing path4. The purpose of this technique is to determine and
observe the execution order of statements or instructions of the program12
Processes:
The structured testing process consists of the following steps:
 Derive the control flow graph from the software module.
 Compute the graph's Cyclomatic Complexity (C).
 Select a set of C basis paths.
 Create a test case for each basis path.
 Execute these tests.

10.Write about advantages and disadvantages of control flow testing?


Advantages of Control flow testing:
 It detects almost half of the defects that are determined during the unit testing.
 It also determines almost one-third of the defects of the whole program.
 It can be performed manually or automated as the control flow graph that is used can be
made by hand or by using software also.
Disadvantages of Control flow testing:
 It is difficult to find missing paths if program and the model are done by same person.
 Unlikely to find spurious features.

11.What is meant by Data Flow Testing?Explain it.


Data Flow Testing is a type of structural testing. It is a method that is used to find the test
paths of a program according to the locations of definitions and uses of variables in the
program. It has nothing to do with data flow diagrams.
It is concerned with:
 Statements where variables receive values,
 Statements where these values are used or referenced.
To illustrate the approach of data flow testing, assume that each statement in the program
assigned a unique statement number. For a statement number S-
DEF(S) = {X | statement S contains the definition of X}
USE(S) = {X | statement S contains the use of X}
If a statement is a loop or if condition then its DEF set is empty and USE set is based on the
condition of statement s.
Data Flow Testing uses the control flow graph to find the situations that can interrupt the flow
of the program.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Reference or define anomalies in the flow of the data are detected at the time of associations
between values and variables. These anomalies are:
 A variable is defined but not used or referenced,
 A variable is used but never defined,
 A variable is defined twice before it is used
Advantages of Data Flow Testing:
Data Flow Testing is used to find the following issues-
 To find a variable that is used but never defined,
 To find a variable that is defined but never used,
 To find a variable that is defined multiple times before it is use,
 Deallocating a variable before it is used.
Disadvantages of Data Flow Testing
 Time consuming and costly process
 Requires knowledge of programming languages
Example:
1. read x, y;
2. if(x>y)
3. a = x+1
else
4. a = y-1
5. print a;
Control flow graph of above example:

Define/use of variables of above example:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Variable Defined at node Used at node

x 1 2, 3

y 1 2, 4

a 3, 4 5

12.Describe about system integration testing?


System Integration Testing (SIT) is the type of software testing that is carried out to perform
the overall testing of a complete system that consists of many integrated components. The
system on which SIT is performed may have different hardware parts, different software parts
or both hardware and software. SIT is the process of fabricating the constituent integral parts of
a system in a reasonable and logical way. SIT performs the testing in a less cost. It checks the
full functionality of the system. System test is involved in SIT which is a process of
verification of the system fulfilling the requirements and it test whether the system performs in
according to the user’s requirements. During the development phase, system integration testing
is the first testing process performed after the system is assembled. SIT can also be defined as a
testing process that exercises the coexistence of a software system with other system. Multiple
integrated systems are involved in it and it is assumed that each have already passed system
integration testing. SIT is performed to test the interactions among several integrated
components.
SIT is a black-box testing technique.
Objective of System Integration Testing: The objective of SIT is to:
 To meet software with user requirements.
 To maximize the memory usage.
 To control data flow in within the system.
 To test the control flow of the system.
 To find the errors and bugs in the system.
 To minimize time consumption for testing process.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

M
ajor States of SIT: There are three major states of system integration testing:
1. Data state within the integration layer: Integration layer is the medium used for data
transformation. Different web services are involved in this layer which is used as medium
for data sending and receiving. There are several check-points where the validation of data
is checked and there are several protocols used in it. Middleware is also used as medium
for transformation which allows the data mapping against the cross-checking.
2. Data state within the database layer: Database layer consists of several steps
involved in it. It checks whether the data is transformed from integration layer to database
layer. Data properties are checked and data validation process is performed. Mainly SQL is
used for data storing and data manipulation process.
3. Data state within the application layer: Application layer is used to create a data map
for databases and check its interaction with user interface. Data properties are also checked
in it.
System Integration Testing (SIT) is a type of testing that focuses on verifying the interactions
and interfaces between different systems or components of a software application. The purpose
of SIT is to ensure that the different components are integrated and work together correctly as a
system.
SIT is typically performed after unit testing and integration testing, and before user acceptance
testing (UAT). SIT tests the end-to-end flow of data and transactions through the system,
including the interfaces between the components, the communication protocols, the data
transfer mechanisms, and the shared resources.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

During SIT, various test scenarios are executed to ensure that the components of the system
interact with each other seamlessly and correctly, and that they conform to the functional and
non-functional requirements of the system. The testing team may use automated testing tools
and techniques to simulate various real-world scenarios and edge cases.
The test environment for SIT should closely resemble the production environment, including
all the hardware, software, and networking components, to ensure that the system behaves as
expected in the production environment. Any defects or issues that are discovered during SIT
are logged and tracked, and are usually fixed before the system is deployed for user acceptance
testing or production.
In summary, SIT is an important testing phase in the software development lifecycle that
ensures that the different components of a system are integrated and work together correctly.
SIT helps to identify and resolve any issues or defects before the system is deployed for user
acceptance testing or production, thereby reducing the risk of costly and time-consuming
rework.

There are several advantages of System Integration Testing (SIT) in software


development. Here are some of them:

1. Ensures system functionality: SIT verifies that the different components of the system
are integrated and work together correctly, ensuring that the overall system meets the
functional and non-functional requirements.
2. Reduces risk: SIT helps to identify and resolve any issues or defects before the system
is deployed for user acceptance testing or production, reducing the risk of costly and time-
consuming rework.
3. Improves system quality: By verifying the interactions and interfaces between different
systems or components, SIT helps to improve the quality of the system and ensures that it
performs as expected.
4. Enhances system performance: SIT helps to identify and address any performance
issues that may arise due to the interactions and interfaces between different components of
the system.
5. Increases team collaboration: SIT requires close collaboration between the different
teams responsible for developing and testing the system, enhancing team collaboration and
communication.
6. Supports agile development: SIT is an essential testing phase in agile development
methodologies, helping to ensure that the system is tested comprehensively and meets the
specified requirements.
Unit-II
Answer all the questions
Part-A
1.What is test plan?
A software testing plan is a document that describes the scope, approach, resources,
schedule, and activities of testing a software product1234. It is the basis for formally testing any
software in a project and serves as a blueprint for the test manager34. A software testing plan
should include the following elements5:
 Software background information

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Test scope and items


 Test cases and strategy
 Test objective and criteria
 Testing tools and resources

2.What are the types of test plan?


There are different types of test plans12. They include:
 Level specific test plans: These include Unit test plan, Integration test plan and system
test plan12.
 Type specific test plan: These include plans for major parameters like performance
testing plan12.
 Master test plan: This is one single big plan combining all the other plans to be carried
out on the software product12.
Other test approaches / test strategies include: Analytical, Model-based, Stochastic or Monkey
testing using random or statistical information (tool), and Operational profiles3.
3.What are the objectives of test plan?
The objectives of a test plan are to ensure systematic and effective testing, identify defects,
and improve software quality1. The benefits of making a test plan include23:
 Acting as a quick guide for the testing process
 Avoiding out-of-scope functionalities
 Determining the time, cost, and effort
 Providing a schedule for testing activities
 Determining resource requirement and equipment

4.Give a short notes on test strategy?

A high-level document is used to validate the test types or levels to be executed for the product
and specify the Software Development Life Cycle's testing approach is known as Test strategy
document.

Once the test strategy has been written, we cannot modify it, and it is approved by the Project
Manager, development team.

5.What is meant by testing methodology?


Testing methodologies are specific strategies for testing all of the pieces of your software to
make sure it behaves as expected. These strategies include many ways to test software, such
as unit testing, integration testing, performance testing, and more.

6.Shortly explain about Test environment?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

A test environment is a controlled setup where software or systems undergo evaluation to


ensure functionality, compatibility, and reliability. It simulates real-world conditions to detect
potential issues before deployment. It plays a vital role in software development and quality
assurance processes.

The test environment is used by the testing teams to check the quality and impact of the
application before handing it to the user. It can test a specific part of an application using
different configurations and data setups. It’s an essential part of the agile development
methodology.

7.Write a short notes on test automation?

Test automation is the process of using automation tools to maintain test data, execute tests, and
analyze test results to improve software quality.

Automated testing is also called test automation or automated QA testing. When executed well, it
relieves much of the manual requirements of the testing lifecycle.

8.What is a software test plan?


. Test Plan
A test plan is a document that consists of all future testing-related activities. It is prepared at
the project level and in general, it defines work products to be tested, how they will be tested,
and test type distribution among the testers. Before starting testing there will be a test manager
who will be preparing a test plan. In any company whenever a new project is taken up before
the tester involves in the testing the test manager of the team would prepare a test Plan.

9.What is the importance of test plan?


Importance of Test Plan
The following are some of the key benefits of making a test plan:
 It acts as a quick guide for the testing process.
 It helps to avoid out-of-scope functionalities.
 It determines the time, cost, and effort.
 Provide a schedule for testing activities.
 Resource requirement and equipment.
 Test Plan Document can be used for similar projects.
 It helps to understand the test details.
 It helps in determining the quality of software applications.

10.Shortly explain how to write a test plan?


Analyze the product. How can you test a product without any information about it? ...
Develop Test Strategy. Test Strategy is a critical step in making a Test Plan in Software
Testing. ...

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Define Test Objective. ...


Define Test Criteria. ...
Resource Planning. ...
Plan Test Environment. ...
Schedule & Estimation. ...
Test Deliverables. ...
11.What is test environment?
 Specify the hardware, software, and network configurations required for testing.
 Describe any test data and test environments, including whether testing will be conducted
in a dedicated testing environment or on a production-like system.
12.What is test deliverables?
List the documents and artifacts that will be produced as part of the testing process. This may
include test plans, test cases, test scripts, test data, and test reports.
13.What is test schedule?
 Provide a timeline that outlines the testing phases, milestones, and deadlines. Include
start and end dates for each testing phase.
 Define the sequence of testing activities, such as unit testing, integration testing, system
testing, and user acceptance testing.
14.What is test entry and exit criteria?
Define the conditions that must be met before testing can begin (entry criteria) and the conditions
under which testing can be considered complete (exit criteria).
15.What is test risks and assumptions?
Identify potential risks and assumptions related to the testing effort. This may include risks
associated with resource availability, schedule constraints, and technical challenges.
16.What is test data?
Describe the test data requirements, including how test data will be generated or obtained.
17.What is test execution and reporting?
 Describe the procedures for executing tests, including who will perform the tests and
where they will be executed.
 Explain how defects will be reported, tracked, and managed. Define the severity and
priority criteria for defect classification.
18.What is test metrics and measurements?
Specify the metrics and key performance indicators (KPIs) that will be used to measure the
effectiveness of testing. This may include metrics related to test coverage, defect density, and test
execution progress.
19.What is change management?
Outline how changes to the software or test plan will be handled. This includes assessing the
impact of changes on testing and updating the test plan accordingly.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

20.What is approvals?
Identify the stakeholders who must review and approve the test plan before testing can
commence. Include their names and signatures.

Part-B
1.Elaborately explain about software test plan?
The software testing process is a crucial stage in the development of a solid and powerful
application. Documentation plays a critical role in achieving effective software testing. It makes
the testing process easy and organized, also saves company money and time spent on that
software project. With proper documentation it is easy for the client to review the software
process. In this article, we will discuss a type of software documentation, test plan in software
testing.
Listed below are the topics covered in this article:

 Is Documentation Needed in Software Testing?


 What is a Test Plan in Software Testing?
 What are the Benefits of Test Planning?
 How to Write a Good Test Plan?
 Test Plan Template

Is Documentation Needed in Software Testing?


Yes! It is. Documentation plays a critical role in software testing. Here’s an example to convince
you, people.
A company, let’s call it ‘XYZ’, delivered a project (with an unknown issue) to one of its clients.
And they found the issue at the client-side, which created a very bad situation for the company.
Like always all blame was on Quality Analysts(QAs).
The issue was something regarding the compatibility of one website. The issue was presented to
higher authorities, they showed the client a written proof of not receiving any such requirement
asking to check the compatibility of the website. So, the issue was resolved peacefully. In a way,
the documented requirements saved the company from getting sued. This example shows just
how important documentation really is. It can make or break a project. So, testing should be fully
documented to provide efficient resource control, monitoring, and allocation. Some commonly
applied documentation artifacts associated with software testing are:

 Test Plan
 Test Case
 Test Scenario
 Traceability Matrix

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Moving further with this article on ‘Test Plan in Software Testing’ let’s learn more about test plan
in particular.
What is Test Plan in Software Testing?
A test plan in software testing is a document which outlines the what, when, how, who, and more
of a testing project. It contains the details of what the scope of testing is, what the test items are,
who will do which testing task, what the items test/pass criteria will be, and what is needed to set
up the test environment and much more.

Planning is the first step of the software testing process. A test plan document outlines the
planning for the entire test process. It has the guidelines for the testing process such as approach,
testing tasks, environment needs, resource requirements, schedule, and constraints. It explains
the full process of what you’re going to do to put the software through its paces, in a step-by-step
format. In software testing project, when you have a plan in place, chances are it will go
smoother. But, why is it required to write a test plan?
What are the Benefits of Test Plan?
Value of writing a test plan is tremendous. It offers a lot of benefits like:

Selenium Certification Training Course


Explore Curriculum

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 It serves as a roadmap to the testing process to ensure your testing project is successful
and helps you control risk.
 Proper test plan provides a schedule for testing activities, so, you can have a rough
estimate of time and effort needed to complete the software project
 It clearly defines the roles and responsibilities of every team member, outlines the
resource requirements which are essential to carry out the testing process
 Planning and a test plan encourages better communication with other project team
members, testers, peers, managers, and other stakeholders
 Helps people outside the test team such as developers, business managers, customers
properly understand the details of testing

Even though performing smoke testing has a lot of advantages, testers may choose not to write
one, arguing, for reasons like time, challenge and redundancy constraints.
So, what happens when one doesn’t have a test plan?

 Scope of testing will not be properly defined


 There will be a misunderstanding about roles and responsibilities and this could lead to
important tasks left undone
 Test team will not have clear test objectives, without which critical and essential system
characteristics will not be adequately tested
 Test team will not be aware of when the test process ends, which will compromise the
quality, functionality, effectiveness, and efficiency of the software

So, it’s unquestionable that writing a test plan has a lot of pros than cons. Now you already know
that making a test plan is the most important task of Test Management Process. So how do you
write a test plan in software testing?
How to Write a Good Test Plan?
You can follow these 6 steps to device an efficient test plan:

Step1: Analyze the test product


It’s not possible to test a product without any information about it. So, the first step towards
creating a test plan is to analyze the product, its features, and functionalities. You need to have a
proper understanding of user requirements and expectations. Here are the three simple steps to
get a deep understanding of the project.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Step2: Develop Test Strategy


Once you have analyzed the product, you should design a test strategy which can assist you in
defining the scope of testing. Test strategy can be composed of several testing techniques.
Keeping the user requirements in mind you should decide on which technique to use. For
example, if you are building a website which has thousands of online users, you will include
‘Load Testing’ in your test plan. Defining a test strategy also include four more steps like shown
below.

Step3: Define Objectives


The objective of any software project is to release a high-quality bug-free software product to
market on time. So, as a part of a test plan, you need to clearly define the testing scope and its
boundaries. You could just follow these two simple steps to define test objectives:
 List all the software features which may need testing
 Define the target of testing, based on features listed previously
Step4: Resource Planning
The resource plan is basically a detailed summary of all types of resources required to complete
the project task. The resources here could be human, equipment and materials needed to
complete a project. It is an important step which helps you determine the number of resources to
be used for the project.
Step5: Develop a Schedule

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

With the knowledge of testing strategy and scope in hand, your next step is to develop a schedule
for testing. Creating a schedule helps you control the progress of the testing process. While
drawing up a schedule, you should consider factors like:

 Project estimate
 Project risk estimate
 Resource estimate
 Employee roles & responsibilities
 Test activity deadlines

Step6: Determine Test Deliverables


The last step is to prepare detailed test deliverables document. It is a list of all the documents,
tools and other components that have to be developed and maintained in support of the testing
effort. There are different test deliverables at every phase of the software development lifecycle
like shown below.

Well, you can follow these simple steps to prepare a test plan. With that said, what do you
actually include in the plan? Different people may come up with different sections to be included
in a test plan. But who will decide what is the right format?
Test Plan Template
IEEE, an international institution that defines standards and template documents which are
globally recognized. It has defined the IEEE 829 standard for system and software
documentation. This IEEE 829 standard specifies the format of a set of documents that are
required in each stage of the software and system testing. The table below lists out the test plan
parameters according to the IEEE 829 standard test plan template.

2.Explain about components of plan?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Components of a Test Plan

 Scope: Details the objectives of the particular project. Also, it details user scenarios to be
used in tests. The scope can specify scenarios or issues the project will not cover if necessary.
 Schedule: Details start dates and deadlines for testers to deliver results.
 Resource Allocation: Details which tester will work on which test.
 Environment: Details the test environment‘s nature, configuration, and availability.
 Tools: Details what tools will be used for testing, bug reporting, and other relevant
activities.
 Defect Management: Details how bugs will be reported, to whom, and what each bug
report needs to be accompanied by. For example, should bugs be reported with screenshots, text
logs, or videos of their occurrence in the code?
 Risk Management: Details what risks may occur during software testing and what risks
the software itself may suffer if released without sufficient testing.
 Exit Parameters: Details when testing activities must stop. This part describes the
expected results from the QA operations, giving testers a benchmark to compare actual results.

3.What are the types of technical reviews?Explain it.

Types of Test Review

Test Review is of three types, they are:


 In-Process Review: This review takes place during the process when the product is
being developed. Having an In-Process Review also gives you an added advantage as you
can keep your progress in check with your flaws, correcting them immediately would be
better than after finishing the cycle.
 Milestone Review: This type of review takes place after the product is finished.
 Post-Implementation Review: Once all the stages of the product are finished and the
necessary changes have been made, this review takes place.
 Pair Programming: It is a type of code review involving two people. The two people
involved developing a code together at the same workstation.
 Walkthrough: This type of method is generally useful for people who are not from the
software field or people who don’t understand the software cycle. Generally, this is an
informal review. Deals with documentation.
 Technical Review: These reviews are mostly from technical backgrounds that check
whether the fault is in design and architecture. functionality etc.
 Inspection: This is a formal review where a separate preparation is carried out during
which the product is examined and the defects are found. This is also called a Specialized
review. As the name suggests it’s a casual review.
 Casual Review: This review is just to make sure the process is in place.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Examinations: Examinations are a review to find small hidden bugs which might be
overlooked when the rest reviews happen. The review is especially for small mistakes.
 Peer Review: These reviews are done by your colleagues. This is an informal review.

4.Discuss briefly about software testing?

Software testing refers to the process of verifying and evaluating the function of a software
application or product. It’s used to reduce or eliminate bugs and minimize the amount of money
a company must invest in addressing issues and releasing updates.

In some cases, Software Testers are called in to improve a program’s performance — even if it
doesn’t have any noticeable bugs. In short, Software Testers are crucial because they help
optimize software, profit, and processes.

Why is software testing important?

Software testing is important because the impact of untested or underperforming software can
have a trickle-down or domino effect on thousands of users and employees.

For example, if a web application that sells a product works too slowly, customers may get
impatient and buy a similar product elsewhere. Or, if a database within an application outputs the
wrong information for a search query, people may lose trust in the website or company in
general.

Software Testers help prevent these kinds of corporate faux pas. Plus, software testing can help
ensure the safety of users or those impacted by its use, particularly if an application is used to run
a critical element of a town or city’s infrastructure.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

What role does software testing play in software engineering?

In the software engineering process, testing is a key element of the development lifecycle. In a
waterfall development system, Software Testers may be called in after an application has been
created to see if it has any bugs and how it performs. The Testers’ feedback is critical to the
process because it helps engineers fine-tune the end product.

In a DevOps environment, software testing is often done at various stages of development


because the DevOps system relies on constant feedback. In this development framework, Testers
may assess a certain aspect of the software’s function according to the team’s current phase of
development.

For example, if a web app needs to integrate well with mobile devices, one group of Software
Testers may focus on the app’s performance on iOS and Android devices, while another group of
Testers checks how it performs on macOS or Windows.

Similarly, granular elements of an application can be run through tests. This can include how
well it processes information from interactive databases or the flow and feel of the user interface.

The input from Testers can make it easier and faster to fine-tune key elements of an application’s
performance, particularly from the perspective of an end-user.

What are the different types of software testing?

There are several types of software testing, each requiring varying degrees of specificity. Here’s
a list of some of the most common:

Usability testing

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Usability testing involves figuring out how well the system works when a customer uses it for a
specific task. A usability test can be performed on one or a combination of tasks to see how the
programming functions in different scenarios.

Acceptance testing

Acceptance testing involves checking to make sure the system works as it’s supposed to. While
this may involve a general test of several functions, it can also focus on a specific set, especially
if one type of user tends to use the software in a particular fashion.

For instance, imagine an app is used by several people working in a factory. It might include a
feature that aligns existing inventory with customer orders, pointing out any discrepancies. It
also might show an item’s status in the manufacturing process, including its current station or
even who’s working on it. One acceptance test can be done for each of these functions.

Regression testing

Regression testing is meant to assess the impact of new features that get added to an application.
At times, a new feature may interfere with one that’s already proven effective.

This kind of feedback can help engineers adjust how each feature interacts with the program’s
dependencies — or decide which features to alter.

Integration testing

Integration testing aims to figure out how well different components of the app work with each
other. Each element of an app requires different resources, and sometimes they can compete with
each other in ways that hurt functionality. Integration testing can reveal these kinds of
weaknesses.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Unit testing

A unit refers to the smallest component of an application that can be tested. Unit testing attempts
to see how different components perform in isolation. This gives engineers a view into how well
their code executes from a specific, granular perspective.

Functional testing

Functional testing brings real-world scenarios into the mix. Through functional testing, engineers
can see how software accomplishes specific, intended purposes.

For instance, an app may be designed to integrate a customer relationship management (CRM)
solution with an email system. In this case, functional testing may be used to see:

 If the email application is opened when an employee clicks on someone’s email address
in the CRM.
 Which app it defaults to.
 If the “To” field is automatically populated.

Stress testing

Stress testing is in some ways the opposite of functional testing. During a stress test, your only
job is to figure out if and how the app breaks when put under stress. In most situations, a stress
test will not imitate a real-world scenario, as is the case with functional testing.

Performance testing

Performance testing is similar to stress testing, but your objective is to see how much load the
app can take in a real-world scenario. Like stress testing, if the app were to malfunction, this
would provide valuable data to the dev team.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

For example, a team may run performance testing on how well a shopping cart functions during
a peak buying season, such as during the holidays. They could simulate many user requests for
purchases simultaneously and observe how the app handles them.

What are some software testing strategies?

Regardless of the kind of testing performed, the development team will first establish a base set
of requirements. Outlining the essential functions the application has to perform in any given
situation — as well as the parameters that are considered “acceptable” — provides important
benchmarks for evaluation. This is a key element to any testing strategy.

There are also two specific techniques used to assess the stability and performance of software:
black-box and white-box testing. Each offers a different perspective into how well the coding
holds up.

 Black-box testing: This involves testing software without looking at what’s inside — the
coding, systems, and dependencies.
 White-box testing: With white-box testing, the aim is to examine the structure within the
application, looking at the inner workings of the app, as opposed to how it functions overall.

Which programming languages do you need to know to be a Software Tester?

Even if you don’t write any code as a Software Tester, in many cases, you still have to be able to
read it. As a Software Tester, your job involves more than clicking buttons and tabs. You have to
be able to examine code and look for potential issues or see what may have caused an error or
malfunction.

Here are some languages you should learn to maximize your job prospects as a Software Tester:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Java. You can learn Java with our Learn Java course. You can also get into the nitty-gritty
of Java development with our Build Basic Android Apps with Java Skill Path.
 C#. Using our Learn C# course, you can get familiar with the popular Microsoft language
and how it’s used to create sites, apps, and games.
 Python. Using our Learn Python 3 course, you can see how many of the world’s most
popular apps run, making it easier to bring value to the table as a Tester.
 Ruby. Ruby is a popular, user-friendly language. You can get comfortable with it using
our Learn Ruby course. You can also dig into the Ruby on Rails framework with courses
like Learn Ruby on Rails and Learn Authentication with Ruby on Rails.

Regardless of the kind of Software Tester you want to be, we can provide you with the
foundational knowledge you’ll need to help dev teams meet their goals. In this way, you’ll play a
crucial role in the development process, helping create useable, effective products for end-users.

5.Describe about dynamic testing?


1. Dynamic testing is a type of software testing that involves executing the software and
evaluating its behavior during runtime. It is also known as functional testing, as it focuses
on testing the software’s functionality and how it behaves under different inputs and
conditions.
2. During dynamic testing, the software is run and tested against a set of predefined test
cases. These test cases are designed to cover a range of inputs and use cases, and they are
used to check the software’s behavior and output in response to different inputs. This can
include testing the software’s user interface, functional requirements, and performance.
3. Dynamic testing can be performed manually or through the use of automated testing
tools. Automated testing tools can be used to run test cases repeatedly and quickly, making
it easier to identify and fix any issues that are found.
4. Dynamic testing is an important part of the software development process, as it helps to
ensure that the software is working as intended and meets the requirements of the end
users. It also helps to identify and fix any bugs or issues that may not have been identified
during the earlier stages of development.
It is important to note that dynamic testing is just one aspect of software testing, other types of
testing like Unit testing, Integration testing, System testing, and Acceptance testing are also
important and should be performed in addition to dynamic testing.
Dynamic Testing is a type of Software Testing which is performed to analyze the dynamic
behavior of the code. It includes the testing of the software for the input values and output
values that are analyzed. Dynamic Testing is basically performed to describe the dynamic
behavior of code. It refers to the observation of the physical response from the system to
variables that are not constant and change with time. To perform dynamic testing the software

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

should be compiled and run. It includes working with the software by giving input values and
checking if the output is as expected by executing particular test cases which can be done with
either manually or with automation process. In 2 V’s i.e., Verification and Validation,
Validation is Dynamic Testing.
Levels of Dynamic Testing
There are various levels of Dynamic Testing. They are:
 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing

There are several levels of dynamic testing that are commonly used in the software
development process, including:

1. Unit testing: Unit testing is the process of testing individual software components or
“units” of code to ensure that they are working as intended. Unit tests are typically small
and focus on testing a specific feature or behavior of the software.
2. Integration testing: Integration testing is the process of testing how different
components of the software work together. This level of testing typically involves testing
the interactions between different units of code, and how they function when integrated
into the overall system.
3. System testing: System testing is the process of testing the entire software system to
ensure that it meets the specified requirements and is working as intended. This level of
testing typically involves testing the software’s functionality, performance, and usability.
4. Acceptance testing: Acceptance testing is the final stage of dynamic testing, which is
done to ensure that the software meets the needs of the end-users and is ready for release.
This level of testing typically involves testing the software’s functionality and usability
from the perspective of the end-user.
5. Performance testing: Performance testing is a type of dynamic testing that is focused on
evaluating the performance of a software system under a specific workload. This can
include testing how the system behaves under heavy loads, how it handles a large number
of users, and how it responds to different inputs and conditions.
6. Security testing: Security testing is a type of dynamic testing that is focused on
identifying and evaluating the security risks associated with a software system. This can
include testing how the system responds to different types of security threats, such as
hacking attempts, and evaluating the effectiveness of the system’s security features.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Dynamic Testing Process Phase

Advantages of Dynamic Testing


 It discloses very difficult and complex defects.
 It detects the defects that can’t be detected by static testing.
 It increases the quality of the software product or application being tested.
 Dynamic testing detects security threats and ensure the better secure application.
 It can be used to test the functionality of the software at the early stages of
development.
 It is easy to implement and does not require any special tools or expertise.
 It can be used to test the software with different input values.
 It can be used to test the software with different data sets.
 It can be used to test the software with different user profiles.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 It can be used to test the functionality of the code.


 It can be used to test the performance of the code.
 It can be used to test the security of the code.
Disadvantages of Dynamic Testing
 It is a time consuming process as in dynamic testing whole code is executed.
 It increases the budget of the software as dynamic testing is costly.
 Dynamic testing may require more resources than static testing.
 Dynamic testing may be less effective than static testing in some cases.
 It is difficult to cover all the test scenarios.
 It is difficult to find out the root cause of the defects.

IMPORTANTS POINTS:
Some important points to keep in mind when performing dynamic testing include:

1. Defining clear and comprehensive test cases: It is important to have a clear set of test
cases that cover a wide range of inputs and use cases. This will help to ensure that the
software is thoroughly tested and any issues are identified and addressed.
2. Automation: Automated testing tools can be used to quickly and efficiently execute test
cases, making it easier to identify and fix any issues that are found.
3. Performance testing: It’s important to evaluate the software’s performance under
different loads and conditions to ensure that it can handle the expected usage and the
expected number of users.
4. Security testing: It is important to identify and evaluate the security risks associated
with a software system, and to ensure that the system is able to withstand different types of
security threats.
5. Defect tracking: A defect tracking system should be implemented to keep track of any
issues that are identified during dynamic testing, and to ensure that they are addressed and
resolved in a timely manner.
6. Regular testing: It’s important to regularly perform dynamic testing throughout the
software development process, to ensure that any issues are identified and addressed as
soon as they arise.
7. Test-Driven Development: It’s important to design and implement test cases before the
actual development starts, this approach ensures that the software meets the requirements
and is thoroughly tested.

6.Briefly explain about software testing in spiral manner?


Spiral testing is a risk based testing, where testers will take risk due many factors at the same
time they will equipped with solutions for that risks. In the spiral and rapid application
development testing environment there may be no final functional requirements for the
system. They are probably informal and evolutionary. In the spiral development environment,
software testing is again described as a continuous improvement process that must be integrated
into a rapid application development methodology. Testing as an integrated function prevents
development from proceeding without testing. Deming’s continuous improvement process using
the PDCA model will again be applied to the software testing process.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Starting at the center, each turn around the spiral goes through several task regions:

 Determine the objectives, alternatives, and constraints on the new iteration.


 Evaluate alternatives and identify and resolve risk issues.
 Develop and verify the product for this iteration.
 Plan the next iteration.

Spiral Model:

As the name implies, spiral model follows an approach in which there are a number of cycles (or
spirals) of all the sequential steps of the waterfall model. Once the initial cycle gets completed, a
thorough analysis and review of the achieved product or output is performed. If it is not as per
the specified requirements or expected standards, a second cycle follows, and so on. This
methodology follows an iterative approach and is generally suited for large projects having
complex and constantly changing requirements.

The methodology provides a framework for testing in this environment. The major steps include
information gathering, test planning, test design, test development, test execution/evaluation, and
preparing for the next spiral. It includes a set of tasks associated with each step or a checklist
from which the testing organization can choose based on its needs. The spiral approach flushes
out the system functionality. When this has been completed, it also provides for classical system
testing, acceptance testing, and summary reports.

As spiral methodology is generally a guideline system for solving a problem, with specific
components such as phases, tasks, methods, techniques and tools. The spiral model combines the
idea of iterative development (prototyping) with the systematic, controlled aspects of the
waterfall model. The spiral methodology is the harder choice to plan and budget because of the
uncertain nature of how many iterations it will take.

7.Explain about information gathering?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

8.What is meant by test planning?Explain it.

TEST PLAN: What is, How to Create (with Example)


ByThomas HamiltonUpdatedAugust 5, 2023

Test Plan
A Test Plan is a detailed document that describes the test strategy, objectives, schedule,
estimation, deliverables, and resources required to perform testing for a software product. Test

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Plan helps us determine the effort needed to validate the quality of the application under test. The
test plan serves as a blueprint to conduct software testing activities as a defined process, which is
minutely monitored and controlled by the test manager.
As per ISTQB definition: “Test Plan is A document describing the scope, approach, resources,
and schedule of intended test activities.”
Let’s start with following Test Plan example/scenario: In a meeting, you want to discuss the Test
Plan with the team members, but they are not interested – .

In such case, what will you do? Select your answer as following figure

A) I am Manager do everything as I said

B) OK, let’s me explain why we need a Test Plan

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

What is the Importance of Test Plan?


Making Test Plan document has multiple benefits

 Help people outside the test team such as developers, business managers,
customers understand the details of testing.
 Test Plan guides our thinking. It is like a rule book, which needs to be followed.
 Important aspects like test estimation, test scope, Test Strategy are documented in Test
Plan, so it can be reviewed by Management Team and re-used for other projects.

How to write a Test Plan


You already know that making a Test Plan is the most important task of Test Management
Process. Follow the seven steps below to create a test plan as per IEEE 829

1. Analyze the product


2. Design the Test Strategy
3. Define the Test Objectives
4. Define Test Criteria
5. Resource Planning
6. Plan Test Environment
7. Schedule & Estimation
8. Determine Test Deliverables

Step 1) Analyze the product

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

How can you test a product without any information about it? The answer is Impossible. You
must learn a product thoroughly before testing it.
The product under test is Guru99 banking website. You should research clients and the end users
to know their needs and expectations from the application

 Who will use the website?


 What is it used for?
 How will it work?
 What are software/ hardware the product uses?

You can use the following approach to analyze the site

Now let’s apply above knowledge to a real product: Analyze the banking
website http://demo.guru99.com/V4.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

You should take a look around this website and also review product documentation. Review of
product documentation helps you to understand all the features of the website as well as how to
use it. If you are unclear on any items, you might interview customer, developer, designer to get
more information.

Step 2) Develop Test Strategy


Test Strategy is a critical step in making a Test Plan in Software Testing. A Test Strategy
document, is a high-level document, which is usually developed by Test Manager. This document
defines:

 The project’s testing objectives and the means to achieve them


 Determines testing effort and costs

Back to your project, you need to develop Test Strategy for testing that banking website. You
should follow steps below

Step 2.1) Define Scope of Testing


Before the start of any test activity, scope of the testing should be known. You must think hard
about it.

 The components of the system to be tested (hardware, software, middleware, etc.) are
defined as “in scope“
 The components of the system that will not be tested also need to be clearly defined as
being “out of scope.”

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Defining the scope of your testing project is very important for all stakeholders. A precise scope
helps you

 Give everyone a confidence & accurate information of the testing you are doing
 All project members will have a clear understanding about what is tested and what is not

How do you determine scope your project?


To determine scope, you must –

 Precise customer requirement


 Project Budget
 Product Specification
 Skills & talent of your test team

Now should clearly define the “in scope” and “out of scope” of the testing.

 As the software requirement specs, the project Guru99 Bank only focus on testing all
the functions and external interface of website Guru99 Bank (in scope testing)
 Nonfunctional testing such as stress, performance or logical database currently will not
be tested. (out of scope)

Problem Scenario
The customer wants you to test his API. But the project budget does not permit to do so. In such
a case what will you do?
Well, in such case you need to convince the customer that Api Testing is extra work and will
consume significant resources. Give him data supporting your facts. Tell him if Api Testing is
included in-scope the budget will increase by XYZ amount.
The customer agrees and accordingly the new scopes, out of scope items are

 In-scope items: Functional Testing, Api Testing


 Out of scope items: Database Testing, hardware & any other external interfaces

Step 2.2) Identify Testing Type


A Testing Type is a standard test procedure that gives an expected test outcome.
Each testing type is formulated to identify a specific type of product bugs. But, all Testing Types
are aimed at achieving one common goal “Early detection of all the defects before releasing the
product to the customer”
The commonly used testing types are described as following figure

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Commonly Used Testing Types


There are tons of Testing Types for testing software product. Your team cannot have enough
efforts to handle all kind of testing. As Test Manager, you must set priority of the Testing Types

 Which Testing Types should be focused for web application testing?


 Which Testing Types should be ignored for saving cost?

Now let’s practice with your project. The product you want to test is a banking website.

Which Testing Types should you focus in this case?

Select All that Apply


A) Unit Testing

B) API Testing

C) Integration Testing

D) System Testing

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

E) Install/Uninstall Testing

F) Agile testing

Step 2.3) Document Risk & Issues


Risk is future’s uncertain event with a probability of occurrence and a potential for loss. When
the risk actually happens, it becomes the ‘issue’.
In the article Risk Analysis and Solution, you have already learned about the ‘Risk’ analysis in
detail and identified potential risks in the project.
In the QA Test Plan, you will document those risks
Risk Mitigation

Team member lack the required


skills for website testing. Plan training course to skill up your members

The project schedule is too tight;


it’s hard to complete this project on Set Test Priority for each of the test activity.
time
Test Manager has poor management
Plan leadership training for manager
skill
A lack of cooperation negatively
Encourage each team member in his task, and inspire them
affects your employees’
to greater efforts.
productivity
Establish the scope before beginning work, pay a lot of
Wrong budget estimate and cost
attention to project planning and constantly track and
overruns
measure the progress
Step 2.4) Create Test Logistics
In Test Logistics, the Test Manager should answer the following questions:

 Who will test?


 When will the test occur?

Who will test?


You may not know exact names of the tester who will test, but the type of tester can be defined.
To select the right member for specified task, you have to consider if his skill is qualified for the
task or not, also estimate the project budget. Selecting wrong member for the task may cause the
project to fail or delay.
Person having the following skills is most ideal for performing software testing:

 Ability to understand customers point of view

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Strong desire for quality


 Attention to detail
 Good cooperation

In your project, the member who will take in charge for the test execution is the tester. Base on
the project budget, you can choose in-source or outsource member as the tester.
When will the test occur?
Test activities must be matched with associated development activities.
You will start to test when you have all required items shown in following figure

Step 3) Define Test Objective


Test Objective is the overall goal and achievement of the test execution. The objective of the
testing is finding as many software defects as possible; ensure that the software under test is bug
free before release.
To define the test objectives, you should do 2 following steps

1. List all the software features (functionality, performance, GUI…) which may need to test.
2. Define the target or the goal of the test based on above features

Let’s apply these steps to find the test objective of your Guru99 Bank testing project
You can choose the ‘TOP-DOWN’ method to find the website’s features which may need to test.
In this method, you break down the application under test to component and sub-component.
In the previous topic, you have already analyzed the requirement specs and walk through the
website, so you can create a Mind-Map to find the website features as following

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

This figure shows all the features which the Guru99 website may have.
Based on above features, you can define the Test Objective of the project Guru99 as following

 Check that whether website Guru99 functionality(Account, Deposit…) is working as


expected without any error or bugs in real business environment
 Check that the external interface of the website such as UI is working as expected and &
meet the customer need
 Verify the usability of the website. Are those functionalities convenient for user or not?

Step 4) Define Test Criteria


Test Criteria is a standard or rule on which a test procedure or test judgment can be based.
There’re 2 types of test criteria as following

Suspension Criteria
Specify the critical suspension criteria for a test. If the suspension criteria are met during testing,
the active test cycle will be suspended until the criteria are resolved.
Test Plan Example: If your team members report that there are 40% of test cases failed, you
should suspend testing until the development team fixes all the failed cases.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Exit Criteria
It specifies the criteria that denote a successful completion of a test phase. The exit criteria are
the targeted results of the test and are necessary before proceeding to the next phase of
development. Example: 95% of all critical test cases must pass.
Some methods of defining exit criteria are by specifying a targeted run rate and pass rate.

 Run rate is ratio between number test cases executed/total test cases of test
specification. For example, the test specification has total 120 TCs, but the tester only
executed 100 TCs, So the run rate is 100/120 = 0.83 (83%)
 Pass rate is ratio between numbers test cases passed / test cases executed. For example,
in above 100 TCs executed, there’re 80 TCs that passed, so the pass rate is 80/100 = 0.8
(80%)

This data can be retrieved in Test Metric documents.

 Run rate is mandatory to be 100% unless a clear reason is given.


 Pass rate is dependent on project scope, but achieving high pass rate is a goal.

Test Plan Example:Your Team has already done the test executions. They report the test result
to you, and they want you to confirm the Exit Criteria.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

In above case, the Run rate is mandatory is 100%, but the test team only completed 90% of test
cases. It means the Run rate is not satisfied, so do NOT confirm the Exit Criteria

Step 5) Resource Planning


Resource plan is a detailed summary of all types of resources required to complete project task.
Resource could be human, equipment and materials needed to complete a project
The resource planning is important factor of the test planning because helps
in determining the number of resources (employee, equipment…) to be used for the project.
Therefore, the Test Manager can make the correct schedule & estimation for the project.
This section represents the recommended resources for your project.

Human Resource
The following table represents various members in your project team
No. Member Tasks

Manage the whole project


1. Test Manager Define project directions
Acquire appropriate resources
2. Tester Identifying and describing appropriate test techniques/tools/automation
architecture
Verify and assess the Test Approach
Execute the tests, Log results, Report the defects.
Tester could be in-sourced or out-sourced members, base on the project
budget

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

For the task which required low skill, I recommend you


choose outsourced members to save project cost.
Developer in
3. Implement the test cases, test program, test suite etc.
Test
Builds up and ensures Test Environment and assets
Test are managed and maintained
4.
Administrator
SupportTester to use the test environment for test execution
Take in charge of quality assurance
5. SQA members Check to confirm whether the testing process is meeting specified
requirements
System Resource
For testing, a web application, you should plan the resources as following tables:
No. Resources Descriptions

Install the web application under test


1. Server This includes a separate web server, database server, and application server if
applicable
The testing tool is to automate the testing, simulate the user operation, generate
the test results
2. Test tool
There are tons of test tools you can use for this project such as Selenium, QTP…
etc.
You need a Network include LAN and Internet to simulate the real business and
3. Network
user environment
4. Computer The PC which users often use to connect the web server
Step 6) Plan Test Environment

What is the Test Environment


A testing environment is a setup of software and hardware on which the testing team is going to
execute test cases. The test environment consists of real business and user environment, as well
as physical environments, such as server, front end running environment.

How to setup the Test Environment


Back to your project, how do you set up test environment for this banking website?
To finish this task, you need a strong cooperation between Test Team and Development Team

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

You should ask the developer some questions to understand the web application under
test clearly. Here’re some recommended questions. Of course, you can ask the other questions if
you need.

 What is the maximum user connection which this website can handle at the same time?
 What are hardware/software requirements to install this website?
 Does the user’s computer need any particular setting to browse the website?

Step 7) Schedule & Estimation


In the article Test estimation, you already used some techniques to estimate the effort to
complete the project. Now you should include that estimation as well as the schedule to the Test
Planning
In the Test Estimation phase, suppose you break out the whole project into small tasks and add
the estimation for each task as below
Task Members Estimate effort

Create the test specification Test Designer 170 man-hour

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Perform Test Execution Tester, Test Administrator 80 man-hour


Test Report Tester 10 man-hour
Test Delivery 20 man-hour

Total 280 man-hour


Then you create the schedule to complete these tasks.
Making schedule is a common term in project management. By creating a solid schedule in the
Test Planning, the Test Manager can use it as tool for monitoring the project progress, control the
cost overruns.
To create the project schedule, the Test Manager needs several types of input as below:

 Employee and project deadline: The working days, the project deadline, resource
availability are the factors which affected to the schedule
 Project estimation: Base on the estimation, the Test Manager knows how long it takes to
complete the project. So he can make the appropriate project schedule
 Project Risk : Understanding the risk helps Test Manager add enough extra time to the
project schedule to deal with the risks

Let’s practice with an example:


Suppose the boss wants to complete the project Guru99 in one month, you already estimated the
effort for each tasks in Test Estimation. You can create the schedule as below

Step 8) Test Deliverables


Test Deliverables is a list of all the documents, tools and other components that has to be
developed and maintained in support of the testing effort.
There are different test deliverables at every phase of the software development lifecycle.

Test deliverables are provided before testing phase.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Test plans document.


 Test cases documents
 Test Design specifications.

Test deliverables are provided during the testing

 Test Scripts
 Simulators.
 Test Data
 Test Traceability Matrix
 Error logs and execution logs.

Test deliverables are provided after the testing cycles is over.

 Test Results/reports
 Defect Report
 Installation/ Test procedures guidelines
 Release notes

9.Discuss briefly about test coverage?


Test coverage is defined as a metric in Software Testing that measures the amount of testing
performed by a set of test. It will include gathering information about which parts of a program
are executed when running the test suite to determine which branches of conditional statements
have been taken.
In simple terms, it is a technique to ensure that your tests are testing your code or how much of
your code you exercised by running the test.

What Test Coverage does?

 Finding the area of a requirement not implemented by a set of test cases


 Helps to create additional test cases to increase coverage
 Identifying a quantitative measure of test coverage, which is an indirect method for
quality check
 Identifying meaningless test cases that do not increase coverage

How Test Coverage can be accomplished?

 Test coverage can be done by exercising the static review techniques like peer reviews,
inspections, and walkthrough
 By transforming the ad-hoc defects into executable test cases
 At code level or unit test level, test coverage can be achieved by availing the automated
code coverage or unit test coverage tools
 Functional test coverage can be done with the help of proper test management tools

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Benefits of Test Coverage in Software Engineering

 It can assure the quality of the test


 It can help identify what portions of the code were actually touched for the release or fix
 It can help to determine the paths in your application that were not tested
 Prevent Defect leakage
 Time, scope and cost can be kept under control
 Defect prevention at an early stage of the project lifecycle
 It can determine all the decision points and paths used in the application, which allows
you to increase test coverage
 Gaps in requirements, test cases and defects at the unit level and code level can be found
in an easy way

What Are Main Differences Between Code Coverage And Test Coverage?
Code coverage and test coverage are measurement techniques which allow you to assess the
quality of your application code.
Here, are some critical differences between booths of these coverage methods:
Parameters Code Coverage Test Coverage

Code coverage term used when application


Test coverage means overall test-
Definition code is exercised when an application is
plan.
running.

Test coverage is given details about


Code coverage metrics can help the team
Goal the level to which the written coding
monitor their automated tests.
of an application has been tested.

Code coverage divided with subtypes like


statement coverage, condition coverage,
Subtypes No subtype of Test coverage method.
Branch coverage, Toogle coverage, FSM
coverage.

Test Coverage Formula


To calculate test coverage, you need to follow the below-given steps:
Step 1) The total lines of code in the piece of software quality you are testing
Step 2) The number of lines of code all test cases currently execute
Now, you need to find (X divided by Y) multiplied by 100. The result of this calculation is your
test coverage %.
For example:
If the number of lines of code in a system component is 500 and the number of lines executed
across all existing test cases is 50, then your test coverage is:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

(50 / 500) * 100 = 10%

Examples of Test Coverage

Example 1:
For example, if “knife” is an Item that you want to test. Then you need to focus on checking if it
cuts the vegetables or fruits accurately or not. However, there are other aspects to look for like
the user should able to handle it comfortably.

Example 2:
For example, if you want to check the notepad application. Then checking it’s essential features
is a must thing. However, you need to cover other aspects as notepad application responds
expectedly while using other applications, the user understands the use of the application, not
crash when the user tries to do something unusual, etc.

Drawbacks of Test Coverage:

 Most of the tasks in the test coverage are manual as there are no tools to automate.
Therefore, it takes lots of effort to analyze the requirements and create test cases.
 Test coverage allows you to count features and then measure against several tests.
However, there is always space for judgment errors.

10.Describe briefly about test evaluation?

Test Evaluation Report (TER) is a document that contains a summary of all the testing activities,
methods used for testing, and a summary of the final test results of a Software project. TER is
prepared after the completion of testing and the Test Summary Report and provides all the
necessary information regarding software testing to the developers and the key stakeholders.
These stakeholders can then evaluate the quality of the tested product and make a decision on the
software release.

Features of Test Evaluation Report

 Conducts analysis and assessment of Test Summary Report (TSR), source codes, test
results, and the measures used for product testing.
 Enables objective evaluation and assessment of product quality.
 Consists of corresponding recommendations that may be required for the next testing
efforts.
 Validates that no bug or error was missed by the tester.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Reviews important change requests and issue details.


 Assess the product quality before it moves ahead in the development process.
 Allows the team members to effectively monitor each and every testing phase of the
development process.

Why is important to create Test Evaluation Report?

 Test Evaluation Reports are essential for making sure that the product under development
is achieving an acceptable level of quality before it is released to the market.
 Stakeholders and customers can take corrective actions if needed for future development
processes.
 Done right; this can add true value to your development lifecycle by providing the right
feedback at the right time.
An effective Test Evaluation Report should contain the following components:

1. Project Information
All the information regarding the project and the customer, such as Project Name, Customer
Name, and Project No. etc., is mentioned under this section. For a Change Request (CR), the CR
number can be mentioned as well.
2. Introduction
The introduction section can consists of the following:

 Purpose: This describes the purpose of the Test Evaluation in terms of test coverage and
defect analysis.
 Scope: This describes the scope of this document; associated project(s), and other items
of interest to the test team.
 Definitions: This can contain definitions, abbreviations, and acronyms required to
interpret the Test Evaluation document.
 References: This identifies the documents referenced in the Test Evaluation Summary by
title, report number, date, and author.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Overview: This describes the rest of the Test Evaluation document and how the
document is organized.
3. Test Results
Test Results are summarized in this section. Test Results are generally the outcome of the whole
process of the Software Testing Life Cycle. The produced results offer an insight into the
deliverables of a software project which represents the project status to its stakeholders.
4. Test Coverage
Test Coverage is covered in this section which includes both the Requirements-based Test
Coverage and the Code-based Test Coverage. Test Results of both the coverages are mentioned
here and are compared with the previous test results.
Read More: Test Coverage Techniques Every Tester Must Know
5. Recommendations
This section identifies any suggested actions that need to be made based on the evaluation of the
test results. These recommendations help the developers/stakeholders to understand and work
accordingly for the next phase in the development life cycle.
6. Diagrams and Graphs
Under this section, diagrams, charts, graphs, or other data visualization of the test results can be
added. This helps in better debugging and root cause analysis

Example:
Source

Test Evaluation Report Template


Following Test Evaluation Report template can be followed:

Customer Name: Date:

Project Name: Project #:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Introduction

Purpose:

Scope:

Definitions, Acronyms, and Abbreviations:

References:

Overview:

Test Results

Requirement-based Test Coverage

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Code-based Test Coverage

Recommendations

Diagrams

Best Practices to create a Test Evaluation Report


A Test Evaluation Report is a kind of communication tool between the Test Team and the
stakeholders. Through this test report, the stakeholder can understand the project situation, the
product quality, and other things. Hence, there is a need to develop good Test Reports.
A good Test Evaluation report should be:

 Concise and Clear: The information captured in the test report should be short, clear,
and easy to understand.
 Detailed: The report should provide detailed information about the testing activities
whenever and wherever necessary. The information provided should not be abstract as it won’t
help the stakeholders in drawing a clear picture of it.
 Standard: The report should follow a standard template as it is easy for stakeholders to
review and understand.
 Specific: The report should describe and summarize the test result specification and focus
on the main point only.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

On a closing note

Software Testing is extremely crucial nowadays and is done by all businesses. It not only
validates the product quality, but also makes sure that the customer demands are fulfilled.
Therefore, a Test Evaluation Report, provided after the Test Summary Report completion, is very
important.
The goal of this report is to deliver to the stakeholders a detailed evaluation and assessment of
the test results and the methods used for testing. The information collected here is presented to
the customer with an evaluation from the testing team, which indicates their product assessment
against the evaluation mission.
Tools like BrowserStack allows you to test on real devices and browsers, at the same time you
can also get text logs, console logs, video logs, screenshots, and share those on Slack,
GitHub, Jira, and Trello for better defect management within the team. It helps in collecting all
the necessary information that can be used to create a comprehensive Test Evaluation Report.

11.Describe about Acceptance test?

Acceptance testing is a quality assurance (QA) process that determines to what degree
an application meets end users' approval. Depending on the organization, acceptance testing
might take the form of beta testing, application testing, field testing or end-user testing.

A QA team conducts acceptance tests to ensure the software or app matches business
requirements and end-user needs. An acceptance test returns either a pass or fail result. A fail
suggests that there is a flaw present, and the software should not go into production.

Acceptance testing enables an organization to engage end users in the testing process and gather
their feedback to relay to developers. This feedback helps QA identify flaws that it might have
missed during the development stage tests, such as unit and functional testing. Additionally,
acceptance testing helps developers understand business needs for each function in the tested
software. Acceptance testing can also help ensure the software or application
meets compliance guidelines.

Acceptance testing process

Acceptance testing occurs after system tests, but before deployment. A QA team writes
acceptance tests and sets them up to examine how the software acts in a simulated production
environment. Acceptance testing confirms the software's stability and checks for flaws.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Acceptance testing includes the following phases: plan, test, record, compare and result.

Once the test is written according to the plan, end users interact with the software to gauge its
usability. The software should meet expectations, as defined by the business in the requirements.
When the tests return results, IT should report and fix any flaws that show up. If the results
match the acceptance criteria for each test case, the test will pass. But, if test cases exceed an
unacceptable threshold, they will fail.

Types of acceptance testing

Acceptance testing encompasses various types, including user acceptance and operational
acceptance.

How QA
differs from UAT

User acceptance testing (UAT), also called end-user testing, assesses if the software operates as
expected by the target base of users. Users could mean internal employees or customers of a
business or another group, depending on the project.

Operational acceptance testing reviews how a software product works. This type of testing
ensures processes operate as expected and that staff can sufficiently use and maintain the system.
Operational acceptance testing examines backups and disaster recovery, as well as
maintainability, failover and security.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

12.Discuss briefly about summarize testing results?


To summarize testing results in software testing, you can:

 Prepare a Test Report, which is a document that contains a summary of all test activities
and final test results of a testing project. It is an assessment of how well the testing is
performed. Based on the test report, stakeholders can evaluate the quality of the tested
product and make a decision on the software release.
 Prepare a Test Summary Report, which is a formal document that summarizes the results
of all testing efforts for a particular testing cycle of a project / module or a sub module.
Generally, test leads or test managers prepare this document at the end of testing cycle. Some
test managers prepares it at the end of project.
 Use metrics to understand the test execution results, the status of test cases & defects, etc.
Required metrics can be added as necessary. Example: Defect Summary-Severity wise;
Defect Distribution-Function/Module wise; Defect Ageing etc.. Charts/Graphs can be
attached for better visual representation. One such metric is the number of test cases planned
vs executed.

Unit-III

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Answer all the questions


Part-A
1.What is the goals in test process assessment?
The goals of software testing include123:

 Detecting bugs as soon as feasible in any situation.


 Avoiding errors in a project’s and product’s final versions.
 Inspecting to see whether the customer requirements criterion has been satisfied.
 Gauging the project and product level of quality.
 Finding defects in the software program.

2.What is meant by test automation assessment?


Automation assessment

Before embarking on a cost and resource intensive effort, that automation can be, a thorough
evaluation and assessment ensures that maximum value is derived from the effort. Test
automation assessment can be carried out for both existing automation processes or for projects
that want to introduce automation to the process or framework to:

 Understand current systems and processes. Evaluate part of the testing process that
should be automated.
 Determine tools that best suit the requirement.
 Create the right framework that complements the process flow and your CI/CD pipeline.
 Present strategy, recommendations, and implementation plan.

3.What is test automation framework?


Numerous successful engagements, helping businesses to automate their software testing
process, have enabled Trigent to develop a proven, robust, and comprehensive test automation
framework – AutoMATE. Trigent's Next-gen technology and AutoMATE testing framework
assure excellent software quality and unmatched flexibility at every step of your digital journey.
4. Why do we use automation framework in test automation?

Using a test automation framework has many benefits12345. Here are some of them:

 Improves test efficiency

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Reduces the cost of maintenance


 Maximizes test coverage and functionality of the application
 Defines the reusability of code
 Avoids duplication of test cases used for automation across platforms

5. What are the major advantages of Automation Frameworks for Enterprises?


Some of the benefits of automation framework are12345:

 Reduced complexity and cost of IT environment


 Improved test speed, accuracy, efficiency, and coverage
 Lower maintenance cost and manual intervention
 Enhanced security and compliance
 Increased productivity and morale of IT team

6. What are the advantages enterprises get with Cloud test automation frameworks?
 1. Time is money and cloud based testing saves it ...
 2. Saving costs by cloud automation tools ...
 3. Global access 24*7 to perform automation testing ...
 4. Scalability at its best ...
 5. Integration options of Cloud based testing tools offer a streamlined and focused
collaboration ...

7. What are the steps for an effective Test Automation Approach?


The steps of automation testing process are12:

1. Test tool selection


2. Define scope of automation
3. Planning, design and development
4. Test execution
5. Maintenance

8.What is Agile testing?


The agile testing process is a smart way of testing complicated software, which accepts more
effective results as compared to the traditional testing procedures. In the modern days of software
testing, agile testing has gained a lot of acceptance and significance.
9. How is Agile Methodology used in Testing?
Agile methodology in testing is a methodology that helps developers test their code
continuously and rapidly. It also involves high customer involvement and feedback. Agile
testing uses various methodologies such as Test-Driven Development (TDD), Behavior Driven
Development (BDD), Exploratory Testing, and Acceptance Test-Driven Development

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

(ATDD). These methodologies aim to test the code as early as possible and document and
develop the application around the user behavior.
10.What is software testing methodology?
Testing methodologies are specific strategies for testing all of the pieces of your software to
make sure it behaves as expected. These strategies include many ways to test software, such as
unit testing, integration testing, performance testing, and more. In this article, we’ll take a closer
look at testing practices that use a test-first approach to software development.
11.What is assessment model or framework?
Choose a recognized assessment model or framework to guide the assessment process. Common
frameworks include the Test Maturity Model Integration (TMMi), Capability Maturity Model
Integration (CMMI), and ISO/IEC 29119 standards for software testing.
12.What is plan the assessment?
• Develop a detailed plan that outlines the assessment's goals, schedule, resources, and
roles and responsibilities of the assessment team.
• Identify the assessment criteria and the specific practices and processes that will be
evaluated.
13.What is collect data and evidence?
Gather data and evidence related to the organization's testing practices. This may involve
reviewing documentation, conducting interviews, surveys, and observations, and examining
artifacts like test plans and test cases.
14.What is shift left testing?
• Shift-left testing involves moving testing activities earlier in the software development
lifecycle (SDLC), ideally at the requirements and design stages.
• Teams are integrating testing with development processes to identify and address defects
sooner, reducing the cost and effort required to fix issues.
15.What is test automation and continuous testing?
• Test automation continues to be a dominant trend, with organizations investing in test
automation frameworks and tools.
• Continuous Testing practices, integrated with DevOps and CI/CD pipelines, ensure that
testing is performed continuously throughout the development process.
16.What is AI and machine learning in testing?
• AI and ML are increasingly used to enhance software testing. They are applied for test
data generation, test case optimization, anomaly detection, and predictive analytics.
• AI-driven testing tools can help identify areas of the application that are more prone to
defects.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

17.What is shift right and chaos engineering?


• Shift-right testing focuses on testing in production, often using techniques like canary
testing and feature toggles to monitor and improve software quality.
• Chaos Engineering involves intentionally injecting failures and disruptions into
production systems to uncover vulnerabilities and weaknesses.
18.What is performance engineering?
• Performance engineering goes beyond traditional performance testing to consider
performance throughout the entire software development lifecycle.
• It involves early performance modeling, analysis, and tuning to prevent performance
bottlenecks.
19.What is test data management?
• Test data management is crucial for ensuring that test environments closely resemble
production environments.
• Techniques like data masking, data anonymization, and synthetic data generation are
being used to create realistic test data while protecting sensitive information.
20.What is security and ethical hacking?
• As cybersecurity threats grow, security testing becomes increasingly important.
Organizations are adopting security testing practices like penetration testing and vulnerability
scanning.
• Ethical hacking, where security experts simulate cyberattacks to identify vulnerabilities,
is gaining traction.

Part-B
1.What are the steps in test process assessment?
The Capability Maturity Model (CMM) and its’ successor the Capability Maturity Model
Integration (CMMI) are often regarded as the industry standard for software process
improvement. Despite the fact that testing often accounts for at least 30-40% of the total project
costs, only limited attention is given to testing in the various software process improvement
models such as the CMM and the CMMI. To overcome this, Testing community have created
many complementary models ([1], [3], [4] and [5]). TMMi is one such model. The TMMi is a
detailed model for test process improvement and is positioned as being complementary to the
CMMI. TMMi [1] has a staged architecture for process improvement. It contains stages or levels
through which an organization passes as its testing process evolves from one that is ad-hoc and
unmanaged, to one that is managed, defined, measured, and optimized. Achieving each stage
ensures that an adequate improvement has been laid as a foundation for the next stage. The
internal structure of the TMMi is rich in testing practices that can be learned and applied in a

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

systematic way to support a quality testing process that improves in incremental steps. There are
five levels in the TMMi that prescribe a maturity hierarchy and an evolutionary path to test
process improvement. Each level has a set of process areas that an organization needs to focus on
to achieve maturity at that level. Each of the maturity levels has its own process areas and each
process area has to comply with a set of specific goals and generic goals. Each of the specific
goal has its own specific practices which when implemented will achieve the specific goal.
Generic goals and practices are common for each process area and it covers institutionalizing of
managed process and institutionalizing of defined process for each of the process area under each
of the maturity levels.

2.What are the major steps of test automation assessment? Explain it.
Automation assessment

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Before embarking on a cost and resource intensive effort, that automation can be, a thorough
evaluation and assessment ensures that maximum value is derived from the effort. Test
automation assessment can be carried out for both existing automation processes or for projects
that want to introduce automation to the process or framework to:

 Understand current systems and processes. Evaluate part of the testing process that
should be automated.
 Determine tools that best suit the requirement.
 Create the right framework that complements the process flow and your CI/CD pipeline.
 Present strategy, recommendations, and implementation plan.

Automation as a service

Drive seamless integration of domains and functionality tools into various automation layers.
Ensure increased application availability and infrastructure performance. Effortlessly automate
events, processes, tasks, and business functions across all levels: Web, Mobile, and API.

We leverage our AI/ML-enabled open-source automation framework that:

 Seamlessly integrates with popular test management tools and into your CI/CD pipeline.
 Provides business language scripting capabilities.
 Provides AI/ML capabilities to predict failures, determine test cases for execution for
each new build.
 Integrates tightly with many tools, including Selenium, Robotium, Calabash, Karate, etc.

3.What Is the purpose of a Test Automation Framework?Explain it.


AutoMATE – Test Automation Framework

Numerous successful engagements, helping businesses to automate their software testing


process, have enabled Trigent to develop a proven, robust, and comprehensive test automation
framework – AutoMATE. Trigent's Next-gen technology and AutoMATE testing framework
assure excellent software quality and unmatched flexibility at every step of your digital journey.

 Utilities for Risk-Based Software Testing on AUT


 Accelerated script development: Significantly reduces the script/ test cases development
effort and complexity compared to traditional test automation approaches.
 Auto-Script development: Utilizing a no-code test automation tool in BDD adds more
visibility and insight to the software development process.
 Supports cross-platform: Effortlessly automate Web, Mobile, and Integrated API Testing
Services. Allows multi-browser, multi-device testing.
 Modular and reusable testing framework components: Supports reusable components.
Reduces test automation maintenance costs.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Utilities for Test Data Creation, Debugging, and Reporting.

 New tech trends: Leverages AI/ML utilities that allow for effective Test Impact analysis
and test selection.
 Integrates with Cloud Execution types of tools such as Sauce Labs and BrowserStack.
 Integrated Static Code Analysis to maintain code correctness and code standards.
 Improved visual quality: Image-Based Testing and AI-Based UI testing.
 Integrates with CI/CD tools(Jenkins and Bamboo) to enable automated executions.
 Seamlessly integrates with popular test management tools,Scheduling and customizable
reporting.

4. What is the need for Test Automation Framework for enterprises?Explain it.
Automation Framework is not a single tool or process. It is a customised collection of processes
and tools that work harmoniously together to help automate the testing of any application. Think
of it this way, it has specific features like libraries, reusable modules, and test data.
It helps enterprises to standardise all their test automation assets, regardless of the tools they are
using.
Why do you need a Test Automation Framework?
Test Automation Framework is used in situations where multiple test cycles must be conducted
for a large number of test cases.
• It helps increase the team’s efficiency and speed, also it reduces test maintenance costs
and improves test accuracy.
• It makes your processes and applications easier to test, more readable, scalable,
maintainable, and reusable.
Test automation frameworks are used to run commands and scripts many times with various
builds to verify the output and test applications.
It takes time to develop an automation framework. So, it is advised not to automate
functionalities that are used only once. More than that, automation takes a lot of time, effort, and
resources. Therefore, it should be used for functionalities that are used multiple times.
So, here the question is:
If the automation frameworks are so time and resource-consuming, why can’t a simple script
work?
And the answer:
Scripts are not appropriate for test cases where you are testing many scenarios. When you create
test scripts for every scenario, your application test suite will become too big.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

It means if any tweaking in the property or application of any of the objects needed, you need to
alter all the scripts, and that is heavy. To avoid that, you can use test automation frameworks.
So, for an efficient test automation process, test automation frameworks are vital.
Types of Test Automation Frameworks
Each automation framework has its own architecture, advantages and disadvantages. Below
given are the different types of automation frameworks.
Behaviour-Driven Framework (BDD)
A behaviour-driven development framework is used to create a platform that allows every
Testers, Developers, Business analyst, etc. to engage actively. In addition, it helps to increase
collaboration between the tester and the developers in your project.
• Pros: It doesn’t require the users to be familiar with a programming language. With non-
technical, natural language, test specifications can be created.
• Cons: To work with BDD, sufficient technical skills and prior experience in Test Driven
Development (an iterative approach which is a combination of programming, creation of unit
tests, and refactoring) is required.
In BDD, good communication is crucial between the people who write the feature files and
develops the automation code. The coder should interpret these files and the scenarios to
implement them as automation steps. If there is no mutual understanding about the structure and
the approach being used, the scenarios become increasingly difficult to turn into working
automated tests. This can lead to problems.
Another issue is Data-driven testing, the BDD’s support for defining test data makes it easier to
create data-driven automated test scenarios. But, issues arise when trying to execute these tests in
test environments that are never left in a known state. Also, with the execution of the automated
tests, dependencies on external data feeds can often cause issues.
Modular-Driven Framework
In this, the testers create individual test scripts by dividing the application into multiple modules.
These individual test scripts can be combined to make larger test scripts. It is done by using a
master script to achieve the needed scenarios.
This master script is used to invoke the individual modules to run end-to-end test scenarios. This
framework builds an abstraction layer to protect the master module from any alterations made in
individual tests.
• Pros: Modular-driven frameworks make sure that the division of scripts leads to easier
maintenance and scalability. Thus the testers can write independent test scripts. Also, the changes
made in one module bring no or low impact to the other modules.
• Cons: Modular-driven frameworks take more time to examine the test cases and to
identify reusable flows. It requires coding skills to set up the framework.
Library Architecture Testing Framework

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Library Architecture Testing Framework is also known as “Structured Scripting” or “Functional


Decomposition.” It is based on modular framework with some additional benefits.
In modular-driven framework, testers can divide applications under test into modules, whereas in
Library Architecture Testing Framework, they can identify the common tasks and group them
into functions. After that, these groups will be kept in a library.
The test scripts reuse these libraries to create new test cases.
• Pros: This framework will lead to a high level of modularisation that makes test
maintenance and scalability easier and more cost-effective.
It has a library of common functions that multiple test scripts can use. So, it has a higher degree
of reusability.
• Cons: In Library Architecture Testing Framework, it takes more time to develop test
scripts. Also, to work with this framework, coding skills are required to write and analyse the
common functions within the test scripts.
Linear Automation Framework
The linear automation framework is commonly used to test small applications. It is also called a
Record and playback framework. With this, testers don’t need to write code to make functions.
And the steps are written in sequential order.
Here, the tester records each step, such as navigation, checkpoints, or user input, and then plays
the script back automatically to conduct the test.
• Pros: As you don’t have to write custom code, expertise in test automation is not
necessary. The code can be easily recorded in a minimal amount of time, so it is one of the fastest
ways to generate test scripts.
In this, the test scripts are laid out sequentially, so anyone involved in testing will find the test
workflow easier.
• Cons: The scripts developed using this framework are not reusable. The data is hardcoded
into the test script. It means the test cases cannot be re-run with multiple sets. If the data is
modified, test cases also should be changed.
The maintenance is considered a hassle as any changes in the application need a lot of rework.
And this model is not particularly scalable as the testing scope expands.
Data-Driven Framework
This model separates the test data from script logic. It means the testers can store data externally.
Testers will frequently need to test the same feature or function of an application multiple times
with various sets of data.
In these instances, the test data mustn’t be hard-coded in the script itself like a Linear or
modular-driven framework.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Setting up a data-driven framework will let the tester store and pass the input/output parameters
to test scripts from an external source. It can be Excel Files, Text Files, SQL Table, CSV Files, or
ODBC repositories.
The test scripts are connected to the external data source, and when needed, they are told and
populate the necessary data.
• Pros: As they reduce the number of scripts needed, multiple scenarios can be tested in
less code.
Hard-coding data can be avoided so that changes made to the test scripts do not affect the data
being used and vice versa.
• Cons: You will need a well-versed tester who is proficient in various programming
languages to completely utilise this framework’s design.
Keyword-Driven Framework
Keyword-Driven Framework also known as table-driven testing, is suitable only for small
projects or applications. The automation test scripts performed are based on the keywords stored
in the excel sheet of the project.
These keywords are a part of a script representing the various actions performed to test the GUI
of an application. These can be labeled simply as ‘click’, ‘login’, or with complex labels like
‘click link, or ‘verify link.’
• Pros: For this framework, minimal scripting knowledge is required. The code is reusable
as a single keyword can be used across multiple test scripts.
• Cons: The initial setup cost of the framework is high. It is also time-consuming and
complex. To work with this framework, you need an employee with good test automation skills.
Hybrid Testing Framework
A hybrid testing framework is a combination of Data-driven and Keyword-driven frameworks to
execute the most out of the frameworks mentioned above. It is to leverage the benefits and
strengths of other frameworks for the particular environment it manages.
• Pros: This model leverages the advantages of all kinds of related frameworks.
• Cons: In this model, tests are entirely scripted. Thus, it increases the automation effort.

5. Explain different Types of Framework used in Automation Testing?

Types of Test Automation Frameworks


Below are the different types of Automated Testing Frameworks:

 1) Linear Scripting
 2) The Test Library Architecture Framework.
 3) The Data-Driven Testing Framework.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 4) The Keyword-Driven or Table-Driven Testing Framework.


 5) The Hybrid Test Automation Framework.

Lets look at them in detail –

1) Linear Scripting – Record & Playback


It is the simplest of all Testing Automation Frameworks and also know as “Record &
Playback”. In this Automation Testing Framework, Tester manually records each step
( Navigation and User Inputs), Inserts Checkpoints ( Validation Steps) in the first round . He then
, Plays back the recorded script in the subsequent rounds.
Example: Consider logging into Flight Reservation Application and checking whether the
application has loaded on successful log-on. Here , the tester will simply record the steps and add
validation steps.
SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded after successful log-on
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Advantages

 Fastest way to generate a script


 Automation expertise not required
 The easiest way to learn the features of the Testing Tool

Disadvantages

 Little reuse of scripts


 Test data is hardcoded into the script
 Maintenance Nightmare

2) The Test Library Architecture Framework


It is also know as “Structured Scripting” or “Functional Decomposition”.
In this Automation Testing Framework, test scripts are initially recorded by “Record &
Playback” method. Later, common tasks inside the scripts are identified and grouped into
Functions. These Functions are called by main test script called Driver in different ways to
create test cases.
Example: Using the same example as above, the function for logging in to Flight Reservation
will look like .
Function Login()
SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Dialog("Login").WinButton("OK").Click
End Function
Now, you will call this function in the main script as follows
Call Login()
---------------------------
Other Function calls / Test Steps.
---------------------------
Advantages

 Higher level of code reuse is achieved in Structured Scripting as compared to “Record &
Playback”
 The automation scripts are less costly to develop due to higher code re-use
 Easier Script Maintenance

Disadvantages

 Technical expertise is necessary to write Scripts using Test Library Framework


 More time is needed to plan and prepare test scripts.
 Test Data is hard coded within the scripts

3) The Data-Driven Testing Framework


In this Framework , while Test Case logic resides in Test Scripts, the Test Data is separated and
kept outside the Test Scripts. Test Data is read from the external files (Excel Files, Text Files,
CSV Files, ODBC Sources, DAO Objects, ADO Objects) and are loaded into the variables inside
the Test Script. Variables are used both for Input values and for Verification values. Test Scripts
themselves are prepared either using Linear Scripting or Test Library Framework.
Example: Developing the Flight Reservation Login script using this method will involve two
steps.
Step 1) Create a Test – Data file which could be Excel , CSV , or any other database source.
AgentNam
Password
e

Jimmy Mercury

Tina MERCURY

Bill MerCURY
Step 2) Develop Test Script and make references to your Test- Data source.
SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded
Window("Flight Reservation").Check CheckPoint("Flight Reservation")

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

**Note "dtGlobalSheet" is the default excel sheet provided by QTP.


Advantages

 Changes to the Test Scripts do not affect the Test Data


 Test Cases can be executed with multiple Sets of Data
 A Variety of Test Scenarios can be executed by just varying the Test Data in the External
Data File

Disadvantages

 More time is needed to plan and prepare both Test Scripts and Test Data

4) The Keyword-Driven or Table-Driven Testing Framework


The Keyword-Driven or Table-Driven automation framework development requires data tables
and keywords, independent of the test automation tool used to execute them . Tests can be
designed with or without the Application. In a keyword-driven test, the functionality of the
application-under-test is documented in a table as well as in step-by-step instructions for each
test.
There are 3 basic components of a Keyword Driven Framework viz. Keyword , Application Map
, Component Function.

What is a Keyword?
Keyword is an Action that can be performed on a GUI Component. Ex. For GUI Component
Textbox some Keywords ( Action) would be InputText, VerifyValue, VerifyProperty and so on.

What is the Application Map?


An Application Map Provides Named References for GUI Components. Application Maps are
nothing but “Object Repositry”

What is Component Function?


Component Functions are those functions that actively manipulate or interrogate the GUI
component. An example of a function would be click on web button with all error handling ,
enter data in a Web Edit with all error handling. Component functions could be application
dependent or independent.
Example: To understand Keyword View lets take the same example. It invovles 2 steps
Step 1: Creating Data Table (Different from Test-Data Table created in Data Driven Framework).
This Data Table contains Action to be performed on GUI Objects and corresponding arguments if
any. Each row respresents one Test Step.
Object Action
(Application MAP) (KEYWORDS) Argument

WinEdit(Agent Name) Set Guru99

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Object Action
(Application MAP) (KEYWORDS) Argument

WinEdit(Password) Set Mercury

WinButton(OK) Click

Window(Flight Reservation) Verify Exists

Step 2: Writing Code in the form of Component Functions.


Once you’ve created your data table(s), you simply write a program or a set of scripts that reads
in each step, executes the step based on the keyword contained the Action field, performs error
checking, and logs any relevant information. This program or set of scripts would look similar to
the pseudo code below:
Function main()
{
Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table.
while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the
table.
{
Pass values to appropriate COMPONENT functions.Like Set(Object Name, Argument)
ex.Set(Agent Name, Guru99).
}
}
Call CloseConnection() //Function for Closing connection after all the operation has been
performed.
} //End of main
Thats all to Keyword Driven Framework.
The advantage of Keyword Driven Framework is that the Keywords are re-usable. To understand
this consider you want to verify login operation for a Website say YAHOO MAIL. The table will
look like this –
Object Action
(APPLICATION MAP) (KEYWORD) Argument

WebEdit(UserName) Set [email protected]

WebEdit(Password) Set xxxxx

WebButton(OK) Click

Window(Yahoo Mail) Verify Loads


If you observe in this case the Keywords Set , Click , Verify remain the same for which
corresponding component functions are already developed. All you need to do is change the
Application Mapping (Object Repository) from earlier Flight Reservation to Yahoo Mail , with a
change in argument values and the same script will work!

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Advantages

 Provides high code re-usability


 Test Tool Independent
 Independent of Application Under Test, the same script works for AUT (with some
limitations)
 Tests can be designed with or without AUT

Disadvantages

 Initial investment being pretty high, the benefits of this can only be realized if the
application is considerably big and the test scripts are to be maintained for quite a few
years.
 High Automation expertise is required to create the Keyword Driven Framework.

NOTE : Even though Micro Focus UFT advertises itself as KeyWord Driven Framework, you
can not achieve complete test tool and application idependence using HP UFT.

5) The Hybrid Test Automation Framework


As the name suggests this framework is the combination of one or more Automation Frameworks
discussed above pulling from their strengths and trying to mitigate their weaknesses. The hybrid
test QA automation framework is what most test automation frameworks evolve into over time
and multiple projects. Maximum industry uses Keyword Framework in a combination of
Function decomposition method.
PS: Other Automation Frameworks worth a mention are

Test Modularity Framework


In this framework, a common task in test script are grouped together as Modules.
Example: Using Actions in QTP use can create a Modualr Scripts
Sample Script for Login
SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'End of Script
Now you can call this Action in the main script as follows –
RunAction ("Login[Argument]", oneIteration)
Business Process Testing (BPT)
These Automation Frameworks, break up large Business Processes into Components which can
re-used multiple times in the same or different test scripts. For example , the Business Process of
Booking a flight is split into components like Login , Finding Flights , Booking , Payment &
Logout which can be re-used in the same Business process or different processes. Also, BPT
facilitates closer coordination amongst SME’s and Automation Engineers .

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

6.Describe about the principles of agile testing?

Principles of Agile Testing

Agile Testing includes various different principles that help us to increase the productivity of our
software.

1. Constant response
2. Less documentation
3. Continuous Testing
4. Customer Satisfaction
5. Easy and clean code
6. Involvement of the entire team
7. Test-Driven
8. Quick feedback

For our better understanding, let's see them one by one in detail:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

1. Constant Response

The implementation of Agile testing delivers a response or feedback on an ongoing basis.


Therefore, our product can meet the business needs.

In other words, we can say that the Product and business requirements are understood throughout
the constant response.

2. Less Documentation

The execution of agile testing requires less documentation as the Agile teams or all the test
engineers use a reusable specification or a checklist. And the team emphases the test rather than
the secondary information.

3. Continuous Testing

The agile test engineers execute the testing endlessly as this is the only technique to make sure
that the constant improvement of the product.

4. Customer Satisfaction

In any project delivery, customer satisfaction is important as the customers are exposed to their
product throughout the development process.

As the development phase progresses, the customer can easily modify and update requirements.
And the tests can also be changed as per the updated requirements.

5. Easy and clean code

When the bugs or defects occurred by the agile team or the testing team are fixed in a similar
iteration, which leads us to get the easy and clean code.

6. Involvement of the entire team

As we know that, the testing team is the only team who is responsible for a testing process in
the Software Development Life Cycle. But on the other hand, in agile testing, the business
analysts (BA) and the developers can also test the application or the software.

7. Test-Driven

While doing the agile testing, we need to execute the testing process during the implementation
that helps us to decrease the development time. However, the testing is implemented after
implementation or when the software is developed in the traditional process.

8. Quick response

In each iteration of agile testing, the business team is involved. Therefore, we can get continuous
feedback that helps us to reduces the time of feedback response on development work.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

7.Briefly explain about test center of excellence?


A Testing Center of Excellence (TCoE) is a framework that defines, implements & measures
testing controls and standards across an organization.

In this framework, the testers themselves have shared resources across teams, however testing
protocols, toolsets, and KPIs are maintained at a centralized level. This allows organizations to
quickly deploy any tester to any team while continuously maintaining QA principles and
processes.

When Is A TCoE Useful?


It can be advantageous for companies that have complex organizational structures that
sometimes result in testers spanning multiple teams where project goals may not align. However,
there are several other situations where a TCoE may be useful for an organization.

If any of these apply, then a TCoE could be an ideal solution:


 You have a complicated organizational structure: If all your testers do not report into
the same manager or do not share common goals, it can be challenging or impossible to
normalize processes and tooling across an organization.
 You have a desire to identify common testing KPIs and track trends: Ensuring
quality across multiple teams can be challenging, especially if you don’t have one person
or a group whose primary focus is on it. You could see variations in how teams track
certain KPIs while others track none at all. It can define common metrics and measure
quality throughout your organization, thereby reducing or even eliminating the challenge
altogether.
 Defects are an issue: By standardizing processes, tooling, and KPIs, it can lead to fewer
defects throughout your SDLC.
 You want to homogenize processes and tooling across teams: A TCoE’s main function
is to standardize processes and tools across teams. This normalization results in less time
spent on defining and implementing multiple variations unnecessarily. In addition, it
encourages cross-team communication around best practices and guidelines related to the
test case writing, automation scripting, and execution.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 You feel pressure to reduce time to production: The QA cycle of writing test cases,
scripting and executing takes a considerable percentage of the overall software
development lifecycle (SDLC). Having a TCoE in place cuts out the repetitive processes
across teams, allowing them to focus solely on testing tasks that matter.
 Your organization is challenged by not hiring and onboarding strong testing
resources: It can establish reliable recruiting, hiring, and onboarding protocols. This
leads to strong testers across your organization, who are all onboard with consistency.
 You want to encourage persistent innovation: A tester’s day is filled with writing test
cases or scripting, executing tests, and reporting defects. There is typically very little time
for innovating and advancing the way they work. Having a Testing Center of Excellence
ensures that someone in your organization is focused on this critical component.
 Shifting projects and priorities leaves your testers shifting teams or deliverables
often: In an agile environment, sometimes customer feedback loops lead to frequently
shifting priorities. Having the ability to shift resources and maintain quality is the key to
being successful.
How To Set Up TCoE?
Once an organization agrees to the framework of a Testing Center of Excellence, then hard work
comes in the form of successfully implementing it.

A successful implementation considers the below steps:


 Define the challenges you need in your TCoE to solve or account for. At a minimum, it
should standardize tools and processes. Additionally, you may customize your TCoE to
include discovering and implementing new technologies, defining and measuring KPIs,
or even hiring and onboarding new QA resources.
 Identify who will govern your Testing Center of Excellence. This should be a dedicated
team of individuals who properly represent your testing teams as a whole. Some
organizations decide to partner with a vendor for this implementation while others keep it
fully in house.
 Outline your TCoE roadmap. Every organization is different in their needs and desired
outcomes. Identify what areas are the most important and prioritize those accordingly.
 Define how this group will interact with other teams. This requires leadership buy-in
across your organization. Things to consider include how the TCoE will roll out new
processes or tools and ensure proper adherence, and what level of guidance they can give
to teams if the protocols aren’t followed. Defining this upfront will limit the future
missteps between your TCoE and teams.
 Document your current tools, KPIs, processes, and methodologies. Prior to and
during implementation, there will already be an agreed-upon set of processes or tools.
Ensuring expectations are properly documented and an ongoing document repository in
place is important for future reference or onboarding.
 Engage your teams to understand starting deficits. Perhaps you have testers who
aren’t adhering to previously defined processes, or maybe they are using unapproved
tools. Engaging each team to validate you understand their needs, as well as any gaps, is
essential in building a strong starting foundation.
 Communicate across your organization: By this point in your implementation, most
people should be aware of the Testing Center of Excellence and know what it means,
however, don’t take that knowledge for granted. Make sure you communicate the
existence of the TCoE, the purpose, and its goals to everyone in your organization.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Resources/Cost Involved
Your resources and costs may vary depending on how your company approaches the
implementation. For example, if you decide to partner with a third-party vendor to start-up
and/or maintain the TCoE, the internal resources dedicated to this may be minimal, however,
your partnership may result in higher costs.
On the contrary, if you’re considering implementing this framework in-house, then the
following resources and costs should be considered:
 Resources: A Testing Center of Excellence should be comprised of individuals who are
fully dedicated to this initiative. When considering who should be included, contemplate
recruiting testing managers, testing leads, and ensure someone from each testing
competency is involved (automation, manual, performance, security, etc).
 Cost: The cost associated with starting up an internal TCoE includes resources that will
be dedicated to its implementation and those that will formally sit within that group
moving forward. In addition, there may be costs to consider while standardizing testing
tools or purchasing a document repository solution.
TCoE Pros & Cons
While analyzing whether to implement a Testing Center of Excellence you must fully consider
the pros and cons as such.

Given below are some benefits of implementing a TCoE:


 Enhanced core skill sets of all testers: By implementing a Testing Center of Excellence,
you’re investing in your testers’ overall skills through training and innovation, thereby
resulting in higher quality products for your customers.
 Standardization of automation frameworks and reduction of complexity: By having
a defined automation framework you’re ensuring that all teams are following basic
coding standards. This leads to shorter scripting cycles & execution times, time reduction
when onboarding new automation engineers, and improved testing quality & coverage.
 Increased agility: Enforcing every tester to work within a set guardrails allows priorities
to quickly shift without testers having to learn varying processes or tools across teams. In

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

addition, scaling up teams using an outsourcing model allows individuals to be quickly


and consistently onboarded.
 Continuous Improvement: The main component of having a well-rounded TCoE is the
ongoing modernization of tools and processes. Having a dedicated team whose goal
incorporates this, makes certain that your organization is always operating in a modern
testing world.
 Cost Savings: Standardizing tools across teams could result in considerable cost savings
for an organization over time.
 Decrease testing costs: HCL published a case study detailing a Testing Center of
Excellence implementation that led to an 11% decrease in testing costs for the
organization. The full case study can be found here.
It may not be the right path for your organization at times.

Here are some cons to consider before deciding to make the leap:
 A TCoE may overcomplicate things: If you have one or two teams with static testers,
odds are there that the processes and tools are fairly aligned. Or maybe you have high
functioning teams that would find standard ways of working an impediment to being
successful. Either way, adding in an additional layer may add unnecessary complexity,
thereby resulting in delayed releases and frustration.
 Insufficient support could lead to burnout and failure: Deciding to implement a TCoE
without backing from all levels of your organization could lead its members feeling
discouraged and burned out if their process and tooling recommendations aren’t
supported or adopted properly.
TCoE Stages Of Evolution
The below image shows the three stages of TCoE:

Testing Center of Excellence Pitfalls


With every new venture, there are certain pitfalls to avoid.

Given below are some pitfalls to consider while implementing a TCoE:


 Not aligning TCoE goals to organizational outcomes: By definition, it is a centralized
team of people who share the common goal of encouraging quality across the
organization. The other teams will be subject to adhering to the outputs of the TCoE. It’s
only logical that the goals of the TCoE align with your organization’s goals.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Not defining how much authority the TCoE has: You will inevitably have a tester or
team who fails to follow processes or use tools outlined by the TCoE. Failing to provide
the Testing Center of Excellence with the ability to enforce guidelines will be
counterproductive and lead to low adoption rates over time.
 Failing to create feedback loops for communication, both ways: Having a group of
individuals defining process or implementing new tools, without buy-in or direction from
the other teams in the organization, will drive an unsuccessful implementation. It is
important that all testers are engaged and help in driving decisions, not just in the
beginning, but over time as well.
 Creating a TCoE with bad collaborators and communicators: It’s not enough for this
group to be comprised of people who understand the testing principles in-depth, it is also
a must that they value communication and collaboration.
 Trying to move too quickly during the implementation phase: Identifying, planning,
and implementing a Testing Center of Excellence takes time. Ensuring that you’ve gone
through the steps above, and taking the time needed to plan upfront, will pay off in the
end.

KPIs For Testing Center of Excellence


Identifying a solid set of KPIs upfront will help you to understand if your implementation of the
TCoE is adding value to your organization or not. As you continue to roll out a new process or
tweak the existing ones, the KPIs will provide a good success measurement.

Identifying what KPIs you should measure is challenging and unique to every organization.
While selecting your set of KPIs, you must consider the team sizes and distribution, company
culture, and current gaps or challenges you are trying to fix.

8.Explain about onsite/offshore model?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

A project delivery model is a term that is widely used within the IT industry. It is a way of
project delivery based on the location of labor resources. The choice of a delivery model can
affect the success of the entire project.
Our article is all about how the software engagement models operate and how they can operate
more efficiently. Let’s figure out the relationship between project success and practices and
understand the pain points of project managers. We will answer the question “What is an onsite
and offshore delivery model?”, and compare onsite, offshore, and hybrid cooperation with
outsourcing vendors as well. Besides, you will learn what suits your needs best, onsite software
development or offshore project development.
You may find it useful: How to set up a dedicated team for your project?

What is onsite model?


The onsite delivery model often called the onshore model, is defined as a way of software
development and delivery when vendors send their qualified employees to the client’s site.
The vendor’s team continually interacts with the customer’s team members. Together, they
collect information, develop, implement, maintain and support the project. One distinctive
feature of the onsite model is that the tasks assigned by a customer are completed by the outside
employees.
This type of engagement model is perfect for short-term projects. Customers choose the onsite
delivery model mainly for re-engineering projects with a repetitive scope of work. The other case
is when customers have unclear requirements for the project.
The onsite model is the most effective in cases when continuous interaction between the
customer’s team and outside experts is required. Outside employees are able then to approve the
client’s requirements at every single step of SDLC.
More about engagement models in the IT industry.

The key benefits of onsite model


Customers use the onsite development model when they need to migrate to the new technology
or modify their legacy systems. The popularity of this model is explained by a certain number of
the following advantages:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

On-hand information. Both, a vendor and a customer, can get first-hand information from their
employees to learn about the current work progress.
Face-to-face communication enables on-time detection of emerging issues and efficient
problem-solving.
Effective collaboration. As there is no time and distance gap between both sites, there is almost
no misunderstanding within a team.
Time effectiveness. It often happens that clients offer some changes at the latest stages of the
software development lifecycle. When a team uses an onsite delivery model, there are no
chances of late changes. Everything is done on time.
Enhanced time to market. The product is delivered faster due to the above-mentioned
advantages.

What is offshore model?


The offshore development model is a popular delivery model that is based on the vendor’s site.
The offshore delivery model is also known as outsourcing. The customers order software
development from developers in different countries. The client has no face-to-face interaction
with the vendor. However, a customer is able to communicate with the team members via video
calls, etc. This way of software development is good for well-structured and planned projects
which have clear SRS documentation. Offshore development centers are quite popular
nowadays.
Are you going to outsource software development? Check out a list of the 10 best countries for
IT outsourcing.

The key benefits of outsourcing


Clients choose this way of cooperation with developers when their projects are expected to last
long. The major advantages of outsourcing include the following pros:
 Low costs. It’s cheaper to outsource IT projects to countries with low labor costs.
 Perfect outcomes. The quality of the developed projects is no worse than those
developed by in-house engineers.
 No hidden prices. A client is able to get an accurate estimation according to the payment
models offered by an outsourcing company.
 Round-the-clock support. Typically, offshore developers offer 24/7 support services,
which means you mustn’t be pegged to the time differences.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Whereas there are a lot of advantages of using an offshore delivery model, clients must be aware
of the risks related to this type of partnership. Make sure you know about these risks.
Learn more about offshore dedicated teams.

What is the difference between onsite and offshore?

What is onsite and offshore model? Hybrid model


What is an onsite and offshore model? A hybrid model (offshore onsite model as it is also often
called) is a mixed type of onsite and offshore cooperation. This engagement model is one of the
most successful models used by lots of companies. The work is distributed between onsite and
offshore teams. Typically, 20-30% of tasks are completed by the onsite employees, and the rest is
done by the offshore team members.
Let’s find out what assignments onsite workers do.
 Initial requirements capture
 Project planning
 Executing the project
 Dealing with the client and managing partnerships
Below are assignments offshore employees complete usually:
 Discussing the requirements
 Monitoring that the final results match the initial requirements
 Continuous interaction and support

The key benefits of hybrid model teams


The hybrid delivery model outsourcing is good for sophisticated product development, and
complicated and long-term IT projects. While enjoying the benefits of outsourcing, the client still
gets an onsite team to address any queries or issues without the burden of managing a large-scale
onsite team. Here is an example of the responsibilities distribution:

People often choose the hybrid delivery model because of the cost savings of utilizing offshore
resources while reducing the total infrastructure cost (for the onsite team). Among the pros of an
onsite-offshore model are the following benefits:
 Direct communication
 High effectiveness

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Best resources
 Cost-effectiveness
 Best practices in resource management
The management and administration costs involved in maintaining both the onsite and offshore
employees may inhibit many service providers from going for the onsite-offshore model. Also,
cultural differences between the onsite employees and offsite team members need to be managed
effectively to get the best results.
Are you looking for developers? Check out our staff augmentation options.

How to get maximum productivity from the offshore team


Today, a lot of companies are offshoring their information technology to countries with lower
wages. Usually, offshore team meaning is perceived as cost reduction, entering a large labor
pool, increasing international opportunities, increasing the quality of service, and exploiting
around-the-clock development. However, oftentimes almost all of these goals of offshoring are
not or partly met.
Let’s analyze why certain offshore projects are unsuccessful and how they should be set up in
order to meet the predetermined goals. How do coordinate an offshore software development
project to increase the chance of success?
Before proceeding to the question above, we should answer one more question “What is a
successful project?”

Project success

A short time ago, costs, time, and savings were the most important things determining success. A
project should not cost more than it was budgeted. A project should be completed on time, and
the results of the work should lead to benefits that are higher than the costs of the project. These
things are the main factors ensuring success, although recently, extra elements of success were
added.
So, let’s define a successful software development project as a software development project
where the delivered product meets the scope, has at least the expected quality, is completed on
time, and does not exceed its total budgeted costs, and communication.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

In our company, we adhere to these principles. The teamwork of business analysts, tech leads,
and project managers assures accurate estimations. They select the right people and bring a team
together according to a customer’s project requirements.
Our senior managers and business analysts are mostly former developers with a strong
background in software engineering. Thus, they follow all the steps of the software development
life cycle and understand how important each of the stages is. These people select the right
candidates having all the necessary skills to complete a particular project.
Before bringing a team together, every single member of the team takes a special test to define
how psychologically compatible he/she is with other members of the team. Professional
recruiters develop these tests, and the latter provide accurate results.
Learn more about DICEUS.

Onsite offshore engagement model: How to communicate with offshore teams


According to the technical report “Improving offshore communication by choosing the right
coordination strategy” written by Matthias Fabriek, Mischa van den Brand, Sjaak Brinkkemper,
Frank Harmsen, and Remko Helms, poor quality of communication leads to less knowledge
exchange. Less knowledge exchange leads to lower success. Lower perceived success influences
communication negatively.
Here are some onsite-offshore communication model tips:

Tip 1. Focus on communication and coordination

Communication is the key instrument to overcome distances between onsite and offshore
employees and a client.

Tip 2. Coordinate and control communication

Control is adhering to goals, policies, standards, and quality levels. Coordination means all
managing activities that influence the project and, thus, communication.
If coordination is not sufficient, team performance and the final result will also not be sufficient.
This turns out to be one of the main sources why offshore projects fail: project management is
not adapting to the new offshore situation that is different from a distributed situation in the
home country.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Tip 3. Measure coordination

The following coordination areas need attention: organizational structure, risk management,
infrastructure, process, conflict management, team structure, and team organization. Here are
five main categories:
 Standards: Standards include all methodologies, rules, dictionaries, procedures, etc.
They are focused on delivering the right product (scope) with the right quality.
 Plans: This category includes all schedules, milestones, and other plans. They all are
focused on delivering the product on time and within the budget.
 Formal mutual adjustment is all about coordinating formal communication. This
category includes the creation of hierarchies, the planning of formal meetings, etc. Delegation is
also an important aspect that affects team performance over distance: people have certain
responsibilities in the project or the process.
 Informal mutual adjustment: Some small measures can be taken to increase the chance
of informal communication between people.
 Team selection: The knowledge and experience of all team members together influence
the success of the project. Three dimensions define the team’s maturity: team technical
competency, team motivation, and distributed teamwork skills (the ability to cooperate in a
distributed environment).
The five previously mentioned categories of coordination measures meet onsite offshore support
model challenges and aim at improving communication and knowledge exchange.

Who is a project coordinator? Onsite offshore coordinator responsibilities


To provide proper coordination of projects developed according to the onsite offshore delivery
model, companies often hire coordinators. They may help you coordinate the work of different
teams in various projects, for example, in onsite offshore testing model.
Our project managers and coordinators are professional business analysts having excellent
knowledge of how to make your startup or business grow with the proper software solution.
They delve deeply into your business processes and generate the best-suited ideas for your
project according to your needs and requirements.

Conclusion
To sum it up, offshore project meaning is a wide notion, and the project success depends on a
great number of factors. Whatever delivery model you choose, you should consider these factors
before starting a project.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Let’s sum up the advantages of the three models under this review:

Offshore model

 High-cost savings
 A single point of contact
 A minimum 4-hour overlap with the on-site team
 Clear, responsive communications

Onsite model

 Face-to-face communication with team members


 Maximum control and coordination of time and effectiveness
 A negligible communication gap
 Reduced recruitment costs

Hybrid model

 Transparent project status and clear communication at all levels


 An in-depth understanding of each other’s working styles leads to long-term benefits
 Optimized resources, quality, project, and process management
 Cost advantages of having offshore software developers
Besides, a client should take into consideration the five categories of coordination measures
while working with offshore employees: standards, plans, teams, and formal and informal mutual
adjustment. Follow our blog to learn more about the successful cooperation with in-house, on-
site, or offshore employees. We are here to help you manage your projects effectively and choose
the most suitable onsite offshore model.

9.Discuss briefly about modern software testing tools?


5 Best Software Testing Tools
What is Testing?

It is a process in which pre-scripted tests are executed on a software application before their
production release to check for any defect.

Types of Testing

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Manual Testing

It’s a manual process to check for defects if any, while performing this tester must have the
stance of an end user. And ensuring all the features are working as stated in the requirement
document.

The Automated Testing

It has an objective to simplify the testing efforts as much possible with a minimum set of scripts
to find any defect using the automation tools. If a large percentage of a quality assurance (QA)
team’s resources are consumed by the unit testing, E.g. then for automation this process might be
a good candidate. Automated testing tools have the capability of comparing results with earlier
test runs, reporting outcomes and, executing tests. Thus, tests carried out with these tools can
repeatedly run, at any time of the day.

The software tool market is flooded with numerous soft-ware testing tools. There are 100+ tools
in the market, while not all of them will offer you the best service. Here is a list of best sorted
Software Testing Tools:

1. Apache JMeter
2. loadRunner
3. Loadster
4. Load impact
5. Qtest
6. httperf
7. Selenium
8. Qtp – HP
9. Appium
10. Pylot

The list goes on to a great number of options available. While the best of all the available options
are few only – Selenium, JMeter, LoadRunner, Qtp- HP and Appium are the most preferred of
all.

1. Selenium: this software testing tool is designed to test web applications. It was originated
back in the 2000s and evolved over a decade. Selenium has been a choice for web automation
testers especially for the ones possessing advanced programming and scripting skills for being
automation framework. Also, it has become a core framework for the other open source test
automation tools such as- Watir, Protractor, Robot Framework, and the Katalon
Studio. As Selenium supports multiple system environments like- Windows, Linux and Mac.
And the browsers- Firefox, Headless browser, IE, and Chrome. While, its scripts can be written
in various programming languages such as- Groovy, Python, PHP, Ruby, Java, Perl, etc.

2. JMeter: its open source software, a complete Java application designed to measure
performance and to load test. It was solely designed for testing the web applications but then

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

extended to other test functions as well. Apache JMeter may be used to test performance both on
static and a dynamic resource, Web dynamic applications JMeter is used.

To simulate a heavy load on a server, group of servers, network or to analyze overall


performance under different load types or object to test its strength it can be used.

3. LoadRunner- it’s a performance testing tool developed by hp completely using C language. It


is designed to test applications measuring the system behaviour and their performance under
load. By generating messages between the applications it stimulates user activity, the interactions
and messages generated are stored in the scripts.

4. QTP – HP: Quick Test Professional while the latest name is “UTF” i.e. Unified Functional
Tester after being acquired by HP, is an automation functional testing tool, primarily used for
regression, service testing, and functional. Using this you can automate actions of users on a web
or client based computer application and testing the same actions for different users, different
browsers, and various windows operating systems.

5. Appium: It’s an open source automation tool designed for mobile applications. All three types
of mobile applications: hybrid, mobile web, and native are tested by Appium. While, it also
allows to run the automated tests on actual devices – simulators and emulators.

There various online course providers like- Coursera, Edx, Vskills and Istqb, which will help you
to learn all these technologies. These professional certificates can boost your resume and helps
you in finding the right job.

10.Elaborately explain about software testing trends?

#1) Agile and DevOps


Organizations have embraced Agile as a response to rapidly changing requirements and DevOps
as a response to the demand for speed.

DevOps involves practices, rules, processes, and tools that help to integrate development and
operating activities to reduce time from development to operations. DevOps has become a
widely accepted solution for organizations that are looking at ways to shorten the software
lifecycle from development to delivery and operation.

The adoption of both Agile and DevOps helps the teams to develop and deliver quality software
faster, which in turn is also known as “Quality of Speed”. This adoption has gained much interest
over the past five years and continues to intensify in the coming years too.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Also Read=>Ultimate Guide for DevOps


#2) Test Automation
In order to implement DevOps practices effectively, software teams cannot ignore test
automation as it is an essential element of the DevOps process.

They need to find opportunities to replace manual testing with automated testing. Test
automation is considered to be an important bottleneck of DevOps, at a minimum, most
regression testing should be automated.

Given the popularity of DevOps and the fact that test automation is underutilized, with less than
20% of testing being automated, there is a lot of room to increase the adoption of test automation
in organizations. More advanced methods and tools should emerge to allow better utilization of
test automation in projects.

Existing popular automation tools such as Selenium, Katalon, and TestComplete continue to
evolve with new features that make automation much easier and more effective too.

For a list of the best automation testing tools for 2022, please refer here and this list here.
#3) API and Services Test Automation
Decoupling the client and server is a current trend in designing both Web and mobile
applications.

APIs and services are reused in more than one application or component. These changes, in turn,
require teams to test APIs and services independent of the applications using them.

When APIs and services are used across client applications and components, testing them is
more effective and efficient than testing the client. The trend is that the need for API and service
test automation continues to increase, possibly outpacing that of the functionality used by the
end-users on user interfaces.

Having the right processes, tools, and solutions for API automation tests is more critical than
ever. Therefore, it is worth your effort in learning the best API Testing Tools for your testing
projects.
#4) Artificial Intelligence for Testing
Although applying artificial intelligence and machine learning (AI/ML) approaches to address
challenges in software testing is not new in the software research community, recent
advancements in AI/ML with a large amount of data available pose new opportunities to apply
AI/ML in testing.

However, the application of AI/ML in testing is still in the early stages. Organizations will find
ways to optimize their testing practices in AI/ML.

AI/ML algorithms are developed to generate better test cases, test scripts, test data, and reports.
Predictive models will help you make decisions about where, what, and when to test. Smart
analytics and visualizations support teams to detect faults, understand test coverage, areas of
high risk, etc.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

We hope to see more applications of AI/ML in addressing problems such as quality prediction,
test case prioritization, fault classification, and assignments in the upcoming years.

#5) Mobile Test Automation


The trend of mobile app development continues to grow as mobile devices are increasingly more
capable.

To fully support DevOps, mobile test automation must be a part of DevOps toolchains. However,
the current utilization of mobile test automation is very low, partly due to the lack of methods
and tools.

The trend of automated testing for mobile apps continues to increase. This trend is driven by the
need to shorten time-to-market and more advanced methods and tools for mobile test automation.

The integration between cloud-based mobile device labs like Kobiton and test automation tools
like Katalon may help in bringing mobile automation to the next level.

#6) Test Environments and Data


The rapid growth of the Internet of Things (IoT) (see top IoT devices here) means more software
systems are operating in numerous different environments. This places a challenge on the testing
team to ensure the right level of test coverage. Indeed, the lack of test environments and data is a
top challenge when applying to test in agile projects.
We will see growth in offering and using cloud-based and containerized test environments. The
application of AI/ML to generate test data and the growth of data projects are some solutions for
the lack of test data.

#7) Integration of Tools and Activities


It is hard to use any testing tool that is not integrated with the other tools for application lifecycle
management. Software teams need to integrate the tools used for all development phases and
activities so that multi-source data can be gathered to apply AI/ML approaches effectively.

For example, using AI/ML to detect where to focus testing on, needs not only data from the
testing phase but also from the requirements, design, and implementation phases.
Along with the trend of increasing transformation towards DevOps, test automation, and AI/ML,
we will look at testing tools that allow integration with other tools and activities in ALM.

11.Explain the types of software testing?


Software testing is the process of verifying and validating that a software application or system
meets the business and technical requirements that guided its design and development. Software
testing can also provide an objective, independent view of the software to allow the business to
appreciate and understand the risks of software implementation. Software testing involves the
execution of a software component or system component to evaluate one or more properties of

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

interest. In general, these properties indicate the extent to which the component or system under
test:

 meets the requirements that guided its design and development,


 responds correctly to all kinds of inputs,
 performs its functions within an acceptable time,
 is sufficiently usable,
 can be installed and run in its intended environments, and
 achieves the general result its stakeholders desire.

There are many types of software testing, each with a different purpose and scope. Some of the
most common types of software testing are:

 Unit testing: Unit testing is a method of testing individual units or components of a


software application. It is typically done by developers and is used to ensure that the individual
units of the software are working as intended. Unit tests are usually automated and are designed
to test specific parts of the code, such as methods, classes, or modules. Unit testing helps to find
bugs at an early stage of development and improve the quality of the code1
 Integration testing: Integration testing is a method of testing how different units or
components of a software application work together. It is usually done after unit testing and
before system testing. Integration testing can be done at different levels, such as component
integration, subsystem integration, or system integration. Integration testing helps to verify that
the interfaces between the units or components are functioning properly and that the data flow
between them is correct1
 Functional testing: Functional testing is a method of testing the functionality or features
of a software application. It is usually done by testers and is based on the user requirements or
specifications. Functional testing can be done at different levels, such as unit level, integration
level, system level, or acceptance level. Functional testing helps to verify that the software meets
the expected behavior and satisfies the user needs2
 Non-functional testing: Non-functional testing is a method of testing the non-functional
aspects or attributes of a software application, such as performance, usability, security, reliability,
etc. It is usually done by testers and is based on the non-functional requirements or standards.
Non-functional testing can be done at different levels, such as unit level, integration level, system
level, or acceptance level. Non-functional testing helps to verify that the software meets the
quality criteria and provides a good user experience2
 Regression testing: Regression testing is a method of testing that ensures that the
existing functionality or features of a software application are not affected by any changes or
modifications in the code. It is usually done by testers and is performed after any change in the
code, such as bug fixes, enhancements, new features, etc. Regression testing helps to detect any
unintended side effects or errors caused by the changes and ensure that the software works as
expected after each change3

These are some of the most common types of software testing, but there are many more types
that can be used depending on the context and objectives of the software project. Some other
types of software testing are:

 Smoke testing: Smoke testing is a method of testing that checks whether the basic
functionality or features of a software application are working properly before performing more
detailed tests. It is usually done by developers or testers and is performed after each build or

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

deployment of the software. Smoke testing helps to verify that the software is stable enough for
further testing and does not have any major defects that would prevent it from functioning3
 Sanity testing: Sanity testing is a method of testing that checks whether the new
functionality or features of a software application are working as expected after any changes or
modifications in the code. It is usually done by testers and is performed after regression testing
or smoke testing. Sanity testing helps to verify that the changes have not introduced any new
defects or errors in the software and that it meets the user requirements3
 User acceptance testing: User acceptance testing is a method of testing that involves the
end users or customers of a software application. It is usually done by users or business
representatives and is performed before releasing or delivering the software to them. User
acceptance testing helps to verify that the software meets their expectations and requirements
and that they are satisfied with it3
 Exploratory testing: Exploratory testing is a method of testing that involves exploring or
experimenting with a software application without following any predefined test cases or scripts.
It is usually done by testers and is based on their intuition, curiosity, creativity, and
experience. Exploratory testing helps to discover new defects or errors in the software that might
not be detected by other types of tests and to learn more about how it works and behaves in
different scenarios2
 Ad hoc testing: Ad hoc testing is a method of testing that involves testing a software
application without any formal planning or documentation. It is usually done by testers and is
based on their random or spontaneous actions. Ad hoc testing helps to find defects or errors in
the software that might not be covered by other types of tests and to test the software in an
unpredictable or realistic way2
 Security testing: Security testing is a method of testing that involves checking the
security or vulnerability of a software application. It is usually done by testers or security experts
and is based on the security requirements or standards. Security testing helps to verify that the
software is protected from any unauthorized access, modification, or damage and that it can
handle any malicious attacks or threats2
 Globalization testing: Globalization testing is a method of testing that involves checking
the functionality or features of a software application in different languages, cultures, or regions.
It is usually done by testers or localization experts and is based on the globalization requirements
or specifications. Globalization testing helps to verify that the software can support multiple
languages, currencies, formats, etc. and that it can adapt to different user preferences and
expectations2

12.What are the popular testing methodologies in software testing?

Seven Popular Software Testing Methodologies

While there are several models for testing, the list below emphasizes some of the popular and

most used ones.

1. Waterfall Methodology

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Amongst the rigid software testing methodologies, the waterfall methodology is one of those

models where the focus is on a development process that follows a vertical path. It is

characterized by its sequential processes where the next phase of the development process only

begins after the previous phase is completed. There are five predefined phases within the

waterfall model: Requirements, Design, Implementation, Verification, and Maintainance.

Testing Approach

The sequential path of a waterfall methodology has defined steps of order –

The ‘requirements’ phase ensures all the necessary requirements like testing objectives,

organizational planning, draft documents, and the testing strategy is defined and fixed. The rigid

documentation and planning make this model suitable for small applications compared to

complex apps that might go through extensive changes.

The project ‘design’ is then selected and approved by the decision-maker. Next, the development

team implements the detailed design plan, and once it’s done, it’s ‘verified’ by the QA team and

stakeholders. Once the project is verified and launched, the development team starts with

‘maintaining’ the software product until it is thoroughly tested for the final launch.

Advantages

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 It is a step-by-step laid out test strategy.

 The methodology can be used to easily to plan and manage project requirements.

 It is inexpensive and provides faster delivery of projects.

Disadvantages

 Each step in the methodology is predefined and cannot be skipped.

 It can’t absorb unplanned iterations.

 Testing is pushed down for later in the list.

 Even a slight iteration to the project plan can be expensive.

Use Cases

 Customer Relationship Management systems

 Human Resource Management systems

 Supply Chain Management systems

 Inventory Management systems

 Point of Sale systems

2.Agile Methodology

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The agile testing methodology is based on the idea of iterative development, where development

progress is made in rapid incremental cycles, also known as sprints. With complex applications

and swift market demands, the agile methodology opens interactions with stakeholders to better

understand their requirements. The communication cycle allows the team to focus on responding

to the changes instead of relying on extensive planning that might eventually change.

Testing Approach

The origin of the agile methodology was meant to break away from the rigid and model of

development and testing that does not give space for iterations. This is one of the reasons that the

testing team prefers using this approach for dynamic applications to accommodate constant

feedback from stakeholders. With less priority towards documentation and more towards

implementing changes, incremental tests and iterations are made instantaneously.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Instead of testing the entire system towards the end, every suggested iteration release is tested

thoroughly. Furthermore, each iteration has its own cycle of requirements, design, coding, and

testing cycle, making it a cyclical process. The test-driven development model is mostly used for

adding new functionalities to an existing system, making it suitable for small projects with tight

deadlines.

Advantages

 Complex application processes can be easily managed, changed, and tested.

 Incremental tests minimize the cost and risks associated with numerous changes.

 The constant communication between developers and clients determines the progress of

the software application.

 The focus of the methodology is on testing rather than planning.

Disadvantages

 Increased to and fro with clients may lead to longer delivery times.

 Less priority on planning may lead to documentation inefficiencies.

 Constant changes make maintenance difficult.

Use Cases

 Defining the testing scope of an application.

 New functionalities in an application

 Load and performance testing

3. Iterative Development Methodology

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The methodology works by breaking down a large project into smaller components, where each

component goes through a series of testing cycles. It is a data-driven model, and each iteration is

based on the results of the previous test cycle. The repeated tests ease organizational

management and streamline the software requirements before merging them into a final product.

Testing Approach

The iterative development model follows a cyclical pattern for testing smaller components of a

large project. Each iteration cycle is identical to a complete development cycle and consists of

planning, design, testing, and evaluation phases. Once a cycle is complete, the component is

added as an upgrade in the software.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

When software application requirements are loosely defined, the feedback from each iteration

improves the functionality of the final product. This is the reason the model is most suitable for

flexible applications with a focus on scalability.

Advantages

 Smaller iterations for complex software applications decrease the time and cost of

development.

 Feedbacks of the iterative cycles are immediately available.

 With each iteration cycle, the errors and bugs get removed at the initial development

stages.

 The model allows more flexibility and focuses on the design instead of documentation.

Disadvantages

 Communication overheads might increase significantly after each feedback. iteration

 The iteration cycle is rigid and cannot be overlapped.

 Unpredictable feedback might delay the delivery of the final product.

 A low priority on planning might lead to unforeseen circumstances.

 User engagement is necessary for identifying risks.

Use Cases

 Gaming applications

 Streaming applications

 SaaS applications

 Prototype testing

4. Verification and Validation Methodology

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The V-methodology is considered an extension of the waterfall model, used for small projects

with defined software requirements. It follows a ‘V-shaped’ model that is categorized into

coding, verification, and validation. With coding being the base of the model, each development

phase goes hand-in-hand with testing, resulting in the early detection of errors in each step.

Testing Approach

The ‘V-model’ stands apart from the waterfall model in terms of parallel testing procedures

conducted at each development stage. The verification process ensures that the product is

developed correctly, while the validation process ensures that it’s the right product as per

requirements.

The model starts with the static verification processes that include a business requirement

analysis, system design, architectural design, and module design. Next, the coding phase ensures

that a specific language and tools are chosen based on the coding standards and guidelines.

Finally, the last phase of the validation ensures that each module and stage of development goes

through unit testing, integration testing, system testing, and application testing.

Advantages

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Testing/validation at each stage allows the identification of errors early in the

development cycle.

 It’s a cost and time-effective testing model.

 The rigidity makes it ideal for small projects.

 Each stage of the validation and verification has well-defined objectives.

Disadvantages

 There is no inherent ability to respond to errors during the testing process.

 There is no defined solution for eliminating the software defect.

 The model is not suitable for large projects with higher chances of changes.

 It cannot handle concurrent events.

 There is no going back after a module has entered the testing phase.

Use Cases

 Medical devices and software applications.

 Government applications and software projects.

 Defense projects and applications.

 Commercial applications.

5. Rapid Action Development Methodology

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The testing model is a form of an incremental methodology that originated out of the agile

software development system. The cornerstone of RAD is prototyping while parallelly

developing components for the software, therefore, focusing more on testing rather than planning

and documentation. While each software function is divided and designed as separate

components, they are merged to form a prototype, collect end-user feedback, and make further

iterations accordingly.

Testing Approach

The RAD methodology consists of five phases through which the system components are

developed and tested simultaneously. Each of these phases is time-bound and must be done

promptly, making it suitable for projects with a tight deadline.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The first phase, ‘Business Modeling’, identifies the business requirements and determines the

flow of information towards other business channels. Once the flow is determined, the ‘Data

Modeling’ phase reviews relevant data as per the business model.

The third, ‘Process Modeling’, converts data objects to establish a business information flow.

The phase defines the QA process through which the data objects can be further modified as per

client feedback. This is done while keeping in mind that the application might go through

multiple iterations over time.

The fourth stage of ‘Application Generation’ is known as the prototyping phase, and the models

are coded with automated tools. Finally, each prototype is individually tested in the ‘Testing and

Turnover’ phase, reducing the errors and risks in the overall software application.

Advantages

 Simultaneous designing and reusability of the prototypes reduce development and testing

time.

 The time-box approach at each incremental stage reduces the overall risks in the software

project.

 Feedback cycles increase customer satisfaction.

 The progress is measurable and data-driven.

 Changes can be easily accommodated.

Disadvantages

 The methodology is challenging to use with legacy systems.

 Continuous client feedback and modifications can delay the deployment.

 There is a high dependency on technical skills and resources.

 Automation testing, tools, and code generation lead to higher costs.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Use Cases

 Enhancing application graphic user interface.

 Application prototypes (Wireframe, Design, and Clickable prototype)

 System modularization.

6. Spiral Methodology

The spiral methodology is one of the most popular software testing methodologies focusing on

risk handling. As the name suggests, the spiral method comprises many loops, where each loop

enhances the software and delivers small prototypes of the powerful software.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

In the Spiral model, each loop is one phase of the software development process. Its radius

represents the project’s total expense, while the angular dimension represents its progress.

Testing Approach

Each phase of the spiral model gets divided into four quadrants, as shown in the figure. Each of

these quadrants has unique functions. Let’s discuss them one by one in detail.

 The first phase is ‘Objectives determination and alternate solution identification.’ It

starts with gathering customer requirements to identify, elaborate, and analyze the objectives.

And spending some time identifying alternative solutions for this particular quadrant. At the end

of this phase, you’ll have a software requirement specification document ready for your project.

 Risk identification and rectification is the second quadrant that helps evaluate all the

possible solutions to determine the best solution that aligns with your project requirements. This

is followed by risk identification and strategy planning to rectify those errors.

 New product version development is the third quadrant that focuses on developing the

features identified in earlier phases and then verifying them through rigorous testing.

 Finally, the last phase allows end-customers to review the newest version of the product

and provide feedback that will help plan the next version.

Advantages

 It allows you to conduct risk analysis efficiently.

 It enables you to incorporate the changes in requirements at later stages.

 Highly suitable for large and complex software development projects.

 Robust feedback mechanism and emphasis on rich documentation.

Disadvantages

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Not suitable for smaller projects as it’s an expensive model.

 Hard to define objectives and verify milestones.

 Too much dependence on risk analysis and requires technical expertise.

 Difficult to identify the end of the project as the spiral goes on indefinitely.

Use Cases

 Customer Relationship Management (CRM) systems

 Human Resource Management (HRM) systems

 Desktop applications

 Payment gateways

7. Extreme Programming (XP) Methodology

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Extreme Programming (XP) software testing methodology improves software quality by

encouraging constant customer feedback. The methodology recommends the software

development teams learn from previous experiences and incorporate best practices such as code

review, continuous testing, incremental development, integration testing, etc.

Testing Approach

The XP framework involves five major phases or development stages that iterate continuously:

 In the planning phase, customers meet the software team to present their requirements

and envision the final product. The business analyst team develops a software requirement

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

specification document and creates a release plan for various features by breaking them into

milestones. If the software team can’t estimate any requirements, they introduce spikes into the

lifecycle, which requires further research.

 Next is the designing phase; it’s part of the planning process, but software teams

consider it a separate phase as it impacts the product’s user experience. Here, the focus is on one

of the XP best practices, i.e., simplicity. By simplicity in design, we mean clear-cut layout,

simple navigation, proper usage of white space, minimal components, a bright color palette, etc.

All these things help reduce the complexities and redundancies.

 The coding phase focuses on the coding standards, pair programming, continuous

integration, and collective code ownership to develop clean and comprehensive code for the

project.

 The testing phase ensures that rigorous unit, integration, and acceptance tests are

conducted to determine whether a particular feature is working correctly, whether the integrated

functionality provides the expected output, and whether the customer is pleased with the

outcome of the finished product.

 Lastly, listening is all about constant communication and feedback. The customers

provide clear-cut feedback on the improvement required, and the project managers note it down

to incorporate those things during the development of the next iteration.

Advantages

 It allows you to make changes in software development at short notice.

 The code is straightforward to understand at all times.

 It enables you to save time and cost for project realization.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Encourages constant feedback to develop a robust product.

Disadvantages

 There is no emphasis on maintaining and measuring code quality.

 It does not focus much on design, which is an important aspect.

 Requires you to have strong version control management in place.

 It needs constant customer attention and review throughout the project.

Use Cases

 Mission-critical applications

 Web development

 Game development

 Security-related applications

 Bottom of Form

You can get an unbiased objective evaluation of your software applications from our experts and

evaluate your testing strategies. Reach out to us by signing up or leaving a comment about your

thoughts.

Unit-IV
Answer all the questions
Part-A
1.What is software quality?
Software quality is defined as a field of study and practice that describes the desirable attributes
of software products. There are two main approaches to software quality: defect management
and quality attributes.
2.What is software quality management system?
Software quality management (SQM) is a management process that aims to develop and
manage the quality of software in such a way so as to best ensure that the product meets the

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

quality standards expected by the customer while also meeting any necessary regulatory and
developer requirements, if any.[1][2][3] Software quality managers require software to be tested
before it is released to the market, and they do this using a cyclical process-based quality
assessment in order to reveal and fix bugs before release. Their job is not only to ensure their
software is in good shape for the consumer but also to encourage a culture of quality throughout
the enterprise.[
3.What is verification?
Quality verification techniques for software systems include1234:

 Functional Testing: It is a QA technique that validates what the system does without
considering how it does it.
 Standardization: Standardization plays a crucial role in quality assurance. This decreases
ambiguity and guesswork, thus ensuring quality.
 Inspection: Inspection verifies requirements of a product or system with increasing rigor.
 Demonstration: Demonstration verifies requirements of a product or system with
increasing rigor.
 Test: Test verifies requirements of a product or system with increasing rigor.

4.What is validation?
Software validation is a method used to ensure that automated software processes work as
expected. In quality management systems, software validation is achieved through a set of
planned activities that are conducted throughout various stages of the software development and
implementation stages. Validating software helps reduce risk and legal liability, and provides
evidence that the computer system is fit for purpose. It is a critical first step toward eQMS
software adoption and implementation.
5.What are the components of software quality assurance?
Software quality assurance is composed of a variety of functions associated with two different
constituencies. The components of software quality assurance include:

 A defined quality management approach


 Holding formal technical reviews
 Implementing a multi-testing strategy
 Using effective software engineering technology
 A measurement and reporting mechanism

6.What is SQA Plan?


Software Quality Assurance (SQA) is a process that assures that all software engineering
processes, methods, activities, and work items are monitored and comply with the defined
standards. These defined standards could be one or a combination of anything like ISO 9000,
CMMI model, ISO15504, etc.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

7.What is quality standards?


Software quality standards can be defined by a combination of standards like ISO 9000,
CMMI model, ISO15504, etc.1. The ISO/IEC 25000 series of standards, also known as SQuaRE
(System and Software Quality Requirements and Evaluation), contains a framework to evaluate
software product quality2. ISO/IEC 25010 defines a set of eight software quality characteristics,
or system “-ilities,” i.e.2:

 Security
 Reliability
 Maintainability
 Efficiency
 Portability

8.What is the expansion of CMM?


CMM is stands for capability maturity model
9.What is the expansion of PCMM?
PCMM is stands for people capability maturity model
10.What is the expansion of CMMI?
CMMI is stands for capability maturity model integration
11.What is initial in CMM?
At this level, processes are often ad hoc and chaotic. There is little process discipline, and
success is dependent on individual effort and heroics. The organization lacks a stable process
environment.
12.What is Repeatable in CMM?
Organizations at this level have begun to establish basic project management processes. They
can repeat previously successful projects with some consistency. Key practices include project
planning, tracking, and requirements management.
13.What is Defined in CMM?
At this level, organizations have defined and documented their standard software development
processes. Processes are institutionalized and standardized across the organization. Quality and
process performance are monitored and managed.
14.What is Managed in CMM?
Organizations at this level focus on quantitative process management. They use metrics and data
to monitor and control their processes, making data-driven decisions for process improvement.
The emphasis is on continuous process improvement.
15.What is optimized(level 5)?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

At the highest level of maturity, organizations continuously improve their processes based on
quantitative feedback and innovation. They are highly adaptable and innovative, and they
actively seek ways to optimize their processes for efficiency and effectiveness.
16.What is competency framework in PCMM?
Defining the skills, knowledge, and behaviors required for different job roles within the
organization.
17.What is performance management in PCMM?
Implementing performance appraisal processes that provide feedback and reward based on merit.
18.What is training and development in PCMM?
Providing structured training programs to enhance the skills and capabilities of employees.
19.What is Mentoring and coaching in PCMM?
Encouraging mentoring relationships and coaching to facilitate knowledge transfer and skill
development.
20.What is measurement and analysis?
Collecting data on HR processes and using metrics to make data-driven decisions for
improvement.
Part-B
1.What are the factors of software quality?
The various factors, which influence the software, are termed as software factors. They can be
broadly divided into two categories. The first category of the factors is of those that can be
measured directly such as the number of logical errors, and the second category clubs those
factors which can be measured only indirectly. For example, maintainability but each of the
factors is to be measured to check for the content and the quality control.
Several models of software quality factors and their categorization have been suggested over the
years. The classic model of software quality factors, suggested by McCall, consists of 11 factors
(McCall et al., 1977). Similarly, models consisting of 12 to 15 factors, were suggested by
Deutsch and Willis (1988) and by Evans and Marciniak (1987).
All these models do not differ substantially from McCall’s model. The McCall factor model
provides a practical, up-to-date method for classifying software requirements (Pressman, 2000).
McCall’s Factor Model
This model classifies all software requirements into 11 software quality factors. The 11 factors
are grouped into three categories – product operation, product revision, and product transition
factors.
 Product operation factors − Correctness, Reliability, Efficiency, Integrity, Usability.
 Product revision factors − Maintainability, Flexibility, Testability.
 Product transition factors − Portability, Reusability, Interoperability.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Product Operation Software Quality Factors


According to McCall’s model, product operation category includes five software quality factors,
which deal with the requirements that directly affect the daily operation of the software. They are
as follows −
Correctness
These requirements deal with the correctness of the output of the software system. They include

 Output mission
 The required accuracy of output that can be negatively affected by inaccurate data or
inaccurate calculations.
 The completeness of the output information, which can be affected by incomplete data.
 The up-to-dateness of the information defined as the time between the event and the
response by the software system.
 The availability of the information.
 The standards for coding and documenting the software system.
Reliability
Reliability requirements deal with service failure. They determine the maximum allowed failure
rate of the software system, and can refer to the entire system or to one or more of its separate
functions.
Efficiency
It deals with the hardware resources needed to perform the different functions of the software
system. It includes processing capabilities (given in MHz), its storage capacity (given in MB or
GB) and the data communication capability (given in MBPS or GBPS).
It also deals with the time between recharging of the system’s portable units, such as, information
system units located in portable computers, or meteorological units placed outdoors.
Integrity
This factor deals with the software system security, that is, to prevent access to unauthorized
persons, also to distinguish between the group of people to be given read as well as write permit.
Usability
Usability requirements deal with the staff resources needed to train a new employee and to
operate the software system.
Product Revision Quality Factors
According to McCall’s model, three software quality factors are included in the product revision
category. These factors are as follows −
Maintainability
This factor considers the efforts that will be needed by users and maintenance personnel to
identify the reasons for software failures, to correct the failures, and to verify the success of the
corrections.
Flexibility

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

This factor deals with the capabilities and efforts required to support adaptive maintenance
activities of the software. These include adapting the current software to additional
circumstances and customers without changing the software. This factor’s requirements also
support perfective maintenance activities, such as changes and additions to the software in order
to improve its service and to adapt it to changes in the firm’s technical or commercial
environment.
Testability
Testability requirements deal with the testing of the software system as well as with its operation.
It includes predefined intermediate results, log files, and also the automatic diagnostics
performed by the software system prior to starting the system, to find out whether all
components of the system are in working order and to obtain a report about the detected faults.
Another type of these requirements deals with automatic diagnostic checks applied by the
maintenance technicians to detect the causes of software failures.
Product Transition Software Quality Factor
According to McCall’s model, three software quality factors are included in the product
transition category that deals with the adaptation of software to other environments and its
interaction with other software systems. These factors are as follows −
Portability
Portability requirements tend to the adaptation of a software system to other environments
consisting of different hardware, different operating systems, and so forth. The software should
be possible to continue using the same basic software in diverse situations.
Reusability
This factor deals with the use of software modules originally designed for one project in a new
software project currently being developed. They may also enable future projects to make use of
a given module or a group of modules of the currently developed software. The reuse of software
is expected to save development resources, shorten the development period, and provide higher
quality modules.
Interoperability
Interoperability requirements focus on creating interfaces with other software systems or with
other equipment firmware. For example, the firmware of the production machinery and testing
equipment interfaces with the production control software.

2.Discuss briefly about evolution of quality management system?

A focus on a quality management system shouldn’t just mean a ‘box ticking’ exercise for an
organisation. And it shouldn’t be regarded as ‘just another cost’ to a business, either.

Instead, it can be treated as an opportunity for your business to evolve and grow - sometimes
with spectacular results.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

As this research from McKinsey demonstrates there are common moments in every business
journey that can trigger a fresh focus on quality. If these are identified and handled correctly,
the research argues, it can lead to whole new levels of efficiency and profitability.

McKinsey identifies five stages of ‘quality maturity’, as well as their triggers - and the changes
in operational, quality and cultural practices needed to make them possible.

What are the stages of evolution in a quality management system?

The evolution of a quality management system typically spans 5 states of maturity:

 Starting out

 Basic quality

 Stronger quality

 Embedded quality

 Standard settting quality

1. Starting out

McKinsey’s research starts by describing a company which is not yet driven by quality goals.
They are delivering products but doing so to an inconsistent standard and without much
attention to customer needs. They may be losing money due to wastefulness, lost deals, and
even financial penalties from clients or regulators for the mistakes they make.

This may be the position of many startups and their trigger to change may be a large fine, a
product recall or a new opportunity with an important client who requires they meet a new set
of standards (e.g. ISO 9001:2015).

These businesses have the opportunity to save money, win new clients and increase sales by
raising the levels of their compliance and the quality of their end products to at least a basic
and consistent standard.

2. Basic quality

Achieving this basic level of quality maturity requires a repeatable, standardized approach to
development and manufacturing within your operations. To achieve this, you may need a

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

dedicated quality champion in your business, who can define and implement quality processes
and a consistent way of satisfying compliance requirements.

As efficiency improves and the business becomes less reactive in their approach to quality
these businesses can see opportunities to further reduce risk exposures and failures. They can
begin to see new ways to increase productivity while boosting savings and profitability.

3. Stronger quality

This second stage of quality maturity is driven by robust development and manufacturing
processes enabled by digitised QMS systems which embed accountability for improving
quality across the organisation. This approach entails developing company-wide methods to
review processes, identifying and solving quality problems as they arise.

Businesses can now see opportunities to further empower their staff to improve customer
satisfaction and the level of quality they are delivering.

4. Embedded quality

In this third stage of quality maturity, operations are now subject to a continuous cycle of
improvement thanks to a digital quality system which facilitates constant review of process and
customer needs. Quality and customer satisfaction drive product design and solutions, as well
as strategic decision-making. Quality has become the way of life for the company.

McKinsey reports on a Pharma manufacturer who shifted to just such a cross-functional


approach to quality management, increasing collaboration, daily reporting and team-based
problem solving - and saw a 15% increase in productivity, as well as a measurable reduction in
compliance issues.

On the back of this progress, there is now an opportunity for an organisation to start defining
and setting standards for an entire industry.

5. Standard setting quality

This stage of maturity sees the adoption of advanced manufacturing, development and control
technologies, underpinned by unique insight and innovation in quality processes. Company
culture prizes quality as one of its highest achievements, and there is a focus on developing
solutions beyond the company’s traditional boundaries.

3.Differentiate between verification and validation?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Verification and Validation Explained

Verification and validation – These are the two important aspects of software quality
management. Verification gives the answer to the question whether the software is being
developed in a correct way and validation provides the answer whether the right software is
being produced. In a nutshell, verification denotes precision whereas validation indicates value
of the end or final product. Verification and validation is an important step used in various
processes in different industries.

Importance of Validation

Validation is requisite in the quality management process. It makes sure that the process or
product meets the purpose intended. There are different categories of validation in general
described below-

Prospective Validation

This type of validation is done to ensure the characteristics of interest before the product gets
launched. Proper functioning of the product meeting the safety standards is also checked in the
process of validation.

Retrospective Validation

This kind of validation is done against the written specifications. Retrospective validation is
actually based on the historical data or evidence that had been documented.

Partial Validation

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

This kind of validation is commonly used in research and pilot studies. During this process the
most important effects get tested.

Periodical Validation

There are certain items of interest that at times get repaired, relocated, dismissed or integrated in
specified time laps. This kind of validation is carried out for such items.

Concurrent Validation

This kind of validation process I usually carried out during the routine service, manufacturing or
engineering processing.

Cross Validation

This type of validation technique is suitable for estimation of performance of a predictive model
in statistics.

Verification and Validation in Software Development

Six Sigma initiatives deserve all the accolades for bringing the verification and
validation aspects in the picture with Design for Six Sigma model. Before use or release, Design
for Six Sigma is utilized to make products and processes perfect. It is actually an application of
Six Sigma principles in order to design the products and also look after the manufacturing and
support process. For better understanding, let’s have a look at key Six Sigma methodologies.

DMAIC Methodology

Define the problem or the project goals

Measure the problem

Analyze the data and process

Improve the process

Control

DMADV Methodology

Define the problem or the project goals

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Measure and determine needs of customer

Analyze the process in order to meet the goals

Design a process to serve the purpose

Verify the design performance

DFSS Methodology (Design for Six Sigma)

It has following steps for quality management –

Define

Identify

Design

Optimize

Verify

What makes DFSS different from DMAIC is the verification and validation part. It can
successfully get applied to Software Engineering as the methodology can cover the overall
Software Development Cycle. The major emphasis of DFSS is on designing and re-designing the
services or products and making them ready for the commercial market.

Eliminate defects with Verification and Validation

The word ‘defects’ is very dangerous for the software development processes. Defects are
something that is not right with the product or services. Therefore, it becomes highly essential to
keep the defect at a bay during the software development process, and Design for Six Sigma
helps to eliminate the defects. The objective is to pursue continuing process improvement by
verifying and validating the processes. Six Sigma quality management methods offer a
methodical way to figure out the defects and aid to rectify them accordingly. It is an approach to
achieve quality level of zero defects.

4.Briefly about components of software quality assurance?


Components of SQA System

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

SQA components can be classified into 6 classes:

1. Pre-Project Components
This assures that the commitment of the project has been defined clearly regarding the time

estimation, clarification of customer requirements, total budget of the project, evaluation of

development risks, total staff required for that particular project. It also assures that development

and quality plans have been clearly defined.

2. Software Project Life Cycle Components


This component includes the review, expert opinions, software testing, software maintenance

components. In the project development life cycle, it includes components like reviews, expert

opinions, and finding defects in software design and programming, whereas in the software

maintenance life cycle it includes specializing in maintenance components and development life

cycle components for enhancing maintenance tasks.

3. Infrastructure Components for Error Prevention and Improvements


This component includes staff training, certification, configuration management, preventive and

corrective measures in order to reduce the rate of errors in software based on the organization’s

accumulated SQA experience.

4. Management SQA Components


This class includes software quality metrics, software quality costs, which includes control of

maintenance and development activities, and the introduction of managerial involvement in order

to reduce the risk of quality, schedule, and budget in the project.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

5. Components of Standardization, Certification, and SQA System Assessment


The main objective of this class is the utilization of professional international knowledge, which

helps in the coordination between the different organization quality systems at a professional

level.

6. Organizing for SQA Human Components


This base includes managers, testers, and other SQA practitioners that are interested in SQA. The

main objective is to support and initiate the SQA activities, detect the gaps/deviations in them,

and suggest improvements for that.

5.Describe about SQA Plan?


Software Quality Assurance (SQA) is a process that assures that all software engineering
processes, methods, activities, and work items are monitored and comply with the defined
standards. These defined standards could be one or a combination of anything like ISO 9000,
CMMI model, ISO15504, etc.
SQA incorporates all software development processes starting from defining requirements to
coding until release. Its prime goal is to ensure quality.

Abbreviated as SQAP, the Software Quality Assurance Plan comprises the procedures,
techniques, and tools that are employed to make sure that a product or service aligns with the
requirements defined in the SRS(Software Requirement Specification).

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The plan identifies the SQA responsibilities of the team and lists the areas that need to be
reviewed and audited. It also identifies the SQA work products.

The SQA plan document consists of the following sections:


1. Purpose
2. Reference
3. Software configuration management
4. Problem reporting and corrective action
5. Tools, technologies, and methodologies
6. Code control
7. Records: Collection, maintenance, and retention
8. Testing methodology
SQA Activities
Given below is the list of SQA activities:
#1) Creating an SQA Management Plan
Creating an SQA Management plan involves charting out a blueprint of how SQA will be carried
out in the project with respect to the engineering activities while ensuring that you corral the
right talent/team.

#2) Setting the Checkpoints


The SQA team sets up periodic quality checkpoints to ensure that product development is on
track and shaping up as expected.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

#3) Support/Participate in the Software Engineering team’s requirement gathering


Participate in the software engineering process to gather high-quality specifications. For
gathering information, a designer may use techniques such as interviews and FAST (Functional
Analysis System Technique).

Based on the information gathered, the software architects can prepare the project estimation
using techniques such as WBS (Work Breakdown Structure), SLOC (Source Line of Codes), and
FP(Functional Point) estimation.

#4) Conduct Formal Technical Reviews


An FTR is traditionally used to evaluate the quality and design of the prototype. In this process, a
meeting is conducted with the technical staff to discuss the quality requirements of the software
and the design quality of the prototype. This activity helps in detecting errors in the early phase
of SDLC and reduces rework effort later.

#5) Formulate a Multi-Testing Strategy


The multi-testing strategy employs different types of testing so that the software product can be
tested well from all angles to ensure better quality.

#6) Enforcing Process Adherence


This activity involves coming up with processes and getting cross-functional teams to buy in on
adhering to set-up systems.

This activity is a blend of two sub-activities:


 Process Evaluation: This ensures that the set standards for the project are followed
correctly. Periodically, the process is evaluated to make sure it is working as intended and
if any adjustments need to be made.
 Process Monitoring: Process-related metrics are collected in this step at a designated
time interval and interpreted to understand if the process is maturing as we expect it to.
#7) Controlling Change
This step is essential to ensure that the changes we make are controlled and informed. Several
manual and automated tools are employed to make this happen.

By validating the change requests, evaluating the nature of change, and controlling the change
effect, it is ensured that the software quality is maintained during the development and
maintenance phases.

#8) Measure Change Impact


The QA team actively participates in determining the impact of changes that are brought about
by defect fixing or infrastructure changes, etc. This step has to consider the entire system and
business processes to ensure there are no unexpected side effects.

For this purpose, we use software quality metrics that allow managers and developers to observe
the activities and proposed changes from the beginning till the end of SDLC and initiate
corrective action wherever required.

#9) Performing SQA Audits

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The SQA audit inspects the actual SDLC process followed vs. the established guidelines that
were proposed. This is to validate the correctness of the planning and strategic process vs. the
actual results. This activity could also expose any non-compliance issues.

#10) Maintaining Records and Reports


It is crucial to keep the necessary documentation related to SQA and share the required SQA
information with the stakeholders. Test results, audit results, review reports, change request
documentation, etc. should be kept current for analysis and historical reference.

#11) Manage Good Relations


The strength of the QA team lies in its ability to maintain harmony with various cross-functional
teams. QA vs. developer conflicts should be kept at a minimum and we should look at everyone
working towards the common goal of a quality product. No one is superior or inferior to each
other- we are all a team.

Software Quality Assurance Standards


Software development life cycle and particularly, SQA may require conformance to quality
standards such as:

ISO 9000: Based on seven quality management principles that help organizations ensure that
their products or services are aligned with customer needs.
7 principles of ISO 9000 are depicted in the below image:

CMMI level: CMMI stands for Capability Maturity Model Integration. This model originated
in software engineering. It can be employed to direct process improvement throughout a project,
department, or entire organization.
5 CMMI levels and their characteristics are described in the below image:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

An organization is appraised and awarded a maturity level rating (1-5) based on the type of
appraisal.

Test Maturity Model integration (TMMi): Based on CMMi, this model focuses on maturity
levels in software quality management and testing.
5 TMMi levels are depicted in the image below:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

As an organization moves to a higher maturity level, it achieves a higher capability for producing
high-quality products with fewer defects and closely meets the business requirements.

Elements of Software Quality Assurance


Below are 10 essential elements of SQA which are enlisted for your reference:
1. Software Engineering Standards: SQA teams are critical to ensure that we adhere to
the above standards for software engineering teams.
2. Technical Reviews and Audits: Active and passive verification/validation techniques at
every SDLC stage.
3. Software Testing for Quality Control: Testing the software to identify bugs.
4. Error Collection and Analysis: Defect reporting, managing, and analysis to identify
problem areas and failure trends.
5. Metrics and Measurement: SQA employs a variety of checks and measures to gather
information about the effectiveness and quality of the product and processes.
6. Change Management: Actively advocate controlled change and provide strong
processes that limit unanticipated negative outcomes.
7. Vendor Management: Work with contractors and tool vendors to ensure collective
success.
8. Safety/Security Management: SQA is often tasked with exposing vulnerabilities and
bringing attention to them proactively.
9. Risk Management: Risk identification, analysis, and Risk mitigation are spearheaded by
the SQA teams to aid in informed decision making

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

10. Education: Continuous education to stay current with tools, standards, and industry
trends
SQA Techniques
SQA Techniques include:
 Auditing: Auditing is the inspection of the work products and its related information to
determine if a set of standard processes were followed or not.
 Reviewing: A meeting in which the software product is examined by both internal and
external stakeholders to seek their comments and approval.
 Code Inspection: It is the most formal kind of review that does static testing to find bugs
and avoid defect seepage into the later stages. It is done by a trained mediator/peer and is
based on rules, checklists, entry and exit criteria. The reviewer should not be the author
of the code.
 Design Inspection: Design inspection is done using a checklist that inspects the below
areas of software design:
 General requirements and design
 Functional and Interface specifications
 Conventions
 Requirement traceability
 Structures and interfaces
 Logic
 Performance
 Error handling and recovery
 Testability, extensibility
 Coupling and cohesion
 Simulation: A simulation is a tool that models a real-life situation in order to virtually
examine the behaviour of the system under study. In cases when the real system cannot
be tested directly, simulators are great sandbox system alternatives.
 Functional Testing: It is a QA technique that validates what the system does without
considering how it does it. Black Box testing mainly focuses on testing the system
specifications or features.
 Standardization: Standardization plays a crucial role in quality assurance. This
decreases ambiguity and guesswork, thus ensuring quality.
 Static Analysis: It is a software analysis that is done by an automated tool without
executing the program. Software metrics and reverse engineering are some popular forms
of static analysis. In newer teams, static code analysis tools such as SonarCube,
VeraCode, etc. are used.
 Walkthroughs: A software walkthrough or code walkthrough is a peer review where the
developer guides the members of the development team to go through the product, raise
queries, suggest alternatives, and make comments regarding possible errors, standard
violations, or any other issues.
 Unit Testing: This is a White Box Testing technique where complete code coverage is
ensured by executing each independent path, branch, and condition at least once.
 Stress Testing: This type of testing is done to check how robust a system is by testing it
under heavy load i.e. beyond normal conditions.

6.Explain about quality standards?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Software Quality Assurance Standards


Software development life cycle and particularly, SQA may require conformance to quality
standards such as:

ISO 9000: Based on seven quality management principles that help organizations ensure that
their products or services are aligned with customer needs.
7 principles of ISO 9000 are depicted in the below image:

CMMI level: CMMI stands for Capability Maturity Model Integration. This model originated
in software engineering. It can be employed to direct process improvement throughout a project,
department, or entire organization.
5 CMMI levels and their characteristics are described in the below image:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

An organization is appraised and awarded a maturity level rating (1-5) based on the type of
appraisal.

Test Maturity Model integration (TMMi): Based on CMMi, this model focuses on maturity
levels in software quality management and testing.
5 TMMi levels are depicted in the image below:

As an organization moves to a higher maturity level, it achieves a higher capability for producing
high-quality products with fewer defects and closely meets the business requirements.

Elements of Software Quality Assurance


Below are 10 essential elements of SQA which are enlisted for your reference:
1. Software Engineering Standards: SQA teams are critical to ensure that we adhere to
the above standards for software engineering teams.
2. Technical Reviews and Audits: Active and passive verification/validation techniques at
every SDLC stage.
3. Software Testing for Quality Control: Testing the software to identify bugs.
4. Error Collection and Analysis: Defect reporting, managing, and analysis to identify
problem areas and failure trends.
5. Metrics and Measurement: SQA employs a variety of checks and measures to gather
information about the effectiveness and quality of the product and processes.
6. Change Management: Actively advocate controlled change and provide strong
processes that limit unanticipated negative outcomes.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

7. Vendor Management: Work with contractors and tool vendors to ensure collective
success.
8. Safety/Security Management: SQA is often tasked with exposing vulnerabilities and
bringing attention to them proactively.
9. Risk Management: Risk identification, analysis, and Risk mitigation are spearheaded by
the SQA teams to aid in informed decision making
10. Education: Continuous education to stay current with tools, standards, and industry
trends

7.Describe about CMM?


CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon
University in 1987.
 It is not a software process model. It is a framework that is used to analyze the
approach and techniques followed by any organization to develop software products.
 It also provides guidelines to further enhance the maturity of the process used to
develop those software products.
 It is based on profound feedback and development practices adopted by the most
successful organizations worldwide.
 This model describes a strategy for software process improvement that should be
followed by moving through 5 different levels.
 Each level of maturity shows a process capability level. All the levels except level-1 are
further described by Key Process Areas (KPA’s).
People-CMM is based on several principles, which are listed below:
 People capability is a competitive issue. Competition arises when different
organizations are performing the same task(such as software development). In such a case,
the people of an organization are sources of strategy and skills, which in turn results in
better performance of the organization.
 The people capability should be defined in relation to the business objectives of the
organization.
 An organization should invest in improving the capabilities and skills of the people as
they are important for its success.
 The management should be responsible for enhancing the capability of the people in the
organization.
 The improvement in the capability of people should be done as a process. This process
should incorporate appropriate practices and procedures.
 The organization should be responsible for providing improvement opportunities so that
people in the organization can take advantage of them.
 Since, new technologies and organizational practices emerge rapidly, the organizations
should continually improve their practices and develop the abilities of people.
Shortcomings of SEI/CMM:
 It encourages the achievement of a higher maturity level in some cases by displacing
the true mission, which is improving the process and overall software quality.
 It only helps if it is put into place early in the software development process.
 It has no formal theoretical basis and in fact is based on the experience of very
knowledgeable people.
 It does not have good empirical support and this same empirical support could also be
constructed to support other models.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Difficulty in measuring process improvement: The SEI/CMM model may not provide
an accurate measure of process improvement, as it relies on self-assessment by the
organization and may not capture all aspects of the development process.
 Focus on documentation rather than outcomes: The SEI/CMM model may focus too
much on documentation and adherence to procedures, rather than on actual outcomes such
as software quality and customer satisfaction.
 May not be suitable for all types of organizations: The SEI/CMM model may not be
suitable for all types of organizations, particularly those with smaller development teams or
those with less structured development processes.
 May not keep up with rapidly evolving technologies: The SEI/CMM model may not be
able to keep up with rapidly evolving technologies and development methodologies, which
could limit its usefulness in certain contexts.
 Lack of agility: The SEI/CMM model may not be agile enough to respond quickly to
changing business needs or customer requirements, which could limit its usefulness in
dynamic and rapidly changing environments.
Key Process Areas (KPA’s): Each of these KPA’s defines the basic requirements that should
be met by a software process in order to satisfy the KPA and achieve that level of maturity.
Conceptually, key process areas form the basis for management control of the software project
and establish a context in which technical methods are applied, work products like models,
documents, data, reports, etc. are produced, milestones are established, quality is ensured and
change is properly managed.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

The 5 levels of CMM are as follows:


Level-1: Initial –
 No KPA’s defined.
 Processes followed are Adhoc and immature and are not well defined.
 Unstable environment for software development.
 No basis for predicting product quality, time for completion, etc.
 Limited project management capabilities, such as no systematic tracking of schedules,
budgets, or progress.
 Limited communication and coordination among team members and stakeholders.
 No formal training or orientation for new team members.
 Little or no use of software development tools or automation.
 Highly dependent on individual skills and knowledge rather than standardized
processes.
 High risk of project failure or delays due to lack of process control and stability.
Level-2: Repeatable –
 Focuses on establishing basic project management policies.
 Experience with earlier projects is used for managing new similar natured projects.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Project Planning- It includes defining resources required, goals, constraints, etc. for
the project. It presents a detailed plan to be followed systematically for the successful
completion of good quality software.
 Configuration Management- The focus is on maintaining the performance of the
software product, including all its components, for the entire lifecycle.
 Requirements Management- It includes the management of customer reviews and
feedback which result in some changes in the requirement set. It also consists of
accommodation of those modified requirements.
 Subcontract Management- It focuses on the effective management of qualified
software contractors i.e. it manages the parts of the software which are developed by third
parties.
 Software Quality Assurance- It guarantees a good quality software product by
following certain rules and quality standard guidelines while developing.
Level-3: Defined –
 At this level, documentation of the standard guidelines and procedures takes place.
 It is a well-defined integrated set of project-specific software engineering and
management processes.
 Peer Reviews- In this method, defects are removed by using a number of review
methods like walkthroughs, inspections, buddy checks, etc.
 Intergroup Coordination- It consists of planned interactions between different
development teams to ensure efficient and proper fulfillment of customer needs.
 Organization Process Definition- Its key focus is on the development and
maintenance of the standard development processes.
 Organization Process Focus- It includes activities and practices that should be
followed to improve the process capabilities of an organization.
 Training Programs- It focuses on the enhancement of knowledge and skills of the
team members including the developers and ensuring an increase in work efficiency.
Level-4: Managed –
 At this stage, quantitative quality goals are set for the organization for software
products as well as software processes.
 The measurements made help the organization to predict the product and process
quality within some limits defined quantitatively.
 Software Quality Management- It includes the establishment of plans and strategies
to develop quantitative analysis and understanding of the product’s quality.
 Quantitative Management- It focuses on controlling the project performance in a
quantitative manner.
Level-5: Optimizing –
 This is the highest level of process maturity in CMM and focuses on continuous process
improvement in the organization using quantitative feedback.
 Use of new tools, techniques, and evaluation of software processes is done to prevent
recurrence of known defects.
 Process Change Management- Its focus is on the continuous improvement of the
organization’s software processes to improve productivity, quality, and cycle time for the
software product.
 Technology Change Management- It consists of the identification and use of new
technologies to improve product quality and decrease product development time.
 Defect Prevention- It focuses on the identification of causes of defects and prevents
them from recurring in future projects by improving project-defined processes.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

8.Briefly explain about PCMM?

People Capability Maturity Model (PCMM)

PCMM is a maturity structure that focuses on continuously improving the management and
development of the human assets of an organization.

459.2K
Java Try Catch

It defines an evolutionary improvement path from Adhoc, inconsistently performed practices, to


a mature, disciplined, and continuously improving the development of the knowledge, skills, and
motivation of the workforce that enhances strategic business performance.

The People Capability Maturity Model (PCMM) is a framework that helps the organization
successfully address their critical people issues. Based on the best current study in fields such as
human resources, knowledge management, and organizational development, the PCMM guides
organizations in improving their steps for managing and developing their workforces.

The People CMM defines an evolutionary improvement path from Adhoc, inconsistently
performed workforce practices, to a mature infrastructure of practices for continuously elevating
workforce capability.

The PCMM subsists of five maturity levels that lay successive foundations for continuously
improving talent, developing effective methods, and successfully directing the people assets of
the organization. Each maturity level is a well-defined evolutionary plateau that institutionalizes
a level of capability for developing the talent within the organization

The five steps of the People CMM framework are:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Initial Level: Maturity Level 1

The Initial Level of maturity includes no process areas. Although workforce practices implement
in Maturity Level, 1 organization tend to be inconsistent or ritualistic, virtually all of these
organizations perform processes that are defined in the Maturity Level 2 process areas.

Managed Level: Maturity Level 2

To achieve the Managed Level, Maturity Level 2, managers starts to perform necessary people
management practices such as staffing, operating performance, and adjusting compensation as a
repeatable management discipline. The organization establishes a culture focused at the unit level
for ensuring that person can meet their work commitments. In achieving Maturity Level 2, the
organization develops the capability to handle skills and performance at the unit level. The
process areas at Maturity Level 2 are Staffing, Communication and Coordination, Work
Environment, Performance Management, Training and Development, and Compensation.

Defined Level: Maturity Level 3

The fundamental objective of the defined level is to help an organization gain a competitive
benefit from developing the different competencies that must be combined in its workforce to
accomplish its business activities. These workforce competencies represent critical pillars
supporting the strategic workforce competencies to current and future business objectives; the
improved workforce practices for implemented at Maturity Level 3 become crucial enablers of
business strategy.

Predictable Level: Maturity Level 4

At the Predictable Level, the organization handles and exploits the capability developed by its
framework of workforce competencies. The organization is now able to handle its capacity and
performance quantitatively. The organization can predict its capability for performing work
because it can quantify the ability of its workforce and of the competency-based methods they
use performing in their assignments.

Optimizing Level: Maturity Level 5

At the Optimizing Level, the integrated organization is focused on continual improvement. These
improvements are made to the efficiency of individuals and workgroups, to the act of
competency-based processes, and workforce practices and activities.

9.Briefly explain about CMMI and its objectives?


Capability Maturity Model Integration (CMMI) is a successor of CMM and is a more
evolved model that incorporates best components of individual disciplines of CMM like
Software CMM, Systems Engineering CMM, People CMM, etc. Since CMM is a reference
model of matured practices in a specific discipline, so it becomes difficult to integrate these

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

disciplines as per the requirements. This is why CMMI is used as it allows the integration of
multiple disciplines as and when needed.
Objectives of CMMI :
1. Fulfilling customer needs and expectations.
2. Value creation for investors/stockholders.
3. Market growth is increased.
4. Improved quality of products and services.
5. Enhanced reputation in Industry.
CMMI Representation – Staged and Continuous :
A representation allows an organization to pursue a different set of improvement objectives.
There are two representations for CMMI :
 Staged Representation :
 uses a pre-defined set of process areas to define improvement path.
 provides a sequence of improvements, where each part in the sequence serves as
a foundation for the next.
 an improved path is defined by maturity level.
 maturity level describes the maturity of processes in organization.
 Staged CMMI representation allows comparison between different organizations
for multiple maturity levels.
 Continuous Representation :
 allows selection of specific process areas.
 uses capability levels that measures improvement of an individual process area.
 Continuous CMMI representation allows comparison between different
organizations on a process-area-by-process-area basis.
 allows organizations to select processes which require more improvement.
 In this representation, order of improvement of various processes can be
selected which allows the organizations to meet their objectives and eliminate
risks.
CMMI Model – Maturity Levels :
In CMMI with staged representation, there are five maturity levels described as follows :
1. Maturity level 1 : Initial
 processes are poorly managed or controlled.
 unpredictable outcomes of processes involved.
 ad hoc and chaotic approach used.
 No KPAs (Key Process Areas) defined.
 Lowest quality and highest risk.
2. Maturity level 2 : Managed
 requirements are managed.
 processes are planned and controlled.
 projects are managed and implemented according to their documented plans.
 This risk involved is lower than Initial level, but still exists.
 Quality is better than Initial level.
3. Maturity level 3 : Defined
 processes are well characterized and described using standards, proper
procedures, and methods, tools, etc.
 Medium quality and medium risk involved.
 Focus is process standardization.
4. Maturity level 4 : Quantitatively managed
 quantitative objectives for process performance and quality are set.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 quantitative objectives are based on customer requirements, organization needs,


etc.
 process performance measures are analyzed quantitatively.
 higher quality of processes is achieved.
 lower risk
5. Maturity level 5 : Optimizing
 continuous improvement in processes and their performance.
 improvement has to be both incremental and innovative.
 highest quality of processes.
 lowest risk in processes and their performance.
CMMI Model – Capability Levels
A capability level includes relevant specific and generic practices for a specific process area
that can improve the organization’s processes associated with that process area. For CMMI
models with continuous representation, there are six capability levels as described below :
1. Capability level 0 : Incomplete
 incomplete process – partially or not performed.
 one or more specific goals of process area are not met.
 No generic goals are specified for this level.
 this capability level is same as maturity level 1.
2. Capability level 1 : Performed
 process performance may not be stable.
 objectives of quality, cost and schedule may not be met.
 a capability level 1 process is expected to perform all specific and generic
practices for this level.
 only a start-step for process improvement.
3. Capability level 2 : Managed
 process is planned, monitored and controlled.
 managing the process by ensuring that objectives are achieved.
 objectives are both model and other including cost, quality, schedule.
 actively managing processing with the help of metrics.
4. Capability level 3 : Defined
 a defined process is managed and meets the organization’s set of guidelines and
standards.
 focus is process standardization.
5. Capability level 4 : Quantitatively Managed
 process is controlled using statistical and quantitative techniques.
 process performance and quality is understood in statistical terms and metrics.
 quantitative objectives for process quality and performance are established.
6. Capability level 5 : Optimizing
 focuses on continually improving process performance.
 performance is improved in both ways – incremental and innovation.
 emphasizes on studying the performance results across the organization to
ensure that common causes or issues are identified and fixed.

10.Describe about the CMMI maturity levels?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

CMMI Maturity Levels


When a Class A appraisal is done, an organization is awarded either a maturity level rating or a
capability level rating. Maturity level ratings range from 1 to 5, with level 5 being the highest
level and the goal towards which organizations are working.

The five CMMI maturity levels are:

1. Initial. Processes are seen as unpredictable, poorly controlled, and reactive. Businesses in
this stage have an unpredictable environment that leads to increased risks and inefficiency.
2. Managed. Processes are characterized by projects and are frequently reactive.
3. Defined. Processes are well-characterized and well-understood. The organization is more
proactive than reactive, and there are organization-wide standards that provide guidance.
4. Quantitatively Managed. Processes are measured and controlled. The organization is
using quantitative data to implement predictable processes that meet organizational goals.
5. Optimizing. Processes are stable and flexible. The organizational focus is on continued
improvement and responding to changes.
It’s worth noting that while the goal of organizations is to reach level 5, the model is still
applicable and beneficial for organizations that have achieved this maturity level. Organizations
at this level are primarily focused on maintenance and improvements, and they also have the
flexibility to focus on innovation and to respond to industry changes.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

11.Describe briefly about CMMI?


Capability Maturity Model Integration (CMMI) is a successor of CMM and is a more
evolved model that incorporates best components of individual disciplines of CMM like
Software CMM, Systems Engineering CMM, People CMM, etc. Since CMM is a reference
model of matured practices in a specific discipline, so it becomes difficult to integrate these
disciplines as per the requirements. This is why CMMI is used as it allows the integration of
multiple disciplines as and when needed.
Objectives of CMMI :
1. Fulfilling customer needs and expectations.
2. Value creation for investors/stockholders.
3. Market growth is increased.
4. Improved quality of products and services.
5. Enhanced reputation in Industry.
CMMI Representation – Staged and Continuous :
A representation allows an organization to pursue a different set of improvement objectives.
There are two representations for CMMI :

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Staged Representation :
 uses a pre-defined set of process areas to define improvement path.
 provides a sequence of improvements, where each part in the sequence serves as
a foundation for the next.
 an improved path is defined by maturity level.
 maturity level describes the maturity of processes in organization.
 Staged CMMI representation allows comparison between different organizations
for multiple maturity levels.
 Continuous Representation :
 allows selection of specific process areas.
 uses capability levels that measures improvement of an individual process area.
 Continuous CMMI representation allows comparison between different
organizations on a process-area-by-process-area basis.
 allows organizations to select processes which require more improvement.
 In this representation, order of improvement of various processes can be
selected which allows the organizations to meet their objectives and eliminate
risks.
CMMI Model – Maturity Levels :
In CMMI with staged representation, there are five maturity levels described as follows :
1. Maturity level 1 : Initial
 processes are poorly managed or controlled.
 unpredictable outcomes of processes involved.
 ad hoc and chaotic approach used.
 No KPAs (Key Process Areas) defined.
 Lowest quality and highest risk.
2. Maturity level 2 : Managed
 requirements are managed.
 processes are planned and controlled.
 projects are managed and implemented according to their documented plans.
 This risk involved is lower than Initial level, but still exists.
 Quality is better than Initial level.
3. Maturity level 3 : Defined
 processes are well characterized and described using standards, proper
procedures, and methods, tools, etc.
 Medium quality and medium risk involved.
 Focus is process standardization.
4. Maturity level 4 : Quantitatively managed
 quantitative objectives for process performance and quality are set.
 quantitative objectives are based on customer requirements, organization needs,
etc.
 process performance measures are analyzed quantitatively.
 higher quality of processes is achieved.
 lower risk
5. Maturity level 5 : Optimizing
 continuous improvement in processes and their performance.
 improvement has to be both incremental and innovative.
 highest quality of processes.
 lowest risk in processes and their performance.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

CMMI Model – Capability Levels


A capability level includes relevant specific and generic practices for a specific process area
that can improve the organization’s processes associated with that process area. For CMMI
models with continuous representation, there are six capability levels as described below :
1. Capability level 0 : Incomplete
 incomplete process – partially or not performed.
 one or more specific goals of process area are not met.
 No generic goals are specified for this level.
 this capability level is same as maturity level 1.
2. Capability level 1 : Performed
 process performance may not be stable.
 objectives of quality, cost and schedule may not be met.
 a capability level 1 process is expected to perform all specific and generic
practices for this level.
 only a start-step for process improvement.
3. Capability level 2 : Managed
 process is planned, monitored and controlled.
 managing the process by ensuring that objectives are achieved.
 objectives are both model and other including cost, quality, schedule.
 actively managing processing with the help of metrics.
4. Capability level 3 : Defined
 a defined process is managed and meets the organization’s set of guidelines and
standards.
 focus is process standardization.
5. Capability level 4 : Quantitatively Managed
 process is controlled using statistical and quantitative techniques.
 process performance and quality is understood in statistical terms and metrics.
 quantitative objectives for process quality and performance are established.
6. Capability level 5 : Optimizing
 focuses on continually improving process performance.
 performance is improved in both ways – incremental and innovation.
 emphasizes on studying the performance results across the organization to
ensure that common causes or issues are identified and fixed.

(b)Explain about Malcolm Baldrige National Quality Award?

Improve Performance and Get World-Class Results

The Malcolm Baldrige National Quality Award® is the highest level of national recognition for
performance excellence that a U.S. organization can receive. The award focuses on performance
in five key areas:

 Product and process outcomes


 Customer outcomes
 Workforce outcomes
 Leadership and governance outcomes

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Financial and market outcomes

Organizations don't receive the award for specific products or services. To receive the award, an
organization must have a system that

 ensures continuous improvement in overall performance in delivering products and/or


services
 provides an approach for satisfying and responding to customers and stakeholders

Benefits of Applying

Applicants for the Malcolm Baldrige National Quality Award (MBNQA)—those that have
received the award and those that haven't—say the Baldrige evaluation process is one of the best,
most cost-effective, most comprehensive performance assessments your organization can find. In
annual surveys conducted by the Judges Panel of the MBNQA, applicants have noted
many benefits of applying for the award.

About the Award

Up to 18 awards are given annually across six eligibility categories: manufacturing, service,
small business, education, health care, and nonprofit. Award recipients that are nominated for a
subsequent award are not included in the total cap of 18.

Award recipients must share information about their exceptional performance practices with
other U.S. organizations, but they don't need to share proprietary information, even if they
included this information in their award applications. The principal mechanisms for sharing
information are the annual Quest for Excellence® Conference, and the Baldrige Fall
Conference (held in collaboration with state local Baldrige-based programs). Sharing beyond the
Quest for Excellence Conference is voluntary.

Site-visited organizations that are not recommended for the award may be recognized for
category best practices. Best practices identified by the Judges Panel in the Baldrige Criteria
process categories are eligible for recognition. To receive this recognition, an applicant's overall
organizational performance in the identified category must demonstrate mature processes that are
linked to the appropriate organizational results, demonstrating favorable levels and trends. Also,
the applicant organization must have credible performance across all categories. An applicant
may be recognized for more than one category best practice or for none at all. Organizations
receiving such category recognition will present at the Quest for Excellence
Conference following their recognition. Such organizations are recognized in the annual award
ceremony program, but not on stage, and the Baldrige Program highlights them on our website
and in a press release.

The Baldrige Program keeps the identity of all applicant organizations confidential unless they
receive the award or category best-practice recognition. We treat all information submitted by
applicants as strictly confidential, and we have numerous protocols and processes in place to
protect applicants and ensure the integrity of the award.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Unit-V
Answer all the questions
Part-A
1.What is meant by ‘plan’?

At this stage, you will literally plan what needs to be done. Depending on the project's size,
planning can take a major part of your team’s efforts. It will usually consist of smaller steps so
that you can build a proper plan with fewer possibilities of failure.

2.What is meant by ‘Do’?


After you have agreed on the plan, it is time to take action. At this stage, you will apply
everything that has been considered during the previous stage.
Be aware that unpredicted problems may occur at this phase. This is why, in a perfect situation,
you may first try to incorporate your plan on a small scale and in a controlled environment.

3.Give a short notes on ‘Check’?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

This is probably the most important stage of the PDCA cycle. If you want to clarify your plan,
avoid recurring mistakes, and apply continuous improvement successfully, you need to pay
enough attention to the CHECK phase.
4.Shortly explain about ‘Act’?
Finally, you arrive at the last stage of the Plan-Do-Check-Act cycle. Previously, you developed,
applied, and checked your plan. Now, you need to act.
If everything seems perfect and your team managed to achieve the original goals, then you can
proceed and apply your initial plan.

5.What is PDCA?
PDCA or plan–do–check–act (sometimes called plan–do–check–adjust) is an iterative design
and management method used in business for the control and continual improvement of
processes and products.
6.How to read software requirements?
To understand software requirements, you need to follow these steps1:
1. Define software requirements by clarifying and defining vague business requirements.
2. Analyze requirements by breaking them down into smaller categories by features and
functionalities.
3. Break down tasks.
Software requirements often describe a current business or technological problem in need of a
solution and a description of how the proposed software solves that problem2.Software
requirements can be divided into different categories3:

 Product requirements: These requirements specify how software product performs.


 Efficiency requirements: Describe the extent to which the software makes optimal use of
resources, the speed with which the system executes, and the memory it consumes for its
operation.

7.What about edge cases?


Edge cases are a common topic of discussion in software testing. The definition of “edge case”
itself is pretty straightforward. But there are many different types of bugs that can fall under the
category.
8.What are there enough test cases?
Given a example:

int sum(int* ary, int n);


I've written some test case for it

TEST("sum case 1")


{
int a1[] = {1,2,3,4};

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

ASSERT(sum(a1, 4) == 10);
}

TEST("sum case 2 negative")


{
int a2[] = {-1,-2,-3};
ASSERT(sum(a2, 3) == -6);
}

TEST("sum case 3 0 number")


{
ASSERT(sum(NULL, 0) == 0);
}

TEST("sum case 4 big number")


{
int a4[] = {1243142325,23423525,23525245,124313}
ASSERT(sum(a4) == .... );
}

TEST("sum case 5 mix")


{
int a5[] = {1243142325, -1, 0, -2224313}
ASSERT(sum(a5) == .... );
}
Sometimes when I write a function, I worry about I will miss some possible cases. Then I stop
and try hard to think other possible cases like negative integer, null, very big number, and other
strange input.

It costs my time and make me think is it necessary to write so many cases for one function? How
many cases should I write are enough to make test reliable? Or should I just write the normal
case first, then write another cases later if I have free time?

9.Shortly explain about cost models formulation?


Cost estimation simply means a technique that is used to find out the cost estimates. The cost
estimate is the financial spend that is done on the efforts to develop and test software
in Software Engineering. Cost estimation models are some mathematical algorithms or
parametric equations that are used to estimate the cost of a product or a project.
Various techniques or models are available for cost estimation, also known as Cost Estimation
Models as shown below :

10.What is meant by statistical quality control?


statistical quality control, the use of statistical methods in the monitoring and maintaining of
the quality of products and services. One method, referred to as acceptance sampling, can be
used when a decision must be made to accept or reject a group of parts or items based on the
quality found in a sample. A second method, referred to as statistical process control, uses

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

graphical displays known as control charts to determine whether a process should be continued
or should be adjusted to achieve the desired quality.

11.What is defect prediction and prevention?


Statistical analysis of historical data can help organizations identify trends and patterns related to
software defects. By analyzing the data, organizations can predict where defects are likely to
occur in future projects and take proactive measures to prevent them.

12.What is quality metrics and KPIs?


Statistical methods are used to define and calculate quality metrics and key performance
indicators (KPIs) that measure software quality. Metrics such as defect density, code churn, and
test coverage provide quantitative insights into the quality of the software.

13.What is process capability analysis?


Statistical process control (SPC) techniques help organizations assess the capability of their
software development and testing processes. Process capability analysis identifies whether
processes are stable and capable of meeting quality objectives.

14.What is root cause analysis?


When defects or quality issues are identified, statistical methods can be applied to perform root
cause analysis. By analyzing data related to defects, organizations can pinpoint the underlying
causes and take corrective actions.

15.What is regression analysis?


Regression analysis is used to determine the relationships between different variables in software
development and quality. It helps identify which factors influence software quality and how
changes in those factors impact the outcomes.
16.What is test design and coverage?
Statistical techniques can aid in test design and coverage analysis. Techniques like combinatorial
testing help organizations generate efficient and effective test cases to achieve maximum test
coverage with fewer tests.
17.What is reliability and failure analysis?
Statistical reliability analysis assesses the likelihood of software failure and helps organizations
design software with high reliability. Failure analysis uses statistical methods to understand and
mitigate software failures.
18.What is data driven decision making?
Organizations can make informed decisions regarding software quality by relying on data-driven
insights provided by statistical methods. These decisions can include resource allocation,
prioritization of defects, and process improvements.
19.What is performance testing and optimization?
Statistical techniques are employed in performance testing to analyze system behavior under
various load conditions. This analysis helps organizations optimize software performance by
identifying bottlenecks and areas for improvement.
20.What is continuous improvement?
Statistical methods support the continuous improvement of software quality processes through
techniques like Six Sigma, Lean, and the Plan-Do-Check-Act (PDCA) cycle. These
methodologies focus on reducing defects and improving process efficiency.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Part-B
1.What are the role of statistical methods in software quality?
Statistical methods are important in quality control and improvement1. The benefits and
advantages of statistical quality control include23:
 Early detection of defects
 Minimization of rework and scrap
 More uniform quality of production
 Improved relationship with the customer
 Reduced inspection costs
The main objective of statistical process control is to determine whether variations in output are
due to assignable causes or common causes4

(b)Elaborately explains about transforming requirements to test cases?


Testing continues to be the major approach to ensuring the quality of software during
development. Although there have been many attempts to automate the generation of test cases
from user requirements (formal or informal), the widespread approach to creating test cases
continues to be mainly a manual process. However, many studies have shown that automating
the generation of test cases from requirements can substantially reduce costs and improve the
efficiency of the testing process. Test automation has also proven to show positive effects on
software quality. With the advances of Model-driven Software Engineering (MDSE), Artificial
Intelligence (AI) and Natural Language Processing (NLP), the possibility of further automating
the generation of test cases from requirements is increasing.

The approach we are working on is to use a model-to-model (M2M) transformation to convert


user requirements into test cases with the support of a knowledge base. The key to this
transformation process is the use of meta-models to represent user requirements (use cases, user
stories, etc.) and test cases. The proposed M2M transformation is composed of three phases.
Phase 1 includes the creation of M2M transformation rules from the user requirements meta-
model to the abstract test case meta-model and an initial knowledge base with grammatical

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

relationships to support the transformation. Phase 2 uses NLP and a data model to generate an
enhanced user requirements model, which is then transformed into abstract test cases using the
transformation rules and the knowledge base. Phase 3 includes the generation of concrete test
cases using the abstract test cases and a data model instance.

To date, a prototype has been created that accepts as input a source model for the user
requirement (use cases and user stories), validates the model against a meta-model, and performs
NLP processing with a pipeline of extraction features from the user requirements while using the
knowledge base. We then create an enhanced user requirements (EUR) model, which is validated
against a EUR meta-model, and then transformed to a target model (abstract test case) using the
predefined rules of an M2M transformation. Finally, to complete the prototype, a component will
be added to generate concrete test cases by querying a database instance and using abstract test
case models. We will validate our test case generation process by comparing generated concrete
test cases against existing testing cases from student projects using the relevant database
instances.

3Describe about quality through continuous improvement process?


Continuous improvement is a systematic, ongoing effort to improve the quality of care and
services1. Among the most widely used tools for the continuous improvement model is a four-
step quality assurance method—the plan-do-check-act (PDCA) cycle2. Organizations and
researchers articulate the fundamentals of continuous quality improvement slightly differently,
but it generally embodies five principles3:

 Look at the system and its processes.


 Use statistical analysis to identify and detail problems and strengths.
 Employ cross-functional teams drawn from employees, management, volunteers, board
members, and even customers.
 Empower all stakeholders to identify problems and opportunities for improvement, and to
develop and present solutions.
 Focus on both internal and external customers.CQI project development commonly
includes defining the problem, benchmarking, setting a goal, then iterative quality
improvement projects

(b)Discuss briefly about Plan-Do-Check-Act example?


Example of a PDCA cycle

Regional Blue Hospital forms a PDCA team to handle the high number of health care-associated
infections (HAIs), where patients get a secondary infection because of their hospital stay. The
team goes through the following PDCA cycle:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Plan: The team decides they want to see a 25% reduction in the number of HAIs. The
team comes up with reasons HAIs are happening, which can include ineffective employee
training, poor air filtration system or longer hospital stays than necessary.

 Do: The team may then decide that they think improper employee training is at the core
of their HAI issue. They may figure that if employees went through a training program,
they could prevent a lot of secondary infections in their patients.

 Check: Over several months, they may develop new training and use a core group of
nurses to test this training to see if these nurses follow protocol more and if their patients
have a significantly lower incidence of infections associated with health care.

 Act: If this solution seems to work out and the team is happy with the results, then the
cycle can close for a time until it's time to revisit the training and improve it further. If it
doesn't seem like the training is effective at decreasing the number of HAIs in a time
frame, the team may want to revisit their proposed solutions and try something else.

5.What are Deming’s quality principles 14 points? Describe it.


1. Create constancy of purpose
2. Adopt the new philosophy
3. Cease dependence on mass inspection
4. End the practice of awarding business on price tag alone
5. Seek continuous improvement
6. Institute modern methods of training on the job
7. Institute leadership
8. Drive out fear
9. Break down barriers between staff areas
10. Eliminates slogans and targets
11. Eliminate numerical quotas
12. Remove barriers to pride in workmanship
13. Institute a vigorous program of education and training
14. Take action to accomplish the transformation

(b)How to convert a requirement into test cases set?

Converting a requirement into a set of test cases is a multi-step process. Here’s an example of how

to convert the requirement “User logs onto the website using email and password” into a set of

test cases:

1. Identify the inputs: email and password.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

2. Identify the expected outputs: successful login or error message.

3. Identify any preconditions (for example, the user has an account).

4. Create test cases based on the inputs and expected outputs (for example, “Test case 1:

Enter valid email and password and verify successful login”).

7.What requirements do not need test cases to be covered with?


Not all requirements need to be covered with test cases. Requirements that are trivial (for
example, “The software shall display the company logo on the main screen”) or impossible to
test (for example, “The software shall be easy to use”) may not need to be covered with test
cases.

Remember to read requirements carefully, break them down into smaller pieces, and create a

structure for them in your head. By doing so, you’ll be able to write test cases that cover all the

necessary scenarios and ensure that the software meets the customer’s needs.

With the help of TestCaseLab, its intuitive interface, and powerful features, you can quickly

create test cases and ensure that your software meets the highest quality standards.

(b)Explain about defect injection during SDLC?


 Defect insertion (or discovery) -- reference to which phase of system (e.g., requirements
development, design, development, implementation, integration, test, sustainment) a defect
was inserted/injected (or discovered) in the product. So a defect that was inserted at
requirements time (e.g., a user requirement that was misinterpreted) and discovered at
integration time would exhibit bad defect containment.
 Failure or Fault Injection -- The intentional injection of a failure condition into a running
system during a test activity, to determine whether the system reacts well to off-nominal or
exceptional conditions.
 Defect injection -- Deliberately inserted defects, inserted at any phase, and intended to
determine the effectiveness of quality assurance, testing, or defect containment discipline.
Also known as "defect seeding".

9.Elaborately explain about defect detection and removal process?


Defect detection:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

A survey of defect detection studies comparing inspection and testing techniques yields practical
recommendations: use inspections for requirements and design defects, and use testing for code.
Evidence-based software engineering can help software practitioners decide which methods to
use and for what purpose. EBSE involves defining relevant questions, surveying and appraising
avail able empirical evidence, and integrating and evaluating new practices in the target
environment. This article helps define questions regarding defect detection techniques and
presents a survey of empirical studies on testing and inspection techniques. We then interpret the
findings in terms of practical use. The term defect always relates to one or more underlying faults
in an artifact such as code. In the context of this article, defects map to single faults.
Defect removal:
Defect Removal Efficiency (DRE) is a metric used to estimate test efficacy123. It allows the
development team to eliminate bugs before release by measuring the correlation of bugs detected
internally with the amount of bugs that were detected externally1. DRE can be expressed as a
percentage where DRE = (total defects found during the project/total defects introduced by the
project)x 100

(b)What is conceptual economic model? Explain it.


Conceptual models differ in the degrees of freedom given to the user in accomplishing tasks and
achieving goals. In some cases, the task flow is highly structured and linear, thus giving the user
less degrees of freedom in terms of alternative ways of the interaction. In other cases, the task
flow is unstructured, thus giving the user more degrees of freedom in terms of alternatives in
how to perform the interaction. Following this, typologies of conceptual models can be divided
into two main categories: sequential and structured, nonsequential and unstructured.
A conceptual model is the model of an application that the designers want users to understand.
By using the software and perhaps reading its documentation, users build a model in their minds
of how it works. It is best if the model that users build in their minds is like the one the designers
intended. That is more likely if you design a clear conceptual model beforehand.
Developing a conceptual model before designing a user interface is hard: it is tempting to jump
right into discussing user interface concepts, such as control panels, menus, and data displays.
The temptation is exacerbated by the tendency of sales and marketing people to state functional
requirements in terms of window layout and mouse clicks. When marketing requirements are
stated in UI terms, gracefully but firmly decline them, and demand requirements stated in terms
of the task: the problems users face and the goals they wish to achieve.
A conceptual model is not a user interface. It is not expressed in terms of keystrokes, mouse
actions, dialog boxes, controls, or screen graphics. It is expressed in terms of the concepts of the
intended users’ tasks: the data users manipulate, how the data is organized, and what users do to
the data. A conceptual model explains, abstractly, the function of the software and what concepts
people need to be aware of in order to use it. The idea is that by carefully crafting an explicit
conceptual model, and then designing a UI from that, the resulting software will be cleaner,
simpler, and easier to understand.

11.Describe about Deming’s quality principles?

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Deming management is the management technique that focuses on the creation and continuous
improvement of organizational mechanisms for the high quality of outputs. It is the application
of the principles of W. Edwards Deming, an American Scholar in management.

According to Deming, management is the creation and continuous improvement of


organizational systems. The implementation of such a creative and improved management
system leads to an increase in value for customers of its products or services.

Continuous improvement is essential in the management system in this internationally


competitive world characterized by rapidly changing technology and customers’ demands for
higher levels of value. Continuous improvement refers to the constant refinement and
improvements of products, services, and organizational systems to yield improved value to
customers.

It is a fact that most scholars believe that the beginning of quality in productivity occurred in
Japan only after the 2nd World War. Most of the Japanese industries were completely destroyed
in the war and had to rebuild themselves from scratch. As such, a number of American scholars
reached Japan and helped Japanese Entrepreneurs to operate modern manufacturing facilities.
Deming was one of the scholars who went to Japan in 1950.

Deming widely acknowledges his contribution to the re-emergence of post-war Japan. He


delivered lectures and trained Japanese entrepreneurs on statistical control techniques in the
production process. Deming derived this technique from his friend William Shewhart and his
colleagues, they invented this technique of management at Bell laboratories through deep
research and investigation.

Deming questions the basic assumption that high quality means higher prices. He focuses on
statistical control of organizational performance and “joy in work” which will drive ever-
improving quality forward and lower the costs.

He believes that a manager’s job is to seek out and correct the causes of failure, rather than
merely identify failures after they occur. The goal of Deming’s fourteen pinots lies in altering the
behaviors of managers and employees so that companies can become low-cost, high-quality, and
highly productive suppliers of goods and services.

In recognition of his contribution to the management and substantial achievement in quality, the
Japanese government instituted a Deming prize shortly after the 2nd World War.

Related: Theories of Management

Principles of Deming Management

Robert Kreitner has suggested the following four quality management principles of Deming
management.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

 Quality improvement drives the entire economy


 The customer always comes first
 Do not blame the person, fix the system
 Plan-Do-Check-Act
Quality Improvement Drives The Entire Economy

Quality improvement is essential to reduce waste and inefficiency. It helps to increase higher
productivity, greater market share, and new business and employment opportunities.

Customer Always Comes First

A satisfied customer is essential for organizational success. An organization must produce its
products and services that meet the expectations of customers easily but effectively. Only slogans
and inspirational words are not enough, what is necessary is action to implement.

Do Not Blame The Person, Fix The System

Deming disagreed with blaming a particular person or department for inferior quality.
Management, work, rules, technology, organizational structure, and culture, all are responsible
for inferior quality. Employees will produce superior quality if the system is redesigned to
improve it.

Therefore, the management must treat employees as internal customers and provide them with
sufficient ideas and suggestions for quality improvement.

Plan-Do-Check-Act

Deming suggested making informed decisions on the basis of rigid data. Deming suggested a
four-step process for the application of total quality management (TQM) which is popularly
known as the PDCA cycle. This is also known as Deming’s four phases of quality management.
This is given by,

 Plan – Management must plan for product development. Planning objectives, policies,
tools, and customer needs, and training employees to produce products that meet
customers’ needs, is essential for quality improvement.
 Do – Management must produce the products according to the product development
plans. If any problem is identified in the planning phase, necessary steps must be taken to
solve the problem in this phase.
 Check – Once the production process has started, the management must check to find out
deviations in outputs or inputs. This phase helps to find out whether or not the
improvement process was successful. It is also helpful in finding out the causes of
deviations and evaluating their impact on the final product and market share.
 Act – This step deals with market research and aims to prevent problems rather than
correct them. after studying the lesson, the management must act on the basis of the
learned lessons. Deming’s PDCA cycle is at developing teamwork with respect to product
development, manufacturing, sale, and market research as shown in the figure:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Deming’s 14 Points

Here is a short overview of the 14 points of Deming management.

1. Purpose-driven commitment: Establish a clear and unwavering vision to guide all


actions.
2. Embrace a new philosophy: Adopt quality, continuous improvement, and customer
satisfaction as core principles.
3. Move beyond inspection: Focus on prevention rather than relying solely on inspection.
4. Value beyond price: Consider quality and long-term relationships when making business
decisions.
5. Continuously improve: Foster a culture of learning and innovation.
6. Enhance on-the-job training: Provide modern training methods to equip employees
with the necessary skills.
7. Develop effective leadership: Inspire trust, collaboration, and accountability.
8. Foster a fear-free environment: Encourage open communication and risk-taking.
9. Break down barriers: Promote collaboration across departments.
10. Focus on intrinsic motivation: Eliminate slogans and arbitrary targets.
11. Quality over quotas: Emphasize quality and customer satisfaction, not numerical quotas.
12. Encourage pride in workmanship: Recognize and celebrate employees’ dedication and
excellence.
13. Invest in education and training: Establish a robust program for employee
development.
14. Take action for transformation: Drive proactive change towards a culture of quality and
customer focus.
In recap, these 14 points by Deming advocate purpose-driven commitment, a new philosophy,
continuous improvement, effective leadership, fearlessness, teamwork, employee development,
and transformative action to achieve quality and customer satisfaction in organizations.

(b)Discuss briefly about Continuous Improvement through Plan Do Check Act (PDCA)?

(0)
Article • 7 min read
PDCA (Plan Do Check Act)

Continually Improving, in a Methodical Way

MTCT
By the Mind Tools Content Team

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Also known as PDSA, the "Deming Wheel," and "Shewhart Cycle"

Imagine that your customer satisfaction score on a business ratings website has dipped.

When you look at recent comments, you see that your customers are complaining about

late delivery, and that products are being damaged in transit.

So, you decide to run a small pilot project for a month, using a new supplier to deliver

your products to a sample set of customers. And you're pleased to see that the feedback is

positive. As a result, you decide to use the new supplier for all your orders in the future.

What you've just done is a single loop called the PDCA Cycle. This is an established tool

for achieving continuous improvement in your business.

The PDCA approach was pioneered by Dr William Deming, and we've worked closely

with The Deming Institute to produce this article. In it, we outline the key principles of

PDCA, and explain when and how to put them into practice.

Download transcript

Click here to view a transcript of this video.


What Is PDCA?

In the 1950s, management consultant Dr William Edwards Deming developed a method

of identifying why some products or processes don't work as hoped. His approach has

since become a popular strategy tool, used by many different types of organizations. It

allows them to formulate theories about what needs to change, and then test them in a

"continuous feedback loop."

Note:

Deming himself used the concept of Plan-Do-Study-Act (PDSA). He found that the focus

on Check is more about the implementation of a change.

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

He preferred to focus instead on studying the results of any innovations, and to keep

looking back at the initial plan. He stressed that the search for new knowledge is always

guided by a theory – so you should be as sure as you can that your theory is right! [1]

The Four Phases of the PDCA Cycle

With the PDCA cycle you can solve problems and implement solutions in a rigorous,

methodical way. Let's look at each of the four stages in turn:

1. Plan

First, identify and understand your problem or opportunity. Perhaps the standard of a

finished product isn't high enough, or an aspect of your marketing process should be

getting better results.

Explore the information available in full. Generate and screen ideas, and develop a robust

implementation plan.

Be sure to state your success criteria and make them as measurable as possible. You'll

return to them later in the Check stage.

2. Do

Once you've identified a potential solution, test it safely with a small-scale pilot project.

This will show whether your proposed changes achieve the desired outcome – with

minimal disruption to the rest of your operation if they don't. For example, you could

organize a trial within a department, in a limited geographical area, or with a particular

demographic.

As you run the pilot project, gather data to show whether the change has worked or not.

You'll use this in the next stage.

3. Check

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

Next, analyze your pilot project's results against the criteria that you defined in Step 1, to

assess whether your idea was a success.

If it wasn't, return to Step 1. If it was, advance to Step 4.

You may decide to try out more changes, and repeat the Do and Check phases. But if your

original plan definitely isn't working, you'll need to return to Step 1.

4. Act

This is where you implement your solution. But remember that PDCA/PDSA is a loop,

not a process with a beginning and end. Your improved process or product becomes the
new baseline, but you continue to look for ways to make it even better.

When to Use PDCA

The PDCA/PDSA framework works well in all types of organizations. It can be used to

improve any process or product, by breaking them down into smaller steps or

development stages, and exploring ways to improve each one.

It's particularly helpful for implementing Total Quality Management or Six

Sigma initiatives, and for improving business processes generally.

However, going through the PDCA/PDSA cycle can be much slower than a

straightforward, "gung ho" implementation. So, it might not be the appropriate approach

for dealing with an urgent problem.

It also requires significant buy-in from team members, and offers fewer opportunities for

radical innovation – which may be what your organization needs instead.

How to Use PDCA to Improve Personal Performance

While PDCA/PDSA is an effective business tool, you can also use it to improve your own

performance:

Downloaded by Monisha Vinoth ([email protected])


lOMoARcPSD|18464566

First, Plan: Identify what's holding you back personally, and how you want to progress.

Look at the root causes of any issues, and set goals to overcome these obstacles.

Next, Do: When you've decided on your course of action, safely test different ways of

getting the results that you want.

Then, Check: Review your progress regularly, adjust your behavior accordingly, and

consider the consequences of your actions.

Finally, Act: Implement what's working, continually refine what isn't, and carry on the

cycle of continuous improvement.

Key Points

The PDCA/PDSA cycle is a continuous loop of planning, doing, checking (or studying),

and acting. It provides a simple and effective approach for solving problems and

managing change. The model is useful for testing improvement measures on a small scale

before updating procedures and working practices.

The approach begins with a Planning phase in which problems are clearly identified and

understood, and a theory for improvement is defined. Potential solutions are tested on a

small scale in the Do phase, and the outcome is then studied and Checked.

Go through the Do and Check stages as many times as necessary before the full, polished

solution is implemented, in the Act phase of the cycle.

Downloaded by Monisha Vinoth ([email protected])

You might also like