0% found this document useful (0 votes)
19 views21 pages

Unit 1

The document outlines a syllabus for a Software Testing course, detailing various units covering principles of testing, types of testing (White Box and Black Box), integration testing, system and acceptance testing, and performance testing. It also describes the Software Development Life Cycle (SDLC), its stages, and various models such as Waterfall, Agile, and Spiral. Key principles of software testing are discussed, emphasizing the importance of early testing, defect clustering, and the context-dependent nature of testing.

Uploaded by

sneha chaudhari
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)
19 views21 pages

Unit 1

The document outlines a syllabus for a Software Testing course, detailing various units covering principles of testing, types of testing (White Box and Black Box), integration testing, system and acceptance testing, and performance testing. It also describes the Software Development Life Cycle (SDLC), its stages, and various models such as Waterfall, Agile, and Spiral. Key principles of software testing are discussed, emphasizing the importance of early testing, defect clustering, and the context-dependent nature of testing.

Uploaded by

sneha chaudhari
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/ 21

Software Testing

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 1


Software Testing

Syllabus
Unit No 1: [7 Hours]

Principles of Testing Software development life cycle model: Phases of software project,
Quality, Quality assurance and quality control, Testing, Verification and validation, Process
models to represent various phases, Life cycle models, Software testing life cycle.

Unit No 2: [7 Hours]

White Box Testing (WBT) and Black Box Testing: Static testing, Structural testing, Challenges
in WBT. Black box testing: Black box testing process.

Unit No 3: [7 Hours]

Integration Testing: Definition, As a type of testing: Top-down integration, Bottom-up


integration, Bidirectional integration, System integration, Choosing integration method, As a
phase of testing, Scenario testing: System scenarios, Use case scenarios, Defect bash.

Unit No 4: [8 Hours]

System and Acceptance Testing, Functional Vs non Functional, Functional system testing,
Nonfunctional system testing, Acceptance testing.

Unit No 5: [7 Hours]

Performance testing, Regression testing , Internationalization testing, Ad hoc testing. Factors


governing performance of testing, Methodology, tools and process for performance testing.
Regression Testing: Introduction, Types of Regression testing, Regression testing process.
Adhoc testing: Introduction, Buddy testing, Pair testing, exploratory testing, Iterative testing,
Agile and extreme testing, XP work flow, Defect seeding. Testing Object Oriented Software:
Introduction, Comparison of object oriented and procedural software, System testing example,
Unit testing of classes, Tools for testing object oriented software, Testing web applications.

Text Books

1. Srinivasan Desikan, Gopalaswamy Ramesh, “Software Testing: Principles and Practices”, Pearson
publication, 2nd edition, 2006.

Reference Books

1. Loise Tamres, “Introducing Software Testing”, Pearson publication, 2002.

2. Boris Beizer, “Software Testing Techniques”, 2nd edition, Dreamtech press, 2014

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 2


Software Testing

Unit 1
1.1 Principals of testing

Software testing is an important aspect of software development, ensuring that applications


function correctly and meet user expectations.
In this article, we will go into the principles of software testing, exploring key concepts and
methodologies to enhance product quality. From test planning to execution and analysis,
understanding these principles is vital for delivering robust and reliable software solutions.

 Below-mentioned are the principles of software testing:


1. Testing shows the presence of defects
2. Exhaustive testing is not possible
3. Early testing
4. Defect clustering
5. Pesticide paradox
6. Testing is Context-Dependent
7. Absence of Errors fallacy

1. Testing shows the Presence of Defects


The goal of software testing is to make the software fail. Software testing reduces the presence
of defects. Software testing talks about the presence of defects and doesn’t talk about the
absence of defects. Software testing can ensure that defects are present but it can not prove that
software is defect-free. Even multiple tests can never ensure that software is 100% bug-free.
Testing can reduce the number of defects but not remove all defects.

2. Exhaustive Testing is not Possible


