UNIT_1_-_Basics_of_Software_Testing_and_Testing_Methods
UNIT_1_-_Basics_of_Software_Testing_and_Testing_Methods
Testing Methods
Define a test plan.
2. Identify unintended behavior: Discover scenarios during testing where the software behaves in a way that
deviates from its intended functionality or specifications.
3. Ensure software reliability: Validate the software's reliability through comprehensive testing to enhance its
performance, stability, and functionality across various scenarios and conditions.
4. Assess and Assure Quality: provides stakeholders with confidence by evaluating and communicating the
level of software's quality through rigorous testing and analysis.
5. Risk Management: Reduce product failure and manage uncertainties effectively through proactive risk
mitigation strategies.
2. Error: It is an issue identified internally or during testing. Normally, error occurs when human action
produces undesirable results.
4. Bug: It is an initiation of error or a problem because of which the fault may occur in the system.
5. Fault: It is a condition that causes software to fail to perform its required functions.
6. Failure: It is the inability of the software or component to perform required functions according to
its specification.
2. Communication Skills: A software tester must have verbal as well as written communication skills. He
should be a good listener. He should be able to convince the need for testing the module to developer as
well as customer.
3. Presentation Skills: Presentation skills are important for testers to effectively communicate the status and
findings of their testing. They must deliver the updates to developer, customers, and management
4. Technical Skills: A good tester needs technical skills like database knowledge, programming
understanding, and familiarity with testing and automation tools. They should be eager to learn new testing
technologies and skills.
5. Management and Organization Skills: A software tester needs strong management and organization skills
to handle demanding workloads, maintain high productivity, manage time effectively, and stay organized.
Expected
Test Case Id Description Test Data Test Steps Actual Result Status
Result
1. Open the
website. 2.
Check whether
Navigate to the It should take
email box is Email-ID: It accepts the
TC1 email input field the email ID pass
taking input [email protected] email ID input
3. Enter email- input
properly
id into the email
field.
1. Open the
website. 2.
Check whether
Navigate to the
password It should take
password: password input It accepts the
TC2 column is the password pass
Xyz1234 field. 3. Enter password input
taking input or input
“Xyz1234” into
not
the password
field.
1. Open the
application. If the field is
2. Clear the empty, it
Check whether It displays the
email input should display
TC3 the email field - message “Enter pass
field. the message,
is empty or not your email-id”
3. Attempt to “Enter your
submit the email-id”
form.
1. Open the
application. If the password
Check whether 2. Clear the field is empty, it
It displays the
the password password input should display
TC4 - message “Enter pass
field is empty field. the message,
your password”
or not 3. Attempt to “Enter your
submit the password”
form.
1. Open the
application. It displays a
Username: If the password
2. Enter valid message,
[valid entered is
Check if wrong username. “incorrect
username], wrong, display
TC5 password 3. Enter an password” if pass
Password: the message,
entered incorrect password
[invalid “incorrect
password. entered is
password] password”
4. Click the incorrect
login button.
TC6
TC7
TC8
Test plan.
Exit criteria :- Exit criteria for the software testing are specific conditions or ongoing activities that must be
fulfilled before completing the software testing lifecycle.
Following exit criteria to be considered for completing a testing phase.
Validation:- Validation is the process of evaluating the final product to ensure it meets the business needs and
requirements.
The purpose of validation is to ensure the right product is being built and meets the user needs.
Verification Validation
Ensures work-product meet specified Ensures the final product meets business needs
requirements. and requirements.
We check whether we are developing the right We check whether the developed product is
product or not. right.
It includes checking documents, design, codes It includes testing and validating the actual
and programs. product.
Verification is also known as static testing. validation is also known as dynamic testing.
Verification is also termed as white box testing. Validation can be termed as black box testing.
Verification Phases:
It involves a static analysis technique (review) done without executing code. It is the process of evaluation of
the product development phase to find whether specified requirements are met.
1. Requirement Analysis: Gather and clarify what the customer needs. This phase ensures you understand
the requirements, which will guide the acceptance testing later.
2. System Design: Create an overall system design based on the requirements. This design serves as a
foundation for future testing.
3. Architectural Design: Develop the system's architecture, defining modules and their interactions. This
phase helps in creating integration tests.
4. Module Design: Detail the design for each module. This step allows for unit tests to be developed to check
individual components.
1. Unit Testing: Test individual components to find and fix bugs. This corresponds to the Module Design
phase.
2. Integration Testing: Test the interactions between integrated modules to ensure they work together. This
matches the Architectural Design phase.
3. System Testing: Test the entire system’s functionality and performance. This corresponds to the System
Design phase.
4. User Acceptance Testing (UAT): Verify that the system meets user needs in a real-world-like environment.
This aligns with the Business Requirement Analysis phase.
QA is a process-oriented approach focused on improving and ensuring the quality of the software
development process. It involves implementing systematic processes and practices to prevent defects and
ensure that quality standards are met throughout the development lifecycle.
Objective: To create and maintain a process that promotes quality and prevents defects from occurring in
the first place.
Quality Control(QC):
QC is a product-oriented approach focused on detecting and fixing defects in the software. It involves the
actual testing of the software to identify and correct defects before the product is released.
Objective: To identify and fix defects in the software to ensure the final product meets the required quality
standards.
Process-oriented: Ensuring the processes used Product-oriented: Ensuring the final product is
to develop the product are effective. defect-free.
Objective is to improve and ensure the quality of Objective is to identify and fix defects in the
the development process software.
Quality Assurance does not include the execution Quality Control always include the execution of
of the program. the program.
Quality Assurance is performed before Quality Quality Control is performed after Quality
Control. Assurance activity is done.
Dynamic Testing: Dynamic Testing is a software testing method that involves executing the code of a
software application to identify defects and evaluate its behavior during runtime.
Unlike Static Testing, which examines code and documentation without running the software, Dynamic Testing
focuses on assessing the software's functionality, performance, and interactions in a live environment.
The main objective of Dynamic Testing is to validate the software's performance and correctness by detecting
issues that only appear during execution, ensuring that the application behaves as expected under various
conditions.
It includes :- Unit testing, integration testing, System Testing.(these are also the examples ok)
Technique includes Technical reviews, Walk Techniques includes Unit testing, integration
Through, inspections, Static code review. testing, System testing, Functional testing
Static testing is used to prevent defects Dynamic testing is used to find and fix defects
Provides early feedback on code quality and Provides feedback based on actual execution and
design user interactions
Ex:- code reviews, designs reviews. Running test cases, functional testing.
Walkthrough: An informal review where the author presents their work to peers or stakeholders for feedback
and suggestions, focusing on understanding and improvement rather than defect detection
Involves reviewing and testing the internal code and logic. Test cases are designed based on the code
itself.
Achieve high test coverage by verifying different code paths, branches, and conditions to ensure all parts
of the code are tested.
Includes unit testing and code coverage analysis, focusing on the internal workings of the application.
Helps identify logical errors, code defects, and security vulnerabilities. Enhances the overall quality and
maintainability of the code.
Can be performed early in the development cycle, allowing for early identification and correction of issues.
Advantages:
1. Thorough Coverage: Tests all internal code paths, branches, and conditions.
2. Early Error Detection: Identifies issues early in development, reducing later costs.
Disadvantages:
1. Requires Code Knowledge: Needs deep understanding of the codebase and programming.
4. Does Not Test User Experience: Focuses on code functionality, not user interactions.
Tests are designed based on input data, expected output, and functional requirements, using techniques
like Requirement Based Testing, equivalence partitioning, and boundary value analysis.
Testers do not need to understand the internal code or logic, allowing for broader participation in the
testing process.
May miss internal code errors or logical flaws since it does not involve examining the internal workings of
the application.
Advantages:
1. Testers don’t need to know the code or have programming skills.
Disadvantages:
1. Sometimes, the reason for the test failure cannot be detected.
2. Working with a large sample space of inputs can be exhaustive and consumes a lot of time.
4. Limited Code Coverage: May miss internal code errors and logic flaws.
The developers can perform white box testing. The test engineer perform the black box testing.
In this the developer should know about the In this there is no need to know about the
internal design of the code. internal design of the code.
Typically applied at lower levels (e.g., unit and Typically applied at higher levels (e.g., system
integration testing). and acceptance testing).
White Box Testing is suitable for algorithm Black Box Testing is not suitable or preferred for
testing. algorithm testing.
Typically applied at lower levels (e.g., unit and Typically applied at higher levels (e.g., system
integration testing). and acceptance testing).
It is comparatively more exhaustive than black It is less exhaustive as compared to white box
box testing. testing.
White Box Testing is most time consuming. Black Box Testing is least time consuming.
1. Minimum
5. Maximum
If a condition in one partition is true, all conditions in that partition should be true, and similarly for false
conditions.
Partitions are derived from the software’s requirements and specifications, grouping inputs that should yield
similar outcomes.
Advantages:
Reduces testing time by minimizing the number of test cases from infinite to finite.
1. Static Testing
Static Testing: Static Testing is a software testing method used to identify defects in a software application
without executing the code.
Unlike Dynamic Testing, which involves running the software to detect issues, Static Testing—also known as
Verification Testing or Non-execution Testing—focuses on examining code, documentation, and other project
artifacts at an early stage of development.
The main objective of Static Testing is to improve the quality of the software product by finding and addressing
errors early in the development cycle.
It includes :- Technical reviews, Walk Through, Inspection process, Static code review.(These are also the
examples ok)