0% found this document useful (0 votes)
18 views10 pages

Software Testing

The document discusses different types of software testing including manual testing, automation testing, white box testing, black box testing, gray box testing, functional testing, non-functional testing, unit testing, integration testing, system testing, performance testing, usability testing, compatibility testing. It also explains the software testing life cycle which includes requirement analysis, test planning, test case development, test environment setup, test execution, defect tracking and management, and test reporting.

Uploaded by

sumusumaya164
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
18 views10 pages

Software Testing

The document discusses different types of software testing including manual testing, automation testing, white box testing, black box testing, gray box testing, functional testing, non-functional testing, unit testing, integration testing, system testing, performance testing, usability testing, compatibility testing. It also explains the software testing life cycle which includes requirement analysis, test planning, test case development, test environment setup, test execution, defect tracking and management, and test reporting.

Uploaded by

sumusumaya164
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 10

Unit - I Software Testing GTET

Software Testing
• Software testing is the process of finding errors in the developed product.
• It also checks whether the real outcomes can match expected results, as
well as aids in the identification of defects, missing requirements, or gaps.
Software testing can be divided into two steps:
1. Verification: It refers to the set of tasks that ensure that the software
correctly implements a specific function. It means “Are we building
the product right?”.
2. Validation: It refers to a different set of tasks that ensure that the
software that has been built is traceable to customer requirements. It
means “Are we building the right product?”

Importance of Software Testing:


• Defects can be identified early: Software testing is important
because if there are any bugs they can be identified early and can be
fixed before the delivery of the software.
• Improves quality of software: Software Testing uncovers the
defects in the software, and fixing them improves the quality of the
software.
• Increased customer satisfaction: Software testing ensures
reliability, security, and high performance which results in saving time,
costs, and customer satisfaction.
• Helps with scalability: Software testing type non-functional testing
helps to identify the scalability issues and the point where an
application might stop working.
• Saves time and money: After the application is launched it will be
very difficult to trace and resolve the issues, as performing this activity
will incur more costs and time. Thus, it is better to conduct software
testing at regular intervals during software development.

BCA 6th sem Basu.


Unit - I Software Testing GTET

Different Types of Software Testing

Manual testing
• Manual testing is a type of software testing where testers manually execute
test cases without using any automated tools.
• In manual testing, testers simulate end-user scenarios to ensure that the
software behaves as expected and meets the specified requirements.
Automation testing
• Automation testing is the process of using software tools and scripts to
automate the execution of test cases and compare the actual outcomes with
expected outcomes.
• Automation testing involves the use of automation frameworks, scripts,
and tools to perform testing tasks more efficiently and accurately.
software tools:
• Selenium WebDriver: For automating web browser interactions.
• Appium: For automating mobile application testing (iOS and Android).
• Test Complete: For functional UI testing of web, desktop, and mobile apps.

BCA 6th sem Basu.


Unit - I Software Testing GTET

• Katalon Studio: A comprehensive tool for web, API, mobile, and desktop
automation.
• Robot Framework: An open-source automation framework for various
types of testing.
• Cypress: Specifically designed for modern web application testing.
• Postman: For automating API testing and web services.
• Jenkins: For automating CI/CD pipelines and integrating testing into
development workflows.
Differentiate between White box and Black box testing

Gray box testing

• Partial Knowledge: Testers have partial understanding


Testers possess some knowledge about the internal workings or code
structure of the software.
• Blends Black and White Box Testing: Combines elements of both
Gray box testing blends the techniques of black box testing (based
on external behavior) and white box testing (based on internal code
structure).
• External and Internal Perspective: Tests from both angles
Testers design tests considering both external user interactions and
internal code logic.
• Integration Testing: Focuses on system interactions
Often used for testing how different components or modules of the
software interact and work together.

BCA 6th sem Basu.


Unit - I Software Testing GTET

• Limited Code Access: Access to code is restricted