It is the process of testing the functionality of the software in all possible inputs (valid or
invalid) and pre-conditions is known as exhaustive testing. Exhaustive testing is impossible
means the software can never test at every test case. It can test only some test cases and assume
that the software is correct and it will produce the correct output in every test case. If the
software will test every test case then it will take more cost, effort, etc., which is impractical.

3. Early Testing
To find the defect in the software, early test activity shall be started. The defect detected in the
early phases of SDLC will be very less expensive. For better performance of software,
software testing will start at the initial phase i.e. testing will perform at the requirement
analysis phase.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 3


Software Testing

4. Defect Clustering
In a project, a small number of modules can contain most of the defects. The Pareto Principle
for software testing states that 80% of software defects come from 20% of modules.

5. Pesticide Paradox
Repeating the same test cases, again and again, will not find new bugs. So it is necessary to
review the test cases and add or update test cases to find new bugs.
6. Testing is Context-Dependent
The testing approach depends on the context of the software developed. Different types of
software need to perform different types of testing. For example, The testing of the e-
commerce site is different from the testing of the Android application.

7. Absence of Errors Fallacy


If a built software is 99% bug-free but does not follow the user requirement then it is unusable.
It is not only necessary that software is 99% bug-free but it is also mandatory to fulfill all the
customer requirements.

1.2 Software Development Life Cycle (SDLC)

Software development life cycle (SDLC) is a structured process that is used to design,
develop, and test good-quality software. SDLC, or software development life cycle, is a
methodology that defines the entire procedure of software development step-by-step. The goal
of the SDLC life cycle model is to deliver high-quality, maintainable software that meets the
user’s requirements. SDLC in software engineering models outlines the plan for each stage so
that each stage of the software development model can perform its task efficiently to deliver
the software at a low cost within a given time frame that meets users requirements.

 What is the Software Development Life Cycle (SDLC)?


SDLC is a process followed for software building within a software organization. SDLC
consists of a precise plan that describes how to develop, maintain, replace, and enhance
specific software. The life cycle defines a method for improving the quality of software and the
all-around development process.

 Stages of the Software Development Life Cycle


SDLC specifies the task(s) to be performed at various stages by a software engineer or
developer. It ensures that the end product is able to meet the customer’s expectations and fits
within the overall budget. Hence, it’s vital for a software developer to have prior knowledge of
this software development process. SDLC is a collection of these six stages, and the stages of
SDLC are as follows:

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 4


Software Testing

Stage-1: Planning and Requirement Analysis


Planning is a crucial step in everything, just as in software development. In this same
stage, requirement analysis is also performed by the developers of the organization. This is
attained from customer inputs, and sales department/market surveys.
The information from this analysis forms the building blocks of a basic project. The quality of
the project is a result of planning. Thus, in this stage, the basic project is designed with all the
available information.

Stage-2: Defining Requirements


In this stage, all the requirements for the target software are specified. These requirements get
approval from customers, market analysts, and stakeholders.
This is fulfilled by utilizing SRS (Software Requirement Specification). This is a sort of
document that specifies all those things that need to be defined and created during the entire
project cycle.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 5


Software Testing

Stage-3: Designing Architecture


SRS is a reference for software designers to come up with the best architecture for the
software. Hence, with the requirements defined in SRS, multiple designs for the product
architecture are present in the Design Document Specification (DDS).
This DDS is assessed by market analysts and stakeholders. After evaluating all the possible
factors, the most practical and logical design is chosen for development.

Stage-4: Developing Product

At this stage, the fundamental development of the product starts. For this, developers use a
specific programming code as per the design in the DDS. Hence, it is important for the coders
to follow the protocols set by the association. Conventional programming tools like compilers,
interpreters, debuggers, etc. are also put into use at this stage. Some popular languages like
C/C++, Python, Java, etc. are put into use as per the software regulations.

Stage-5: Product Testing and Integration


After the development of the product, testing of the software is necessary to ensure its smooth
execution. Although, minimal testing is conducted at every stage of SDLC. Therefore, at this
stage, all the probable flaws are tracked, fixed, and retested. This ensures that the product
confronts the quality requirements of SRS.
 Documentation, Training, and Support: Software documentation is an essential part
