Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
17 views6 pages

Software Testing Notes

Software Evolution is the ongoing process of developing, maintaining, and enhancing software to meet changing user needs and improve performance. The Software Development Life Cycle (SDLC) outlines the systematic phases of software creation, from requirement gathering to maintenance, ensuring quality and timely delivery. Testing is a crucial part of software development that evaluates functionality, quality, and security, with a structured process to identify and fix defects.

Uploaded by

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

Software Testing Notes

Software Evolution is the ongoing process of developing, maintaining, and enhancing software to meet changing user needs and improve performance. The Software Development Life Cycle (SDLC) outlines the systematic phases of software creation, from requirement gathering to maintenance, ensuring quality and timely delivery. Testing is a crucial part of software development that evaluates functionality, quality, and security, with a structured process to identify and fix defects.

Uploaded by

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

Phase -1

Overview of Software Evolution

Question: - What is Software Evolution?

Answer: - Software Evolution refers to the process of developing software


initially, then continuously updating, adapting, and enhancing it to meet
changing user requirements, fix bugs, and improve performance or security.

It ensures that software remains relevant, efficient, and error-free over time.

Key Aspects of Software Evolution:

1. Initial Development – The software is built to meet the original set of


requirements.
2. Maintenance – Fixing bugs and updating the system after release.
3. Enhancements – Adding new features based on user feedback or market
needs.
4. Adaptation – Modifying software to work in a new or changed
environment (e.g., new OS or hardware).
5. Retirement – Eventually phasing out the software when it becomes
obsolete.

Types of Software Maintenance (Part of Evolution):-

Type Purpose
Corrective Fixing bugs or defects
Adaptive Modifying software for new environment/platform
Perfective Enhancing performance or adding features
Preventive Improving future maintainability

Lehman's Laws of Software Evolution (Highlights):

1. Continuing Change – Software must evolve or it becomes less useful.


2. Increasing Complexity – As software evolves, its complexity increases
unless managed.
3. Self-Regulation – Software evolution is a self-regulating process.
4. Organizational Stability – Evolution is constrained by organizational
resources.
Importance of Software Evolution:

 Keeps software aligned with business goals


 Adapts to changing technology
 Enhances security and performance
 Reduces total cost of ownership over time

Challenges in Software Evolution:

 Managing legacy code


 Ensuring backward compatibility
 Preventing regression bugs
 Keeping up with rapid technological change

Here’s a clear and concise explanation of the Software Development Life Cycle (SDLC) – a
fundamental concept in both software engineering and manual testing:

Software Development Life Cycle (SDLC)

SDLC is a systematic process used by software engineers and developers to


design, develop, test, and maintain software.
It ensures the software is high-quality, meets customer expectations, and is
completed on time and within budget.

Phases of SDLC

1. Requirement Gathering and Analysis


o Understand what the customer needs.
o Collect and document functional and non-functional requirements.
o Stakeholders: Business analysts, customers, and project managers.
2. System Design
o Create high-level and low-level design documents.
o Decide on architecture, technologies, database design, etc.
o Stakeholders: Architects, developers, and designers.
3. Implementation / Coding
o Developers write code based on the design.
o This is the actual building of the software.
o Output: Working software modules.
4. Testing
o QA team tests the software for bugs and verifies it meets
requirements.
oTypes: Unit Testing, Integration Testing, System Testing,
Acceptance Testing.
o Output: Test reports and defect logs.
5. Deployment
o Release the software to the customer or production environment.
o Can be done in stages (pilot, beta release, full deployment).
6. Maintenance
o Fix issues discovered after deployment.
o Handle upgrades, patches, and performance improvements.

SDLC Models (Ways to implement SDLC)

Model Description Best For


Waterfal Linear, step-by-step Simple, well-defined
l projects
V-Model Testing is planned in parallel with Projects with clear
development requirements
Agile Iterative, flexible, customer Dynamic, fast-changing
feedback-driven projects
Iterative Develop in cycles, improving with Medium to large projects
each iteration
Spiral Combines iterative with risk analysis High-risk, complex
projects
Big Bang Development starts with little Small projects or
planning prototypes

Why SDLC is Important:

 Improves software quality


 Controls project risks and costs
 Helps with clear documentation
 Encourages structured planning and execution

Question: - What is Testing?

Answer: - Testing is the process of evaluating a system or its components to


determine whether it meets the specified requirements. In software
development, testing ensures that the software product is reliable, performs as
expected, and is free of bugs.

Testing can be manual (performed by a human) or automated (performed using


tools and scripts).
Need for Testing

1. To Ensure Software Quality


Testing helps verify that the product behaves as intended and meets
quality standards.
2. To Detect and Fix Bugs Early
Identifying defects early in development is cheaper and easier to fix than
later in production.
3. To Improve Security
Testing uncovers vulnerabilities that could be exploited, ensuring data
and system protection.
4. To Verify Functionality
Ensures that all features work according to the specified requirements.
5. To Enhance User Experience
Testing helps identify usability issues and ensures that the application is
user-friendly.
6. To Ensure Compatibility
It verifies that the software works across different devices, browsers, and
operating systems.
7. To Comply with Requirements and Standards
Helps meet industry-specific regulations and standards, especially in
fields like healthcare or finance.

Software Testing Process


The Software Testing Process (also known as the Software Testing Life Cycle – STLC)
defines a sequence of specific activities conducted during the testing of a software product.

Phases of the Testing Process (STLC)

1. Requirement Analysis

 Understand and analyse the testing requirements.


 Identify what is to be tested (functional and non-functional requirements).
 Check for testability of requirements.
 Collaborate with stakeholders (BA, Dev, QA lead).

2. Test Planning

 Define the strategy and scope of testing.


 Prepare test plan documents.
 Identify tools, resources, timelines, and risk mitigation plans.
 Assign roles and responsibilities.
3. Test Case Design / Development

 Design test cases and test scenarios.


 Prepare test data.
 Ensure traceability to requirements (RTM).
 Review and baseline test cases.

4. Test Environment Setup

 Prepare the required hardware and software environment.


 Set up test servers, networks, databases, tools, etc.
 Confirm that the environment is stable and ready for testing.

5. Test Execution

 Execute the test cases manually or using tools (if applicable).


 Compare actual results with expected results.
 Log defects/bugs for failed test cases.

6. Defect Reporting and Tracking

 Record and track bugs in a defect tracking tool (e.g., JIRA, Bugzilla).
 Coordinate with developers for bug fixing.
 Retest and close defects once fixed.

7. Test Closure

 Finalize and archive test artefacts.


 Analyse test results, defect trends, and coverage.
 Conduct test closure meeting and prepare summary reports.

Key Concepts in Testing Process


Concept Description
Test Scenario A high-level description of what to test
Test Case Step-by-step actions to verify functionality
Test Data Input values used during test execution
Test Hardware/software setup for testing
Environment
Defect/Bug Any flaw in software that causes incorrect behaviour

Benefits of Following a Structured Testing Process:


 Ensures thorough coverage of all requirements
 Reduces defects and rework
 Improves test efficiency and effectiveness
 Enhances traceability and accountability.

You might also like