Testers may not have complete access to the source code but use
available information to guide testing efforts.
Functional testing:
Functional testing is a type of software testing that verifies that each function of
the software application operates in conformance with the requirement
specification.
Non-functional:
• Non-functional testing focuses on aspects of the software that are not
related to its specific behaviours or functions.
• Instead, it evaluates characteristics such as performance, reliability,
usability, scalability, and security.
Unit Testing:
• Testing individual parts of the software, like ingredients in a recipe.
• Done by developers.
• Focuses on small, isolated sections of code.
• Checks if each part works correctly on its own.
• Helps catch bugs early in the development process.
Integration Testing:
• Testing how different parts of the software work together, like mixing
ingredients in a recipe.
• Done after unit testing.
• Checks if integrated modules or components interact correctly.
• Ensures that the combined parts function properly as a whole.
• Verifies that data flows smoothly between different sections of the
software.
System Testing:
• Testing the entire software application as a whole, like checking the
finished cake.
• Done after integration testing.
• Tests the software in its entirety, including user interface, functionality,
performance, and more.
• Ensures that the software meets all specified requirements.

BCA 6th sem Basu.


Unit - I Software Testing GTET

• Verifies that the software works correctly in its intended environment


before release.
Performance Testing:
• Performance testing is like checking how fast and reliable a car is on the
road.
• It measures how well the software performs under different conditions,
such as heavy user loads or low network speeds.
• Helps ensure that the software responds quickly and efficiently to user
actions.
• Identifies bottlenecks and areas for improvement in the software's speed
and responsiveness.
• Ensures that the software can handle its intended workload without
crashing or slowing down excessively.
Usability Testing:
• Usability testing is like checking how easy it is to drive a car and use its
features.
• It evaluates how user-friendly the software is by observing real users
interact with it.
• Helps identify any usability issues, such as confusing interfaces or difficult
workflows.
• Focuses on improving the overall user experience and satisfaction.
• Ensures that the software is intuitive and easy to use, even for users with
minimal technical knowledge.
Compatibility Testing:
• Compatibility testing is like checking if a car can run on different types of
fuel and terrain.
• It ensures that the software works correctly across different devices,
browsers, operating systems, and environments.
• Helps identify any compatibility issues, such as layout problems or
functionality discrepancies.
• Ensures that the software functions consistently across a variety of
platforms.
• Guarantees that users can access and use the software regardless of their
device or setup.

BCA 6th sem Basu.


Unit - I Software Testing GTET

Software Testing Life Cycle

Requirement Analysis:
• In this phase, testers analyse the requirements provided by the client or
stakeholders.
• They understand what the software is supposed to do and how it's supposed
to behave.
Test Planning:
• Test planning involves creating a detailed plan outlining the testing
approach, scope, resources, timelines, and deliverables.
• Testers define what needs to be tested, how it will be tested, and who will
do the testing.
Test Case Development:
• Test cases are designed based on the requirements and specifications.
• Testers create detailed steps to verify that the software functions correctly
under various conditions.
Test Environment Setup:
• Testers set up the testing environment, which includes hardware, software,
tools, and other resources needed to execute the tests effectively.

BCA 6th sem Basu.


Unit - I Software Testing GTET

Test Execution:
• In this phase, testers execute the test cases created earlier.
• They run the software with different inputs and configurations to verify its
behaviour and functionality.
• Any defects or issues found during testing are reported.
Defect Tracking and Management:
• Document defects with severity, priority, and steps to reproduce.
• Communicate issues to the development team for resolution.
Test Reporting:
• Summarize testing activities in reports.
• Include test coverage, execution results, and defect metrics.
• Provide stakeholders with insights into software quality.
Test Closure:
• Once testing is complete and all identified defects are fixed.
• The testing team conducts a final assessment to ensure that all requirements
have been met and the software is ready for release.
• Test closure involves documenting lessons learned and archiving testing
artifacts.
Fundamental approaches to apply test cases