of the software development life cycle. A well-written document acts as a tool and
means to information repository necessary to know about software processes, functions,
and maintenance. Documentation also provides information about how to use the
product. Training in an attempt to improve the current or future employee performance
by increasing an employee’s ability to work through learning, usually by changing his
attitude and developing his skills and understanding.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 6


Software Testing

Stage-6: Deployment and Maintenance of Products


After detailed testing, the conclusive product is released in phases as per the organization’s
strategy. Then it is tested in a real industrial environment. It is important to ensure its smooth
performance. If it performs well, the organization sends out the product as a whole. After
retrieving beneficial feedback, the company releases it as it is or with auxiliary improvements
to make it further helpful for the customers. However, this alone is not enough. Therefore,
along with the deployment, the product’s supervision.

1.3 Software Development Life Cycle Models:

1. Waterfall Model
It is the fundamental model of the software development life cycle. This is a very simple
model. The waterfall model is not in practice anymore, but it is the basis for all other SDLC
models. Because of its simple structure, the waterfall model is easier to use and provides a
tangible output. In the waterfall model, once a phase seems to be completed, it cannot be
changed, and due to this less flexible nature, the waterfall model is not in practice anymore.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 7


Software Testing

2. Agile Model
The agile model in SDLC was mainly designed to adapt to changing requests quickly. The
main goal of the Agile model is to facilitate quick project completion. The agile model refers
to a group of development processes. These processes have some similar characteristics but
also possess certain subtle differences among themselves.

 What is Scrum?
If we define Scrum in simple terms, then Scrum is a way of managing projects, especially in
software development. It's like a playbook that teams use to work together more effectively.
Instead of doing everything at once, Scrum breaks work into smaller parts called "sprints."
Each sprint focuses on completing a specific piece of the project, allowing teams to adapt and
improve as they go. It's all about teamwork, communication, and getting things done step by
step.
Scrum is a popular framework that is used whenever we want to develop complex
products, Ken Schwaber and Jeff Sutherland are known as the people who developed Scrum.

 The Scrum Framework


The Scrum framework is a simple, agile way to manage projects that helps teams work
together to create high-quality products quickly. Here are the basic components and principles
of Scrum, explained in simple terms.

 Scrum Team
 Product Owner: Decides what the team should work on and makes sure it meets business
and customer needs.
 Scrum Master: Helps the team follow Scrum rules and removes any obstacles they face.
 Development Team: A group of people with different skills who work together to build the
product.

 Artifacts:
 Product Backlog: A list of everything that needs to be done for the product, organized by
priority.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 8


Software Testing

 Sprint Backlog: A list of tasks the team plans to complete during the current sprint.
 Increment: The finished work at the end of a sprint that could be released to users.

 Events:
 Sprint: A short, fixed period (usually 1-4 weeks) where the team works on specific tasks
from the sprint backlog.
 Sprint Planning: A meeting at the start of the sprint where the team decides what to work
on.
 Daily Scrum: A quick daily meeting where the team checks in on progress and plans the
day's work.
 Sprint Review: A meeting at the end of the sprint where the team shows what they’ve
accomplished and gets feedback.
 Sprint Retrospective: A meeting at the end of the sprint where the team discusses what
went well and what could be improved for the next sprint.

 Key Terminologies of Scrum


Here are some of key terminologies of Scrum:
1. Product Backlog: The product backlog is known to be the prioritized list of fixes as well as
features that is included in the product's roadmap.
2. Sprint: Sprint is known as a time-box event which typically lasts from one week to four
weeks, in this phase a product increment or iteration occurs.
3. Development Team: The development team is a group of individuals who are professional
in their field and are responsible for product delivery.
4. Daily Scrum: Daily scrum is a 15 minute daily meeting used by the development team to
integrate activities and to create a plan for the next 24 hours of development.
5. Sprint Review: The sprint review is held at the end of the sprint in which the team presents
all the work that is completed to their stakeholders and the stakeholders give back their
feedback.
6. Sprint Retrospective: The sprint retrospective is a meeting concluded at the end of each
sprint so that the team can discuss what went well and what could be improved as well as
how to make those improvements.

