0% found this document useful (0 votes)
12 views8 pages

STA Unit 0.5 Notes

The document outlines key concepts and methodologies in software testing, including definitions of software testing, the importance of early testing, and the differences between black-box and white-box testing. It details the Software Testing Life Cycle (STLC) phases, emphasizing their significance in ensuring quality and risk management, and introduces the V-model as a structured approach to testing. Additionally, the document discusses the benefits of software testing, such as cost savings, improved quality, and enhanced user satisfaction.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views8 pages

STA Unit 0.5 Notes

The document outlines key concepts and methodologies in software testing, including definitions of software testing, the importance of early testing, and the differences between black-box and white-box testing. It details the Software Testing Life Cycle (STLC) phases, emphasizing their significance in ensuring quality and risk management, and introduces the V-model as a structured approach to testing. Additionally, the document discusses the benefits of software testing, such as cost savings, improved quality, and enhanced user satisfaction.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

CCS366- Software Testing and Department of CSE

Automation
UNIT-I / PART-A
1 Define software testing(Nov/Dec’14)
Software testing can be stated as the process of verifying and validating whether a software or
application is bug-free,meets the technical requirements as guided by its design and development
and meets the user requirements effectively and efficiently by handling all the exceptional and
boundary cases.
2 Explain how software testing contributes to cost savings in the software development
process.
Software testing identifies and rectifies defects early in the development cycle, reducing
the cost of fixing issues post-release, where costs can be significantly higher.
3 Why is early testing important in the software development process?
Early testing in software development helps identify defects and issues sooner, reducing the cost and time
needed for fixes. It ensures higher quality and stability in the final product.

4 How does software testing help manage risk in software projects?


Software testing helps identify and mitigate potential risks by uncovering defects and
vulnerabilities, allowing for proactive risk management and minimizing unexpected issues in
production.
5 What is black-box testing?
The technique of testing in which the tester doesn’t have access to the source code of the
software and is conducted at the software interface without any concern with the internal logical
structure of the software is known as black-box testing.
6 What is white-box testing?
The technique of testing in which the tester is aware of the internal workings of the product, has
access to its source code and is conducted by making sure that all internal operations are
performed according to the specifications is known as white-box testing.
7 Outline the need of software testing.
 To identify defects in testing
 To reduce flaws in components
 To increase quality of the software
8 What are software testing principles?
software testing principles include defect clustering, testing early and frequently, and the absence of errors
fallacy. These principles guide effective testing to improve software quality and reliability.

9 Compare and contrast the objectives of Black-Box Testing and White-Box Testing. Black-
Box Testing focuses on functionality, while White-Box Testing examines the internal code.
Black-Box aims to validate user requirements, while White-Box verifies
code structure and logic.
10 What are the different levels of software testing?
1.Unit Testing 2.Integration Testing 3.System Testing 4.Acceptance Testing
11 What is the Software Testing Life Cycle (STLC)?
STLC is a series of phases and activities that guide the testing process from test planning through
test execution, defect tracking, and reporting.
12 Why is test planning an important phase in the STLC?
Test planning defines the scope, objectives, and strategies for testing, ensuring that testing
efforts are well-organized and focused on goals.
13 Why is test design a critical phase in the STLC?
Test design involves creating test cases, scenarios, and scripts based on requirements, ensuring
comprehensive test coverage.
14 What is the V-model of software testing?
The V-model is a software development and testing approach where each development phase
has a corresponding testing phase, forming a "V" shape.

Jeppiaar Engineering 1
College
CCS366- Software Testing and Department of CSE
Automation

PART-B

1. What are the fundamental reasons for testing software, and how do they contribute to the
software development process?

Software testing is the process of determining if a piece of software is accurate by taking into account
all of its characteristics (reliability, scalability, portability, Re-usability and usability) and analyzing
how its various components operate in order to detect any bugs, faults or flaws.

Why Software Testing is Important?

Programed testing is crucial because it allows any faults or mistakes in the programme to be found
early and fixed before the software product is delivered. Reliability, security and high performance are
all ensured by well tested software, which also leads to time savings, cost efficiency and customer
pleasure.

Needs of Software Testing

 Identifies defects early: Testing helps detect bugs and errors during development, preventing them
from affecting production.
 Ensures functionality: Verifies that the software meets functional requirements and behaves as
expected.
 Improves quality: Ensures that the final product is reliable, stable, and of high quality.
 Reduces risk: Minimizes the risk of software failure or critical issues in production environments.
 Increases user satisfaction: Delivers a product that meets user expectations and requirements.
 Ensures security: Helps identify vulnerabilities, protecting the software from potential security
threats.
 Enhances performance: Confirms that the software performs well under expected conditions,
such as load and stress.
 Ensures compatibility: Verifies that the software works across different platforms, devices, and
environments.
 Reduces maintenance costs: Early detection of issues reduces the cost and effort required to fix
them post-deployment.
 Supports compliance: Ensures the software adheres to industry standards, regulations, and client
requirements.

Benefits of Software Testing

The following are advantages of employing software testing:


