0% found this document useful (0 votes)
4 views5 pages

Software Testing Answers

The document provides a comprehensive overview of software testing concepts, including definitions of various testing types, methodologies, and processes. It covers topics such as regression testing, configuration testing, and the Agile methodology, along with detailed explanations of testing phases and dimensions of quality. Additionally, it outlines the differences between alpha and beta testing, unit testing, and various testing strategies like system, performance, and load testing.

Uploaded by

ompise299
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views5 pages

Software Testing Answers

The document provides a comprehensive overview of software testing concepts, including definitions of various testing types, methodologies, and processes. It covers topics such as regression testing, configuration testing, and the Agile methodology, along with detailed explanations of testing phases and dimensions of quality. Additionally, it outlines the differences between alpha and beta testing, unit testing, and various testing strategies like system, performance, and load testing.

Uploaded by

ompise299
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

[Link].

Computer Science
CS-362: Software Testing (2019 Pattern) — Simple Answers

Q1) Short Answer Questions (Any 8 × 1 = 8 marks)

a) Debugging starts only after successful testing — True or False?


TRUE. Debugging is the process of finding and fixing the actual cause (bug) of a failure. It begins only
after testing has revealed that a problem exists. Without a test failure, there is nothing to debug.

b) Define Regression Testing


Regression testing means re-running previously passed tests after a change (bug fix or new feature) is
made to the software. Its goal is to confirm that the change has not broken anything that was already
working correctly.

c) Define Configuration Testing


Configuration testing checks whether the software works correctly across different hardware setups,
operating systems, browsers, or network environments. For example, testing a website on Chrome,
Firefox, and Safari.

d) Define Stress Testing


Stress testing pushes the system beyond its normal limits (e.g., very high number of users or large data
volumes) to see how it behaves under extreme conditions and to find its breaking point.

e) Define Error
An error is a mistake made by a developer while writing code — for example, a wrong formula or a
misunderstood requirement. An error can lead to a defect (bug) in the software.

f) List any 2 Objectives of Software Testing


1. To find defects — uncover bugs before the software reaches the end user.
2. To verify correctness — confirm that the software meets its specified requirements.

g) What is Agile Methodology?


Agile is a software development approach that delivers the project in small, working pieces called sprints
(usually 2–4 weeks each). It welcomes changing requirements and focuses on continuous collaboration
between the team and the customer.

h) Define Test Plan


A test plan is a document that describes what will be tested, how it will be tested, who will test it, and the
schedule for testing. It acts as a guide for the entire testing process.

i) Define Verification
Verification checks whether the software is being built correctly according to the design and specifications.
It answers the question: 'Are we building the product right?' It is done through reviews, inspections, and
walkthroughs — not by running the program.

j) Define Web Application


A web application is software that runs on a web server and is accessed by users through a web browser
over the internet. Examples include Gmail, online banking portals, and e-commerce sites.
Q2) Short Notes (Any 4 × 2 = 8 marks)

a) Configuration Testing (with example)


Configuration testing checks that the application runs correctly in different environments.
Example: A web application is tested on Windows 10 with Chrome, macOS with Safari, and Android with
Firefox. Each combination is a different configuration. Testers verify that the UI, performance, and features
work in all supported configurations.

b) White Box vs Black Box Testing


White Box Testing: The tester knows the internal code/structure. Tests are designed based on the logic,
branches, and paths in the code. Also called glass-box or structural testing.
Black Box Testing: The tester does NOT know the internal code. Tests are based only on inputs and
expected outputs (requirements). Also called functional testing.
Key Difference: White box = code-based; Black box = requirement-based.

c) Features of Agile Testing


1. Testing is done continuously in every sprint, not just at the end.
2. Testers and developers work together as one team.
3. Test cases are written early, sometimes before the code (TDD).
4. Quick feedback loops allow defects to be fixed fast.
5. Welcomes changing requirements even late in development.

d) Integration Testing
Integration testing verifies that different modules or components work correctly when combined together.
After individual units pass unit testing, they are integrated and tested as a group.
How it works: Modules are combined step by step (bottom-up or top-down approach). For example, after
testing the Login module and the Dashboard module separately, they are combined and tested to ensure
data flows correctly from login to the dashboard.

e) Agile Manifesto
The Agile Manifesto (2001) defines 4 core values:
1. Individuals and interactions over processes and tools.
2. Working software over comprehensive documentation.
3. Customer collaboration over contract negotiation.
4. Responding to change over following a fixed plan.
These values guide teams to be flexible, people-focused, and delivery-oriented.

Q3) Medium Answers (Any 2 × 4 = 8 marks)

a) V-Model in Detail
The V-Model (Verification & Validation Model) is a software development model where each development
stage has a corresponding testing stage. It looks like the letter 'V'.

Left side (Development):