3. Iterative Model
In the Iterative model in SDLC, each cycle results in a semi-developed but deployable
version; with each cycle, some requirements are added to the software, and the final cycle
results in the software with the complete requirement specification.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 9


Software Testing

4. Spiral Model
The spiral model in SDLC is one of the most crucial SDLC models that provides support for
risk handling. It has various spirals in its diagrammatic representation; the number of spirals
depends upon the type of project. Each loop in the spiral structure indicates the Phases of
the Spiral model.

5. V-Shaped Model
The V-shaped model in SDLC is executed in a sequential manner in V-shape. Each stage or
phase of this model is integrated with a testing phase. After every development phase, a testing
phase is associated with it, and the next phase will start once the previous phase is completed,
i.e., development & testing. It is also known as the verification or validation model.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 10


Software Testing

6. Big Bang Model


The Big Bang model in SDLC is a term used to describe an informal and unstructured
approach to software development, where there is no specific planning, documentation, or
well-defined phases.

Design :
The product requirements are understood and implemented as they arrive. The complete
modules or at least the part of the modules are integrated and tested. All the modules are run
separately and the defective ones are removed to find the cause. It is a suitable model where
requirements are not well understood and the final release date is not given. In simple, it can be
phased out in 3 points i.e.
1. Integrate each individual’s modules to give a unique integrated overview
2. Test each module separately to identify any error or defects
3. If any error found then separate that module and identify the cause of the error

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 11


Software Testing

When to use it and where not to :


This SDLC model is suitable for small projects when few people are working on the project,
the customer’s demands are not exact and keep changing, or if it is a dummy/side-project. As
there is no proper planning in this model it is considered the worst SDLC model and is highly
unsuitable for large projects.
It is recommended to go for the Big Bang model only due to the following cases i.e.
1. Developing a project for learning purposes or experiment purposes.
2. No clarity on the requirements from the user side.
3. When newer requirements need to be implemented immediately.
4. Changing requirements based on the current developing product outcome.
5. No strict guideline on product release or delivery date.
Features of Big Bang Model :
 Not require a well-documented requirement specification
 Provides a quick overview of the prototype
 Needs little effort and the idea of implementation
 Allows merging of newer technologies to see the changes and adaptability
Pros of Big Bang Model :
 There is no planning required for this.
 Suitable for small projects
 Very few resources are required.
 As there is no proper planning hence it does not require managerial staffs
 Easy to implement
 It develops the skills of the newcomers
 Very much flexible for the developers working on it
Cons of Big Bang Model :
 Not suitable for large projects.
 Highly risky model and uncertain
 Might be expensive if requirements are not clear
 Poor model for ongoing projects

1.3 Software Testing Life Cycle (STLC):


The Software Testing Life Cycle (STLC) is a systematic approach to testing a software
application to ensure that it meets the requirements and is free of defects. It is a process that
follows a series of steps or phases, and each phase has specific objectives and deliverables. The
STLC is used to ensure that the software is of high quality, reliable, and meets the needs of the
end-users.
The main goal of the STLC is to identify and document any defects or issues in the software
application as early as possible in the development process. This allows for issues to be
addressed and resolved before the software is released to the public.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 12


Software Testing

The stages of the STLC include Test Planning, Test Analysis, Test Design, Test Environment
Setup, Test Execution, Test Closure, and Defect Retesting. Each of these stages includes specific
activities and deliverables that help to ensure that the software is thoroughly tested and meets the
requirements of the end users.
Overall, the STLC is an important process that helps to ensure the quality of software
applications and provides a systematic approach to testing. It allows organizations to release
high-quality software that meets the needs of their customers, ultimately leading to customer
satisfaction and business success.

Characteristics of STLC
 STLC is a fundamental part of the Software Development Life Cycle (SDLC) but STLC
