Module 2-1
Module 2-1
Answer
In software engineering, testing is a critical phase that involves the process of evaluating and
verifying that a software application or system meets specified requirements and functions
correctly. It aims to identify defects or issues within the software, ensuring that the product is of
high quality and performs as expected.
Effective testing helps to improve the quality, reliability, and performance of software, reducing the
risk of failures and ensuring that the final product meets the expectations of its users.
Answer
We test a software because testing is a crucial part of the software development lifecycle that
helps ensure the final product is functional, secure, and meets the expectations of its users and
stakeholders.
Answer
Error
error is defined as a human action that produces an incorrect result , leading to a flaw or defect in
the software. This term encompasses mistakes made during the various stages of software
development, including design, coding, and configuration.
Mistakes
mistake is defined as a human error or oversight made during any phase of the software
development process. These mistakes can lead to defects or bugs in the software if not identified
and corrected
Bug
a bug is a flaw or fault in a software program that causes it to produce incorrect or unintended
results, or to behave in unintended ways
Fault
fault (also known as a defect) is a flaw or imperfection in a software product that, if executed, may
cause the system to fail to perform its required functions. Faults are introduced during various
stages of the software development
Failure
failure is defined as an event in which a software system or application does not perform its
intended function or deliver the required outcomes according to specified requirements
Answer
Test
test refers to an evaluation process used to determine whether a software application behaves as
expected. It is done by executing the software with a set of inputs and comparing the actual
outputs with the expected results.
Test cases
test case is a specific set of conditions or inputs under which a tester determines whether a
software is working correctly.
Test suite
test suite refers to a collection or set of test cases that are used to test a software application or
system.
Answer
Verification and validation are both important processes in software engineering that aim to
ensure the quality and correctness of software. Here’s how they differ:
1. Verification:
• Definition: Verification refers to the process of evaluating work products of a
development phase to determine whether they meet the specified requirements.
• Focus: It focuses on assessing whether the software product conforms to its
design and specification documents.
• Objective: The main goal is to answer “Are we building the product right?” It
ensures that the software is being developed correctly according to the defined standards and
requirements.
• Examples: Examples of verification activities include reviews, walkthroughs,
inspections, and static analysis. These activities examine the software artifacts such as
requirements specifications, design documents, code, and test plans to find errors,
inconsistencies, or deviations from standards.
2. Validation:
• Definition: Validation, on the other hand, refers to the process of evaluating
software during or at the end of the development process to determine whether it satisfies
specified requirements.
• Focus: It focuses on assessing whether the software fulfills the intended use and
user needs in its operational environment.
• Objective: The main goal is to answer “Are we building the right product?” It
ensures that the software meets the customer’s expectations and needs.
• Examples: Examples of validation activities include testing the software with real
data and in real environments to check if it behaves as expected, meets user requirements, and
solves the intended problem. This includes functional testing, performance testing, usability
testing, and acceptance testing.
Key Differences:
• Purpose
Verification ensures that the software is developed correctly according to the defined
specifications.
validation ensures that the software meets the user’s actual needs and expectations.
• Focus
Verification focuses on the software artifacts and processes, ensuring consistency and
correctness throughout development.
Validation focuses on the end product, confirming that it works as intended in the real world.
• Timing
Verification activities are typically carried out during the development phase.
validation activities are often carried out towards the end of the development cycle or during
testing phases.
• Methods
Verification often involves static methods like reviews and inspections.
In summary, verification ensures that the software is built correctly according to specifications,
while validation ensures that the right product is built to meet user needs and expectations. Both
processes are essential for delivering high-quality software that meets both technical and user
requirements.
Answer
Alpha
It is a stage in the software development lifecycle where a preliminary version of a software
product is tested by internal teams or selected users before it is released to a wider audience.
This stage typically follows the completion of the initial development phase and precedes the beta
testing phase.
Beta
phase in the software development lifecycle where a pre-release version of the software is made
available to a larger group of users for testing. This phase comes after the alpha testing stage and
aims to gather feedback from real users in real-world environments before the final release of the
software.
Acceptance testing
Acceptance Testing: Performed to determine whether the system meets the business
requirements and is ready for deployment. This includes alpha and beta testing.
integration testing
Focuses on testing the interactions between different components or systems to verify that they
work together as intended.
Validation testing
process of evaluating software to ensure that it satisfies or complies with the specified business
requirements and meets the intended use in its operational environment. Validation testing is often
performed towards the end of the development lifecycle and is aimed at verifying that the
software meets user needs and expectations.
Structural testing
type of testing that examines the internal structure or implementation of a software application. It
is also known as white box testing or glass box testing. Unlike black box testing, which focuses
on testing based on external specifications and requirements, structural testing is concerned with
testing the internal code, paths, and logic of the software.
Regression testing
Ensures that new code changes do not adversely affect the existing functionality of the software.
System testing
Entails testing the complete integrated system to evaluate its compliance with the specified
requirements.
8. What do you meant by debugging. Explain different debugging methods. (5/2 marks)
Answer
debugging refers to the process of identifying, analyzing, and fixing defects, bugs, or issues within
a software application. The goal of debugging is to locate the root cause of unexpected behavior
or errors in the software and then resolve them to ensure the software operates correctly and
meets its intended functionality
These debugging methods are essential for maintaining software quality, ensuring reliability, and
delivering a positive user experience. Depending on the nature of the issue, development
environment, and available tools, developers may employ one or more debugging methods to
effectively diagnose and resolve software defects.