One of the key benefits of software testing is that it is cost-effective. Timely testing of any IT project
enables you to make long-term financial savings. If flaws are found sooner in the software testing
process, fixing them is less expensive.
Security: This perilous and delicate advantage of software testing. People are searching for reliable
goods. It assists in eradicating hazards and issues early.
Product quality: Any software product must meet these criteria. Testing guarantees that buyers get a
high-quality product.
Customer satisfaction: Providing consumers with contentment is the primary goal of every product.
The optimum user experience is made guaranteed of through U/UX testing.

Jeppiaar Engineering 2
College
CCS366- Software Testing and Department of CSE
Automation

2. Explain the concepts of Black-Box Testing and White-Box Testing, highlighting their differences
and use cases. Describe their advantage and limitation with examples.

Black Box Testing:

1. Definition:
Black Box Testing is a software testing method where the internal structure, design, or
implementation of the system being tested is not known to the tester. The focus is on testing the
functionality of the software by providing inputs and examining the outputs.
2. Characteristics:
o No knowledge of internal code: Testers are unaware of the internal workings of the application.
o Input-output focused: Only the input provided and the output received are analyzed.
o User-centric: Tests are based on user requirements and functionality.

3. Types of Black Box Testing:


o Functional Testing: Verifies that the software functions as expected based on user requirements.
o Non-functional Testing: Tests aspects like performance, usability, and reliability.
o Regression Testing: Ensures new code changes do not affect existing functionality.

4. Techniques:
o Equivalence Partitioning: Divides input data into partitions where test cases can represent the entire
partition.
o Boundary Value Analysis: Focuses on testing the boundaries between partitions, such as the
maximum, minimum, and edge values.
o Decision Table Testing: Uses a decision table to outline possible conditions and actions, helping to
ensure all logical combinations are covered.
o State Transition Testing: Evaluates the behavior of the software during state changes.

5. Advantages:
o Unbiased testing: Tester’s lack of knowledge about internal code prevents bias in testing.
o User-oriented: Tests reflect real-world usage and expectations.
o No need for programming knowledge: The tester can be a non-programmer or end-user.

6. Disadvantages:
o Limited coverage: Some code paths may not be tested since internal logic is unknown.
o Redundancy: Unnecessary tests may be created without knowledge of code structure.
o Difficulty in pinpointing defects: Since internal code is unknown, identifying the source of defects
may be harder.

White Box Testing

 Definition:
White Box Testing is a software testing method that involves testing the internal structure, logic, and
implementation of the software. Testers have complete knowledge of the code, allowing them to
examine the system's internal workings.

 Characteristics:

 Code-focused: The tester examines the actual code and internal logic.
 Test cases based on code: The tests are derived from the program’s structure, covering statements,
branches, paths, and conditions.
 Developer-centric: Often conducted by developers or testers with programming knowledge.

 Types of White Box Testing:

 Unit Testing: Testing individual components or modules of the software.


Jeppiaar Engineering 3
College
CCS366- Software Testing and Department of CSE
Automation
 Integration Testing: Testing the interfaces and interaction between integrated units.
 Static Testing: Code review and analysis without executing the code.
 Dynamic Testing: Executing code to test its behavior and output.

 Techniques:

 Statement Coverage: Ensures every line of code is executed at least once.


 Branch Coverage: Ensures that every branch (decision point) in the code is tested.
 Path Coverage: Ensures that every possible path through the code is tested.
 Condition Coverage: Tests each Boolean condition in the program to ensure true and false outcomes
are validated.

 Advantages:

 Thorough testing: Tests are detailed and based on actual code, making it possible to identify hidden
issues.
 Optimization: Helps in code optimization by identifying unnecessary or inefficient code.
 Early bug detection: Bugs are often found earlier in the development cycle because testing starts at
the code level.
 Improves code quality: Ensures code correctness, security, and performance.

 Disadvantages:

 Requires deep programming knowledge: Testers must have a thorough understanding of the code
and its structure.
 Time-consuming: Creating tests for all paths, conditions, and statements can be time-intensive,
especially for large projects.
 High complexity: White box testing can become highly complex when the software has intricate logic
or numerous code paths.
 Limited user perspective: Since it focuses on code structure, it may not capture how end-users will
actually use the system.

Jeppiaar Engineering 4
College
CCS366- Software Testing and Department of CSE
Automation

Jeppiaar Engineering 5
College
CCS366- Software Testing and Department of CSE
Automation
3. Describe the key phases and activities in the Software Testing Life Cycle (STLC) and their
importance in ensuring a robust testing process.

1. Definition:
The Software Testing Life Cycle (STLC) is a systematic process that defines the stages of testing,
ensuring quality and functionality of software. Each phase has specific deliverables and activities
aimed at verifying the software meets its intended requirements.

2. Phases of STLC:

1. Requirement Analysis:

o Objective: Understand and analyze the testing requirements.


o Activities: Review functional and non-functional requirements, identify testable aspects, and raise any
ambiguities to the stakeholders.
o Deliverables: Requirement Traceability Matrix (RTM), testing scope.

2. Test Planning:

o Objective: Create a strategic plan for testing.