consists of only the testing phases.
 STLC starts as soon as requirements are defined or software requirement document is shared
by stakeholders.
 STLC yields a step-by-step process to ensure quality software.
In the initial stages of STLC, while the software product or the application is being developed,
the testing team analyzes and defines the scope of testing, entry and exit criteria, and also test
cases. It helps to reduce the test cycle time and also enhances product quality. As soon as the
development phase is over, the testing team is ready with test cases and starts the execution. This
helps in finding bugs in the early phase.

1.4 Phases of STLC

1. Requirement Analysis: Requirement Analysis is the first step of the Software Testing Life
Cycle (STLC). In this phase quality assurance team understands the requirements like what is to
be tested. If anything is missing or not understandable then the quality assurance team meets
with the stakeholders to better understand the detailed knowledge of requirements.
The activities that take place during the Requirement Analysis stage include:
 Reviewing the software requirements document (SRD) and other related documents
 Interviewing stakeholders to gather additional information
 Identifying any ambiguities or inconsistencies in the requirements
 Identifying any missing or incomplete requirements
 Identifying any potential risks or issues that may impact the testing process
Creating a requirement traceability matrix (RTM) to map requirements to test cases
At the end of this stage, the testing team should have a clear understanding of the software
requirements and should have identified any potential issues that may impact the testing process.
This will help to ensure that the testing process is focused on the most important areas of the
software and that the testing team is able to deliver high-quality results.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 13


Software Testing

2. Test Planning: Test Planning is the most efficient phase of the software testing life cycle
where all testing plans are defined. In this phase manager of the testing, team calculates the
estimated effort and cost for the testing work. This phase gets started once the requirement-
gathering phase is completed.
The activities that take place during the Test Planning stage include:
 Identifying the testing objectives and scope
 Developing a test strategy: selecting the testing methods and techniques that will be used
 Identifying the testing environment and resources needed
 Identifying the test cases that will be executed and the test data that will be used
 Estimating the time and cost required for testing
 Identifying the test deliverables and milestones
 Assigning roles and responsibilities to the testing team
 Reviewing and approving the test plan
At the end of this stage, the testing team should have a detailed plan for the testing activities that
will be performed, and a clear understanding of the testing objectives, scope, and deliverables.
This will help to ensure that the testing process is well-organized and that the testing team is able
to deliver high-quality results.

3. Test Case Development: The test case development phase gets started once the test planning
phase is completed. In this phase testing team notes down the detailed test cases. The testing
team also prepares the required test data for the testing. When the test cases are prepared then
they are reviewed by the quality assurance team.
The activities that take place during the Test Case Development stage include:
 Identifying the test cases that will be developed
 Writing test cases that are clear, concise, and easy to understand
 Creating test data and test scenarios that will be used in the test cases
 Identifying the expected results for each test case
 Reviewing and validating the test cases
 Updating the requirement traceability matrix (RTM) to map requirements to test cases
At the end of this stage, the testing team should have a set of comprehensive and accurate test
cases that provide adequate coverage of the software or application. This will help to ensure that
the testing process is thorough and that any potential issues are identified and addressed before
the software is released.

Software Testing Life Cycle

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 14


Software Testing

4. Test Environment Setup: Test environment setup is a vital part of the STLC. Basically, the
test environment decides the conditions on which software is tested. This is independent activity
and can be started along with test case development. In this process, the testing team is not
involved. either the developer or the customer creates the testing environment.

5. Test Execution: After the test case development and test environment setup test execution
phase gets started. In this phase testing team starts executing test cases based on prepared test
cases in the earlier step.

The activities that take place during the test execution stage of the Software Testing Life
Cycle (STLC) include:
 Test execution: The test cases and scripts created in the test design stage are run against the
software application to identify any defects or issues.
 Defect logging: Any defects or issues that are found during test execution are logged in a
defect tracking system, along with details such as the severity, priority, and description of the
issue.
 Test data preparation: Test data is prepared and loaded into the system for test execution
 Test environment setup: The necessary hardware, software, and network configurations are
