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

UNIT_1_-_Basics_of_Software_Testing_and_Testing_Methods

Unit 1 software testing details notes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

UNIT_1_-_Basics_of_Software_Testing_and_Testing_Methods

Unit 1 software testing details notes
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

UNIT 1 - Basics of Software Testing and

Testing Methods
Define a test plan.

Software testing definition


Software testing is a systematic process of executing a software application or system with the intent of
identifying defects, uncovering errors, and confirming that it performs its intended functions correctly.

Objectives of software testing(4m)


1. Prevent defects from reaching customers: Identify and resolve defects early in the testing process to
enhance product quality and customer satisfaction.

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.

Failure, Error, Fault, Defect, Bug Terminology


1. Mistake: It is an issue or a problem identified during peer reviewing. It is of low cost and can be fixed
quickly.

2. Error: It is an issue identified internally or during testing. Normally, error occurs when human action
produces undesirable results.

3. Defect: It is an issue identified by customers.

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.

Skills of Software Tester


1. Analytical Skills: Analytical skills are those skills that helps to break up a complex software system into
smaller units to gain better understanding of the system. This kind of skills also helps in creating
appropriate test cases.

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

UNIT 1 - Basics of Software Testing and Testing Methods 1


advocating for improvements in the software.

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.

Test Case Table


TEST CASE ABOUT LOGIN FORM

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

UNIT 1 - Basics of Software Testing and Testing Methods 2


Expected
Test Case Id Description Test Data Test Steps Actual Result Status
Result

TC8

What is Test Case?


The test case is defined as a group of conditions under which a tester determines whether a software
application is working as per the customer's requirements or not.

State the entry exit criteria’s for the software testing.


Entry Criteria :- Entry Criteria for software testing are specific conditions or ongoing activities that must be
met(present) before a testing process can begin. In STLC(software testing lifecycle), each testing phase has its
own entry criteria. Entry Criteria also specifies the time needed to prepare and meet the entry criteria before
testing can begin.
Following are the inputs necessary for entry criteria.

The requirement documents.

Complete understanding of the application flow.

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.

Ensuring all critical tasks are passed.

Achieving complete functional coverage.

Identifying and fixing all the high-priority defects.

The output achieved through the exit criteria are:-

test summary:- write a 1 line explanation

report:-write a 1 line explanation

test logs:-write a 1 line explanation

Define Verification and Validation with Respect to Software Testing.(2m)


Verification :- Verification is the process of evaluating a work product of a development phase to ensure it
meets the specified requirements.
The purpose of verification is to ensure product is being built correctly.

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.

Compare Verification and Validation.(2m)

Verification Validation

Ensures work-product meet specified Ensures the final product meets business needs
requirements. and requirements.

Verification is process-oriented. Validation is product-oriented.

UNIT 1 - Basics of Software Testing and Testing Methods 3


Verification Validation

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.

After verification testing, validation testing takes


Verification is done before the validation testing.
place.

Verification is for prevention of errors. Validation is for detection of errors.

Verification is about process, Standard and


Validation is about the product.
guideline.

Describe V- model with labelled diagram.(6m)


The V - model means the verification and validation model.
This model is V shaped hence the name. It follows a sequential design process similar to the waterfall model.
Each phase of the SDLC must be completed before next phase begins.
Testing is planned in parallel with each corresponding development stage.
So there is verification on one side of V and Validation on other side of V.

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.

There are several Verification phases in the V-Model:

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.

UNIT 1 - Basics of Software Testing and Testing Methods 4


5. Coding: Write and optimize the code based on the designs. Code reviews ensure quality before finalizing
the build.

Validation Phases (Testing):


It involves dynamic analysis techniques (functional, and non-functional), and testing done by executing code.
Validation is the process of evaluating the software after the completion of the development phase to
determine whether the software meets the customer’s expectations and requirements.

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.

Quality Assurance and Quality Control


Quality Assurance(QA):

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.

Difference Between Quality Assurance and Quality Control.(4m)(Vimp)

Quality Assurance (QA) Quality Control(QC)

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 is a proactive process. Quality Control is product oriented.

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.

Quality Assurance is a preventive technique. Quality Control is a corrective technique.

Quality Assurance is a less time-consuming


Quality Control is a more time-consuming activity.
activity

Example :- Verification. Example:- Validation

UNIT 1 - Basics of Software Testing and Testing Methods 5


Methods of Testing : Static and Dynamic Testing(define 2m)or(4m)
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)

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)

Differentiate between static and dynamic testing tools.(4M)

STATIC TESTING DYNAMIC TESTING

No code execution involved Involves running the software to find defects

Evaluates the software’s functionality during


Examines code, documentation, and design
runtime

Technique includes Technical reviews, Walk Techniques includes Unit testing, integration
Through, inspections, Static code review. testing, System testing, Functional testing

Performed later in the development cycle and


Typically done early in the development cycle
during execution

Static testing is a verification process Dynamic testing is a validation process

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

Static testing is less costly. Dynamic testing is highly costly.

Ex:- code reviews, designs reviews. Running test cases, functional testing.

Inspection and Walkthrough