Requirement-Based Testing:
• Create test cases based on what the software is supposed to do according
to its requirements.
• Make sure the software does what it's supposed to do as per these
requirements.
Equivalence Partitioning:
• Group different kinds of input into sets.
• Test just one input from each set to cover various possibilities without
testing everything.
Boundary Value Analysis:
• Test the edges and nearby values of input ranges.
• Problems are more likely to happen at these edges, so test them carefully.

BCA 6th sem Basu.


Unit - I Software Testing GTET

Error Guessing:
• Use your experience to guess where things might go wrong.
• Test those areas of the software to see if your guesses were right.
Exploratory Testing:
• Explore the software while testing it.
• Try different things to see what happens and if anything breaks, without a
strict plan.
Model-Based Testing:
• Use diagrams or models to plan your tests.
• These help you think about all the different ways the software might work.
Risk-Based Testing:
• Focus on testing the parts of the software that could cause the most
problems if they don't work right.
• Prioritize testing based on potential risks to the project or system.
Combinatorial Testing:
• Test different combinations of things together.
• Check if they work well together or if they cause problems when combined.
Regression Testing:
• Make sure that new changes to the software don't accidentally break things
that used to work.
• Re-run tests to ensure previous functionalities are still intact after updates.
Ad Hoc Testing:
• Test the software randomly, without a plan.
• See if you can find any problems by just playing around with it.

BCA 6th sem Basu.


Unit - I Software Testing GTET

Boundary value testing


• Boundary value testing is a method used in software testing where inputs
at the edge or boundary of acceptable ranges are tested to ensure the system
behaves correctly.
• It involves testing with values at the lower and upper boundaries as well as
just beyond those boundaries to uncover potential issues.
Eg:

Generalizing boundary value analysis


Is refers to extending the principles of boundary value testing beyond individual
test cases to broader testing strategies and methodologies.
• Pattern Recognition:
Identifying common patterns or categories of boundary conditions across
different input parameters or variables.

• Systematic Approach:
Developing systematic approaches or guidelines for conducting boundary
value analysis across various domains and applications.

• Automation: Implementing automated tools or scripts to generate


boundary value test cases efficiently, especially for complex systems with
multiple input parameters.

• Integration with Other Techniques:


Integrating boundary value analysis with other testing techniques such as
equivalence partitioning, decision tables, and state transition testing to
create comprehensive test strategies.

BCA 6th sem Basu.


Unit - I Software Testing GTET

• Risk-Based Testing:
Prioritizing boundary value testing based on the perceived risk associated
with different boundary conditions, focusing efforts on critical areas.

• Continuous Improvement: Continuously refining boundary value


analysis techniques based on feedback from testing experiences and
evolving understanding of system requirements and behaviours
.
• Documentation and Standardization: Documenting best practices,
guidelines, and standards for boundary value analysis to facilitate
consistent and effective testing across teams and projects.

• Cross-Domain Application: Applying boundary value analysis principles


not only in software testing but also in other domains such as hardware
testing, quality assurance processes, and regulatory compliance.
Limitations of boundary value analysis
• Not Comprehensive: It doesn't find all types of errors; some issues may
remain undetected.
• Limited Scope: It mainly focuses on specific input boundaries and may
miss testing other parts of the software.
• Complex Systems: In complex systems, interactions between different
inputs can be hard to predict, making it challenging to identify all relevant
boundaries.
• Dependent on Specifications: It relies heavily on accurate specifications;
if these are unclear or incomplete, testing may not be effective.
• Time-Consuming: Testing large systems with boundary value analysis can
take a lot of time due to the generation and execution of numerous test
cases.
• Potential for Missing Cases: It might overlook corner cases where
multiple boundaries interact, leading to possible errors being missed.
• Focus on Inputs, not Logic: It concentrates on input values rather than
the functional logic of the software, potentially leaving some defects
undetected.

BCA 6th sem Basu.

You might also like