set up for test execution
 Test execution: The test cases and scripts are run, and the results are collected and analyzed.
 Test result analysis: The results of the test execution are analyzed to determine the
software’s performance and identify any defects or issues.
 Defect retesting: Any defects that are identified during test execution are retested to ensure
that they have been fixed correctly.
 Test Reporting: Test results are documented and reported to the relevant stakeholders.
It is important to note that test execution is an iterative process and may need to be repeated
multiple times until all identified defects are fixed and the software is deemed fit for release.

6. Test Closure: Test closure is the final stage of the Software Testing Life Cycle (STLC) where
all testing-related activities are completed and documented. The main objective of the test
closure stage is to ensure that all testing-related activities have been completed and that the
software is ready for release.
At the end of the test closure stage, the testing team should have a clear understanding of the
software’s quality and reliability, and any defects or issues that were identified during testing
should have been resolved. The test closure stage also includes documenting the testing process
and any lessons learned so that they can be used to improve future testing processes
Test closure is the final stage of the Software Testing Life Cycle (STLC) where all testing-
related activities are completed and documented.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 15


Software Testing

The main activities that take place during the test closure stage include:
 Test summary report: A report is created that summarizes the overall testing process,
including the number of test cases executed, the number of defects found, and the overall
pass/fail rate.
 Defect tracking: All defects that were identified during testing are tracked and managed
until they are resolved.
 Test environment clean-up: The test environment is cleaned up, and all test data and test
artifacts are archived.
 Test closure report: A report is created that documents all the testing-related activities that
took place, including the testing objectives, scope, schedule, and resources used.
 Knowledge transfer: Knowledge about the software and testing process is shared with the
rest of the team and any stakeholders who may need to maintain or support the software in
the future.
 Feedback and improvements: Feedback from the testing process is collected and used to
improve future testing processes

1.5 Software Project Phases:

A typical software project goes through several phases, which can vary slightly depending on the
methodology being used (like Agile, Waterfall, or others). However, the most common phases of
a software project include:

1. Initiation/Planning Phase

 Goal: Define the project scope, objectives, stakeholders, and resources.


 Key activities:

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 16


Software Testing

o Gathering requirements from stakeholders.


o Identifying project goals, risks, and timelines.
o Creating project plans, including budgeting and resource allocation.
o Defining the project scope.

2. Feasibility Study/Analysis Phase

 Goal: Assess the feasibility of the project from a technical, financial, and operational
perspective.
 Key activities:
o Analyzing requirements.
o Identifying potential risks and constraints.
o Deciding on technology stacks, tools, and resources.
o Creating feasibility reports (technical, operational, financial).

3. Design Phase

 Goal: Create the architecture and design of the software.


 Key activities:
o High-level design (system architecture, databases, frameworks).
o Detailed design (user interfaces, user experience, interactions).
o Designing APIs, data models, and system workflows.
o Reviewing design specifications with stakeholders.

4. Development/Implementation Phase

 Goal: Write the actual code and develop the software based on the design specifications.
 Key activities:
o Coding the software components.
o Integrating the code into the system.
o Regular unit testing and code reviews.
o Version control management and collaboration.

5. Testing Phase

 Goal: Ensure the software works as intended and is free of bugs.


 Key activities:
o Performing various types of testing: unit testing, integration testing, system
testing, acceptance testing.
o Bug fixing and refactoring.
o Performance testing and optimization.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 17


Software Testing

o Ensuring the system meets all the requirements.

6. Deployment Phase

 Goal: Deploy the software into a live environment.


 Key activities:
o Preparing the production environment.
o Installing and configuring the software.
o Migrating data (if applicable).
o Rolling out the software to users and monitoring for issues.

7. Maintenance Phase

 Goal: Provide ongoing support and maintenance for the software after it’s deployed.
 Key activities:
o Bug fixes and patches.
o Performance improvements.
o Updating the software for new requirements or changing technology.
o User support and handling feedback.