1. Requirements Analysis → corresponds to Acceptance Testing
2. System Design → corresponds to System Testing
3. Architecture Design → corresponds to Integration Testing
4. Module Design → corresponds to Unit Testing
5. Coding (bottom of V)
Right side (Testing): Each test level validates the corresponding left-side stage.

Advantages: Simple, easy to manage, testing is planned early.


Disadvantage: Not flexible — changes are difficult once development starts.

b) Dimensions of Quality
Quality in software can be measured across several dimensions:
1. Functionality – Does the software do what it is supposed to do?
2. Reliability – Does it work consistently without failure?
3. Usability – Is it easy to learn and use?
4. Efficiency – Does it use resources (CPU, memory) wisely?
5. Maintainability – Can it be easily updated or fixed?
6. Portability – Can it run on different platforms or environments?
These dimensions come from the ISO 9126 quality model and help define what 'good software' means.

c) Internationalization (i18n) Testing


Internationalization testing (i18n) checks whether software can be adapted for different languages,
regions, and cultures without changing the core code.

Phases:
1. Design Phase – Ensure the architecture supports multiple languages (Unicode, locale settings).
2. Development Phase – Externalize all strings (no hard-coded text), support date/time/currency formats.
3. Testing Phase – Test with different languages (e.g., Arabic for RTL text), check layout expansion for
longer translated words, verify number and date formatting.
4. Localization Phase (L10n) – Translate and adapt the software for a specific region.

Example: An app showing '12/04/2024' must display it as '04/12/2024' for US users and '2024■12■4■' for
Japanese users.

Q4) Medium Answers (Any 2 × 4 = 8 marks)

a) Alpha and Beta Testing — Differences


Alpha Testing: Done by internal testers (employees) at the developer's site before releasing to the public.
The development team is usually present. Bugs found are fixed immediately.

Beta Testing: Done by real end-users at their own location after alpha testing. The developer is NOT
present. Users report bugs, and feedback is collected for final improvements.

Key Differences:
• Who: Alpha = internal staff; Beta = external real users
• Where: Alpha = developer's site; Beta = user's environment
• Stage: Alpha comes before Beta
• Purpose: Alpha = find bugs; Beta = get real-world feedback

b) Unit Testing
Unit testing is the testing of the smallest individual piece of code (a function, method, or module) in
isolation to verify it works correctly.
How it works:
1. The developer writes a test case for a specific function.
2. Test inputs are given and the actual output is compared to the expected output.
3. If they match, the test passes; otherwise it fails.

Example: A function add(a, b) should return the sum of two numbers.


Test: add(3, 5) → expected output: 8.
If the function returns 8, the unit test passes.

Tools: JUnit (Java), PyTest (Python), NUnit (.NET).

c) System vs Performance vs Load Testing


System Testing: Tests the complete, integrated software to verify it meets all specified requirements. It is
a black-box test done after integration testing.

Performance Testing: Checks how fast, stable, and responsive the system is under a normal workload.
Measures response time, throughput, and resource usage.

Load Testing: A type of performance testing that gradually increases the number of users/transactions to
find the maximum load the system can handle before performance degrades.

Summary:
• System Testing → Does it work correctly?
• Performance Testing → How fast does it work?
• Load Testing → How much load can it handle?

Q5) Long Answer (Any 1 × 3 = 3 marks)

a) Web Application — How It Works


A web application is a software program stored on a remote server and delivered to the user through a
web browser (like Chrome or Firefox) over the internet.

How it works (step by step):


1. User opens a browser and types a URL (e.g., [Link]).
2. The browser sends an HTTP request to the Web Server.
3. The Web Server processes the request and may query the Database.
4. The Database returns the required data to the Web Server.
5. The Web Server sends back an HTTP response (HTML/CSS/JS) to the browser.
6. The browser renders the page and the user sees the result.

Diagram (text form):


[ User/Browser ] ←HTTP→ [ Web Server ] ←Query→ [ Database ]

Examples: Gmail, Facebook, Online Banking, Amazon.

b) Test Case — How to Create It


A test case is a set of conditions and steps used to verify whether a specific feature of the software works
as expected.

Components of a Test Case:


1. Test Case ID – Unique identifier (e.g., TC_001)
2. Test Description – What is being tested
3. Pre-conditions – What must be true before the test
4. Test Steps – Step-by-step actions to perform
5. Test Data – The input values to use
6. Expected Result – What should happen
7. Actual Result – What actually happened
8. Status – Pass / Fail

Example:
Test Case ID: TC_001
Description: Test login with valid credentials
Pre-condition: User is registered; browser is open
Steps: 1) Go to login page 2) Enter username: 'user1' 3) Enter password: 'pass123' 4) Click Login
Expected Result: User is redirected to the home dashboard
Actual Result: Home dashboard displayed
Status: PASS

— End of Answer Sheet —

You might also like