o Activities: Identify testing objectives, define scope, estimate resources and timelines, identify tools,
and assign roles.
o Deliverables: Test Plan, Test Effort Estimation, Risk Assessment.

3. Test Case Design and Development:

o Objective: Create detailed test cases and prepare test data.


o Activities: Write test cases, create test scripts (for automation), prepare input data and expected results.
o Deliverables: Test Cases, Test Data, Test Scripts.

4. Environment Setup:

o Objective: Set up the test environment, ensuring the system is ready for testing.
o Activities: Configure hardware and software, set up testing tools, and create test bed.
o Deliverables: Test Environment, Smoke Test Results (for validation of environment setup).

Jeppiaar Engineering 6
College
CCS366- Software Testing and Department of CSE
Automation
5. Test Execution:

o Objective: Execute test cases in the prepared environment.


o Activities: Run test cases, log defects, retest fixed defects, and track results.
o Deliverables: Test Execution Reports, Defect Logs, Test Case Execution Metrics.

6. Test Closure:

o Objective: Finalize testing activities, report findings, and evaluate the test coverage and quality.
o Activities: Summarize test results, prepare test summary reports, assess test coverage, and close any
remaining defects.
o Deliverables: Test Summary Report, Test Closure Report, Finalized Defect Logs.

3. Importance of STLC:
o Ensures a structured approach to testing.
o Enhances the quality of the software by identifying issues early.
o Provides clarity on the testing process, timelines, and deliverables.
o Supports risk management by defining risk areas and addressing them systematically.

4. Explain the V-Model of Software Testing, how it differs from traditional development
approaches, and its role in promoting early defect detection.

V-Model of Software Testing

Also known as the verification and validation model, the V-model. This requires that each stage of the SDLC
be completed before moving on to the next. The waterfall model's sequential design approach is also followed.
The device's testing is scheduled concurrently with the relevant stage of development.

«Verification is a static analysis technique (review) carried out without actually running any code. To
determine 7if certain criteria are met, the product development process is evaluated.

Testing is done by running code and validation comprises dynamic analysis methods (functional and non-
functional). After the development phase is. complete, the software is categorized through the validation step to
see whether it satisfies the needs and expectations of the client.
Jeppiaar Engineering 7
College
CCS366- Software Testing and Department of CSE
Automation
Therefore, the V - model features validation stages on one side and verification phases on the other. Coding
phase joins the verification and validation processes in a V-shape. As a result, it is known as V - model.
Play video in backward skip 10s there are many stages in the V - model's verification phase:

1. Business requirement analysis: This is the initial phase in which customer-side product needs are
understood. To fully comprehend the expectations and precise needs of the consumer, this step involves
comprehensive discussion.
2. System design: System engineers utilize the user requirements document to analyze and comprehend the
business of the proposed system at this level.
3. Architecture design: The first step in choosing an architecture is to have a solid understanding of everything
that will be included, such as the list of modules, a short description of each module's operation, the linkages
between the modules’ interfaces, any dependencies, database tables, architectural diagrams, technological
details, etc. A certain step includes the integration testing model.
4. Module design: The system is divided into manageable modules during the module design phase. Low-level
design, which is the specification of the modules’ intricate Design.
5. Coding step: The coding step ‘is started after designing. It is determined on a programming language that
will work best based on the criteria. For coding, there are certain rules and standards. The final build is
enhanced for greater performance prior to checking it into the repository and the code undergoes several code
reviews to verify its performance.

There are many stages in the V - model's validation phase:


1. Unit testing: Unit Test Plans (UTPs) are created in the V - model's module design phase. To get rid of
problems at the unit or code level, these UTPs are run. The smallest thing that can exist on its own is a unit,
such a programme module. Unit testing ensures that even the tiniest component can operate properly when
separated from other scripts or units.
2. Integration testing: During the architectural design phase, integration test plans are created. These
experiments demonstrate that separate groups may live and interact with one another.
3. System testing: During the system design phase, plans for system tests are created. System test plans, in
contrast to unit and integration test plans, are created by the client's business team. System testing makes
ensuring that an application developer's requirements are satisfied.
4. Acceptance testing: The examination of business requirements is connected to acceptance testing. The
software product is tested in a user environment. Acceptance tests highlight any system compatibility issues
that may exist within the user environment. Additionally, it identifies non-functional issues like load and
performance flaws in the context of actual user interaction.

When to use V - model?


 When the requirement is well defined and not ambiguous.
 The V-shaped model should be used for small to medium-sized projects where requirements are clearly
defined and fixed.
 The V-shaped model should be chosen when sample technical resources are available with essential technical
expertise.

Advantage (Pros) of V - model:


 Easy to understand.
 Testing methods like planning, test designing happens well before coding.
 This saves a lot of time. Hence a higher chance of success over the waterfall model
 Avoids the downward flow of the defects.
 Works well for small plans where requirements are easily understood.

Disadvantage (Cons) of V - model:


 Very rigid and least flexible.
 Not good for a complex project.
 Software is developed during the implementation stage, so no early

Jeppiaar Engineering 8
College

You might also like