8. Closure Phase

 Goal: Finalize the project and ensure everything is completed.


 Key activities:
o Delivering the final documentation (user manuals, technical documentation).
o Handover to the support team or end users.
o Closing out project contracts, budgets, and accounts.
o Reviewing project performance and lessons learned.

These phases can overlap in modern development practices like Agile, where the process is
iterative and cyclical, but these basic phases form the backbone of most software project

1.6 Quality Assurance (QA) and Quality Control (QC)

Quality Assurance (QA) and Quality Control (QC) are both crucial concepts in software testing
and are often used interchangeably, but they have distinct roles and purposes.

Here's a breakdown of both:


1. Quality Assurance (QA)
Definition:
 QA refers to the process-oriented activities that focus on preventing defects in the
software development lifecycle.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 18


Software Testing

 It involves establishing and improving processes, methodologies, and standards to ensure


that software development meets the required quality levels.

Goal:

 The goal of QA is to ensure that the development and testing processes are designed to
prevent defects from being introduced in the first place.

Key Activities:

 Process design and improvement: Developing a standard set of processes and


methodologies for software development.
 Standards and guidelines: Defining coding standards, testing procedures, and best
practices.
 Training and audits: Ensuring team members are properly trained in best practices and
conducting regular audits to check adherence to standards.
 Continuous improvement: Analyzing past projects to find process improvement
opportunities.
 Risk management: Identifying and mitigating potential risks during the development
process.

QA Examples in Software:

 Reviews and walkthroughs of design, code, and testing procedures.


 Creating and following coding standards.
 Conducting process audits to ensure the development team is adhering to best practices.
 Establishing a robust software development lifecycle (SDLC) methodology.

2. Quality Control (QC)

Definition:

 QC refers to product-oriented activities focused on identifying defects in the final


software product.
 It involves testing, verification, and validation of the software to ensure it meets the
specified requirements and quality standards.

Goal:
 The goal of QC is to identify and correct defects in the software after it has been
developed, ensuring that the final product is defect-free and works as expected.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 19


Software Testing

Key Activities:

 Testing: Running tests (unit tests, integration tests, etc.) to check for defects.
 Bug identification: Finding and documenting bugs, errors, or issues.
 Regression testing: Ensuring that new code changes don’t introduce new defects into the
existing codebase.
 Verification and validation: Verifying that the software matches the requirements and
validating that it meets user needs.

QC Examples in Software:

 Unit Testing: Testing individual components of the software to ensure they work
correctly.
 Integration Testing: Ensuring that different modules or systems work together as
expected.
 System Testing: Testing the entire system to ensure it meets all requirements.
 Acceptance Testing: Ensuring the system meets the end users' requirements before
deployment.

Differences Between QA and QC


Aspect Quality Assurance (QA) Quality Control (QC)
Focus Process-oriented, aiming to prevent Product-oriented, aiming to identify and
defects in the process. fix defects in the product.
Goal Improve processes to prevent defects. Detect and correct defects in the product.
Activities Process audits, standards development, Testing, bug identification, and defect
process improvement. fixing.
Scope Involves all stages of software Typically happens after development
development. during testing phases.
Tools Process management tools, Testing tools (Selenium, JUnit,
methodology guidelines, LoadRunner, etc.).
documentation.
Outcome Reduces the likelihood of defects in the Identifies and fixes defects in the final
software. product.
Timing Continuous throughout the project Happens towards the end of the
lifecycle. development cycle or after code is
written.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 20


Software Testing

Relationship Between QA and QC

 Complementary Roles: QA ensures that the process used to create the software is sound
and robust, reducing the likelihood of defects. QC, on the other hand, focuses on testing
and validating the product to ensure the end product is defect-free.
 QA Prevents, QC Detects: QA works to prevent defects from occurring in the first place
through better processes, while QC finds defects that slipped through the QA process.

Mrs.Sneha D. Patil[Asst.Professor/E&C Dept./KCES’s COEM,Jalgaon] Page 21

You might also like