(these are static testing techniques and static testing comes under white box testing)
Inspection: A formal review process to find defect in software documents(like requirements, design or code). It
involves structured roles and steps to ensure issues are identified and resolved.

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

Types of Testing :- White box testing and Black box testing

UNIT 1 - Basics of Software Testing and Testing Methods 6


White Box Testing and Black Box Testing

White Box Testing:


White Box Testing is a software testing method that examines the internal structure, code, and logic of an
application. It involves reviewing and testing the internal workings of the software to ensure its correctness and
identify defects.

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.

3. Improves Quality: Enhances code quality and maintainability.

4. Security Detection: Identifies security vulnerabilities in the code.

Disadvantages:
1. Requires Code Knowledge: Needs deep understanding of the codebase and programming.

2. Time-Consuming: Can be slow to design and run tests.

3. Complexity: Difficult to create tests for complex code.

4. Does Not Test User Experience: Focuses on code functionality, not user interactions.

Describe Code Complexity testing

Black Box Testing:


Black Box Testing is a software testing method where testers evaluate the functionality of an application
without knowing its internal code, logic, or structure.

Tests are designed based on input data, expected output, and functional requirements, using techniques
like Requirement Based Testing, equivalence partitioning, and boundary value analysis.

UNIT 1 - Basics of Software Testing and Testing Methods 7


Simulates how end-users interact with the application, making it useful for validating user experience and
overall functionality.

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.

2. Works well for testing large systems efficiently.

3. Tests are done from the user’s or client’s perspective.

4. Helps identify any unclear or conflicting parts in the functional specifications.

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.

3. Sometimes, the reason for the test failure cannot be detected.

4. Limited Code Coverage: May miss internal code errors and logic flaws.

Difference between White Box Testing and Black Box Testing(4m)

WHITE BOX TESTING BLACK BOX TESTING

The developers can perform white box testing. The test engineer perform the black box testing.

To perform WBT, we should have an To perform BBT, there is no need to have an


understanding of the programming language. understanding of programming language

Focuses on internal logic, code structure, and


Focuses on external behavior and functionality.
design.

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.

Testing techniques: Equivalence partitioning,


Testing techniques: Code coverage analysis,
boundary value analysis, and decision table
path testing, and branch testing.
testing.

Typically applied at lower levels (e.g., unit and Typically applied at higher levels (e.g., system
integration testing). and acceptance testing).

Black box testing uses methods like requirement


White box testing uses methods like Code
bases testing, boundary value analysis,
coverage analysis , code complexity
and equivalence partitioning to create test
testing and statement coverage testing .
cases.

White Box Testing is suitable for algorithm Black Box Testing is not suitable or preferred for
testing. algorithm testing.

UNIT 1 - Basics of Software Testing and Testing Methods 8


WHITE BOX TESTING BLACK BOX 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.

What is boundary value analysis ? Explain with suitable example.(BBT hai)


Most of the defects in software products hover around conditions and boundaries.
• Boundary value analysis is another
black box test design technique, and it is used
to find the errors at boundaries of input domain rather than finding those errors in
the center of input.
• Each boundary has a valid boundary value and an invalid boundary value.
• Test cases are designed based on both valid and invalid boundary values.
Typically, we choose one test case from each boundary.
The basic idea in boundary value testing is to select input variable values at their:

1. Minimum

2. Just below the minimum

3. Just above the minimum

4. Just below the maximum

5. Maximum

6. Just above the maximum


Example: Input Box should accept the Number 1 to 10
Here we will see the Boundary Value Test Cases

Explain Equivalence Partitioning (BBT hai)


Equivalence Partitioning:
Equivalence Partitioning is a black box testing technique where input data is divided into partitions of valid and
invalid values, with each partition expected to exhibit the same behavior.

If a condition in one partition is true, all conditions in that partition should be true, and similarly for false
conditions.

UNIT 1 - Basics of Software Testing and Testing Methods 9


Test cases are designed to cover each partition at least once, ensuring that every value within a partition
behaves the same.

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.

Applicable at all levels of testing.

Ensures comprehensive coverage by focusing on representative values within each partition.

List types of white box testing. Describe any two types of


white box testing with neat diagram.(4m)
Types of white box testing are:

1. Static Testing

2. Code Coverage testing

3. Code Complexity 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)

Code Complexity testing:


Code complexity testing evaluates how complicated a program's code is. Complex code can be harder to
understand, maintain, and test. Cyclomatic complexity quantifies this complexity.
The cyclomatic complexity can be defined as a measure used to determine the complexity of a piece
of code or functionality.
This metric measures independent paths through program source code. Independent path is defined as a path
that has at least one edge which has not been traversed before in any other paths.
The cyclomatic complexity can be calculated for function, module, class, methods present in the
program.
For computing the cyclomatic complexity the flow graph need to be designed.
Flow Graph notation for a program is defines. several nodes connected through the edges. Below are
Flow diagrams for statements like if-else, While, until and normal sequence of flow.

UNIT 1 - Basics of Software Testing and Testing Methods 10


UNIT 1 - Basics of Software Testing and Testing Methods 11

You might also like