0% found this document useful (0 votes)
9 views

Software_Testing_Book_Revised

book software testing

Uploaded by

sacih43222
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views

Software_Testing_Book_Revised

book software testing

Uploaded by

sacih43222
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Comprehensive Guide to Software

Testing
Preface
Software testing is an essential aspect of software development, ensuring that applications
meet client requirements and are free of defects. This book provides a comprehensive
understanding of various software testing concepts, types, and processes, along with
insights into Agile methodology, SDLC, STLC, and defect life cycles. Whether you are a
beginner or an experienced professional, this guide will serve as a valuable resource.

What is Software Testing?

Software Testing is the process of verifying whether the developed application meets the
client's required functionalities.

Types of Software Testing:

Manual Testing:

Explanation: This type of testing involves checking the application manually, without any
automated tools. Testers play the role of end-users and verify whether the application
works as expected.

Process: Testers execute test cases and scenarios manually, checking for bugs or issues by
interacting with the application. They document the results and any defects they find.

When to Use: It's useful in the early stages of development, for exploratory testing, and in
scenarios where the cost or effort of automation is not justified.

Automation Testing:

Explanation: In this type of testing, testers use automated tools and scripts to verify the
application. It involves writing scripts that automatically execute test cases, compare the
actual results with expected outcomes, and report any discrepancies.

Process: Automation involves creating and running test scripts using specialized software
tools like Selenium, QTP, or LoadRunner. These tools simulate user actions and check if the
application behaves correctly.

When to Use: It's ideal for repetitive tasks, regression testing, performance testing, and
large-scale applications where manual testing would be time-consuming and error-prone.

What is SDLC (Software Development Life Cycle)?


The Software Development Life Cycle (SDLC) is a framework that outlines the stages
involved in the development and maintenance of software.

Roles:

Business Analyst (BA): Typically found in service-based companies.

Product Owner (PO): Typically found in product-based companies.

Stages of SDLC:

Requirement Gathering: Collecting the software requirements from stakeholders.

Designing Phase: Creating the architecture and design of the software.

Implementation/Development Phase: Writing the actual code and developing the


application.

Testing Phase: Testing the software to ensure it meets the required standards and
functionalities.

Deployment/Delivered Phase: Deploying the software to a production environment.

Maintenance Phase: Ongoing maintenance and updates to the software post-deployment.

What is STLC (Software Testing Life Cycle)?

Software Testing Life Cycle (STLC) is a sequence of specific activities conducted during the
testing process to ensure software quality.

Verification Scenarios:

A) Verify the application with valid credentials.

B) Verify the application with a valid user and an invalid password.

C) Verify the application with an invalid user and an invalid password.

D) Verify the application by clicking on the submit button when both user and password
fields are blank.

Phases of STLC:

Requirement Gathering Phase: Collecting the testing requirements from stakeholders.

Test Case Creation Phase: Writing detailed and comprehensive test cases based on
requirements.

Test Environment Setup: Preparing the testing environment where the application will be
tested.
Test Case Execution: Executing the test cases to find defects.

Defect Logging Phase: Logging defects found during testing for developers to address.

Test Cycle Closure: Concluding the testing cycle after verifying all defects have been
resolved.

Bug/Defect Life Cycle

The Bug/Defect Life Cycle refers to the stages a defect goes through from its identification
to its closure.

Bug Report: Flipkart Project

Project Name: Flipkart

Summary: "Add to Cart" Functionality Not Working

Interface: Add to Cart

Version: 1.2

Environment: Testing

Labels: xyz name

Description:

Steps to Reproduce:

Open the app.

Select any product.

Click on the "Add to Cart" button.

Problem Statement: Clicking the "Add to Cart" button results in an error.

Assignee Name: Developer name

Defect Category:

Stages of Bug/Defect Life Cycle:

New: When a defect is identified for the first time.

Assign to Developer: The defect is assigned to a developer for fixing.

Open: The developer begins working on the defect.

Deferred: The defect is postponed for fixing in the next release due to low priority.
Duplicate: The defect is marked as duplicate if it has already been raised in conjunction with
another issue.

Rejected: The defect is rejected by the developer if it is not valid.

Fixed: The developer has fixed the defect.

Retesting: The tester retests the application to ensure the defect is fixed.

Verified: The defect is verified to be fixed and working correctly.

Closed: The defect is closed after successful verification.

Functional & Non-Functional Testing

Functional Testing: This involves verifying the client-required functionality of the


application.

Unit Testing: Performed by developers to verify their developed functionality.

Smoke Testing: Also known as BVT (Build Verification Test), Surface Level Testing, or Initial
Level Testing. It involves verifying the "happy flow" of the application to ensure it is testable
for further levels of testing.

Sanity Testing: Conducted when there is limited time to test the entire application. It
focuses on testing the critical functionality only.

Re-Testing: This involves verifying any functionality again after an issue has been fixed.

Regression Testing: When new functionality is added or bugs are fixed, regression testing
ensures the new functionality and related functionalities work as expected, without
negatively impacting other parts of the application.

Integration Testing: Performed when two or more modules are integrated, and their
integration is verified.

Component Testing: Involves verifying each and every functionality in detail.

GUI Testing (Graphical User Interface): Focuses on verifying the application's look and feel
to ensure it meets the required specifications.

Non-Functional Testing Types:

Performance Testing: Verifying the application's performance during execution, often using
tools like JMeter.

Load Testing: Verifying the application's behavior under a particular or average load,
typically using tools like JMeter or LoadRunner.
Stress Testing: Checking the application's performance under extreme conditions, beyond
normal operational capacity, to determine how much load the system can handle.

Security/Penetration Testing: Identifying vulnerabilities and potential points of attack in


the application to ensure it is secure against hacking or data theft.

Usability Testing: Assessing how easy and user-friendly the application is to use.

Scalability Testing: Testing the application's ability to handle increased and decreased
traffic to see how it behaves under varying loads.

Accessibility Testing: Ensuring the application can be accessed and used by as many people
as possible, including those with disabilities.

Volume Testing: Testing the application to see how it performs when many users run it
simultaneously on different machines with the same credentials.

What is Agile?

Agile is a methodology used to ensure continuous iteration between testing and


development, allowing for flexible and adaptive progress in software development.

Frameworks in Agile

Scrum Framework: Service-based framework designed for iterative and incremental work.

Kanban Framework: Suitable for both product-based and service-based work, focusing on
workflow visualization and process improvement.

Extreme Programming (XP): Primarily focused on development, emphasizing high-quality


code and frequent releases.

What is a Sprint?

A Sprint is a set period during which specific user stories must be completed. It is a core
component of the Scrum framework.

Example:

Sprint 1.0: User Story 1, User Story 2 (Spill Over) Spill over refers to user stories or tasks
from a sprint that could not be completed within the sprint timeline and are carried
forward to the next sprint.

Sprint 1.1: User Story 3, User Story 4, User Story 5

Sprint 1.2: User Story 6, User Story 7

Sprint 1.3: User Story 8, User Story 9, User Story 10

Scrum/Agile Ceremonies
Sprint Planning:

Happens at the start of the sprint.

Discusses which user stories will be covered and identifies necessary resources.

Daily Scrum (Daily Stand-Up Meeting - DSM):

Happens daily.

Team members discuss:

What was done yesterday.

What is planned for today.

Any blockers or issues that need resolution.

Sprint Review Meeting:

Occurs mid-sprint.

Reviews the progress of the sprint to determine if the sprint can be completed within the
set timeframe.

Identifies steps to overcome any potential delays.

Sprint Retrospective:

Happens at the end of the sprint.

Team reflects on:

What went well.

What went wrong.

How to improve in the next sprint.

Who is a Scrum Master?

The Scrum Master leads and facilitates all Scrum ceremonies and ensures the team follows
Agile practices.

Roles & Responsibilities:

Ensuring every team member attends Scrum meetings.

Providing resolutions for team members facing issues.

Ensuring adherence to the Agile process.


Auditing reports and maintaining accountability.

What is Product Backlog and Sprint Backlog?

Product Backlog: A list of all remaining work required to complete the product.

Sprint Backlog: A subset of the product backlog, representing work to be completed within a
specific sprint.

What are Burn Down and Burn Up Charts?

Burn Down Chart: Represents the remaining work to be completed in a sprint or project.

Burn Up Chart: Represents the work that has been completed.

What is Velocity?

Velocity is the measure of the amount of work completed by the team during a sprint. It
helps in forecasting future sprint performance.

You might also like