0% found this document useful (0 votes)
18 views12 pages

Software Testing Concepts and Techniques

The document provides a comprehensive overview of software testing concepts, including definitions of test automation, test scenarios, grey box testing, and acceptance testing. It also covers various testing techniques, types of defects, and tools like Sikuli and Apache JMeter, along with their functionalities. Additionally, it includes practical examples and test cases for specific functionalities such as login page verification and decision coverage testing.

Uploaded by

naikwadesumit544
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)
18 views12 pages

Software Testing Concepts and Techniques

The document provides a comprehensive overview of software testing concepts, including definitions of test automation, test scenarios, grey box testing, and acceptance testing. It also covers various testing techniques, types of defects, and tools like Sikuli and Apache JMeter, along with their functionalities. Additionally, it includes practical examples and test cases for specific functionalities such as login page verification and decision coverage testing.

Uploaded by

naikwadesumit544
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

Alright, let's tackle these software testing questions.

Here are the answers, formatted with the questions


and point-by-point explanations according to the
marks allocated.
Q1) Attempt any EIGHT of the following. (out of Ten) [8
x 1 = 8]

a) Define Test Automation.


* Test automation involves using specialized software
tools to execute pre-designed test cases, compare ac‐
tual outcomes with expected outcomes, and generate
test reports, with minimal human intervention.
*
b) What is Test scenario?
* A test scenario is a high-level description of a
specific functionality or aspect of the software that
needs to be tested. It outlines what needs to be tested
without going into detailed steps.
*
c) What is grey box testing?
* Grey box testing is a software testing technique that
combines aspects of both black-box and white-box
testing. Testers have partial knowledge of the system's
internal structure.
*
d) What is test incident report?
* A test incident report is a document that formally
records any unexpected behavior, defect, or deviation
from the expected result encountered during testing.
It includes details like steps to reproduce, severity, and
priority.
*
e) What is structural testing?
* Structural testing (also known as white-box testing)
is a testing technique that examines the internal
structure, design, and code of the software to derive
test cases.
*
f) Define Acceptance testing.
* Acceptance testing is a type of testing conducted
to determine if the software meets the needs and ex‐
pectations of the end-users or stakeholders. It verifies
whether the system is acceptable for deployment.
*
g) Win Runner is an automated End-to-End testing tool.
State TRUE of FALSE.
* TRUE. WinRunner was a popular automated
functional GUI testing tool that could be used for
end-to-end testing of applications.
*
h) What is extra coding?
* In the context of testing, extra coding often refers to
writing custom scripts or functions beyond the basic
functionalities provided by a testing tool to handle
specific testing needs, such as complex data handling
or custom reporting.
*
i) What is a latent defect?
* A latent defect is a flaw in the software that
exists but has not yet caused a failure because the
conditions to trigger it have not been met. It remains
hidden until specific inputs or situations occur.
*
j) Enlist any two characteristics of Selenium tools.
* Selenium supports multiple programming languages
(e.g., Java, Python, C#, JavaScript).
* Selenium supports multiple browsers (e.g., Chrome,
Firefox, Safari, Edge).
*
Q2) Attempt any FOUR of the following. (out of Five) [4
x 2 = 8]

a) What is Code Coverage? Explain.


* Code coverage is a metric that measures the extent
to which the source code of a program has been
executed by a test suite.
* It helps identify areas of the code that have not been
tested, providing insights into the thoroughness of
the testing process. Different types of code coverage
include statement coverage, branch coverage, and
path coverage.
*
b) Define test criteria and explain its types.
* Test criteria are the conditions or rules that
determine whether a test has passed or failed. They
define the expected outcome of a test.
* Types of test criteria can include:
* Functional criteria: Verifying that the software
performs its intended functions correctly.
* Performance criteria: Ensuring the software meets
specified performance requirements (e.g., response
time, throughput).
* Usability criteria: Assessing how easy and intuitive
the software is to use.
* Security criteria: Verifying that the software protects
data and prevents unauthorized access.
* Reliability criteria: Ensuring the software operates
without failure for a specified period under stated
conditions.
*
c) List any two parameters based on that testing tools
classify.
* Type of Testing Supported: Testing tools can be
classified based on the type of testing they primarily
support (e.g., functional testing, performance testing,
security testing, mobile testing).
* Automation Level: Tools can be classified based on
their level of automation capabilities, ranging from
manual testing aids to fully automated execution and
reporting tools.
*
d) Write any two types of errors.
* Syntax Error: An error in the grammar or structure of
the programming language, preventing the code from
being compiled or interpreted correctly.
* Logical Error: An error in the program's logic that
causes it to produce incorrect results, even though the
syntax is correct.
*
e) Define priority defect and its different levels.
* A priority defect indicates the urgency with which a
defect needs to be fixed. It is determined by the impact
of the defect on the business or the user.
* Different levels of priority can include:
* High: The defect severely impacts critical
functionality and needs to be fixed immediately.
* Medium: The defect affects significant functionality
but can be addressed after high-priority defects.
* Low: The defect is minor and can be fixed in a later
release or when resources are available.

Q3) Attempt any TWO of the following. (out of Three)


[2 x 4 = 8]

a) How to make use of automation tools?


* Identify Testable Areas: Determine which parts of
the application are suitable for automation based on
factors like frequency of use, stability, and criticality.
* Select the Right Tool: Choose an automation
tool that aligns with the technology stack of the
application, testing needs, and team skills.
* Develop Test Scripts: Create automated test scripts
that mimic user actions and verify expected outcomes.
This involves recording actions, writing code, and
parameterizing data.
* Execute and Analyze Results: Run the automated test
scripts and analyze the generated reports to identify
defects and areas of failure.
* Maintain and Enhance Scripts: Regularly update and
improve the automation scripts to adapt to changes in
the application and increase test coverage.

b) What are different types of loop testing? Explain in


details.
* Loop testing is a white-box testing technique
focused on validating the correctness of loop
constructs in the code. Different types include:
* Simple Loops: Testing loops with a single iteration,
skipping the loop entirely, and iterating through the
loop a maximum number of times.
* Nested Loops: Testing loops within loops, requiring
strategies to test all combinations of loop iterations,
often focusing on the innermost loop first while
keeping outer loops at minimum values.
* Concatenated Loops: Testing sequences of
independent loops, where each loop is tested
individually with different iteration counts.
* Unstructured Loops: Testing loops with complex con‐
trol flow (e.g., multiple entry or exit points), which are
generally discouraged in good programming practice
due to their complexity in testing and maintenance.

c) Explain reasons because of bug can be arise.


* Human Error: Developers can make mistakes
during coding, such as incorrect logic, typos, or
misunderstandings of requirements.
* Complexity of Software: Modern software systems
are often intricate, with many interconnected
components, increasing the chances of errors in
integration and interaction.
* Changing Requirements: Frequent changes in project
requirements can lead to inconsistencies and errors if
not properly managed and implemented.
* Time Pressure: Tight deadlines can force developers
to rush, increasing the likelihood of introducing bugs.
* Poor Communication: Lack of clear communication
between stakeholders, developers, and testers can
result in misunderstandings and defects.
* Inadequate Testing: Insufficient or poorly designed
testing can fail to uncover existing bugs before
release.

Q4) Attempt any TWO of the following. (out of Three)


[2 x 4 = 8]

a) Create case study for verify the functionality of


Myntra login page.
* Objective: To verify the functionality of the Myntra
login page, ensuring users can successfully log in with
valid credentials and are appropriately handled with
invalid credentials.
* Test Scenarios:
* Valid Login: Enter a valid registered email/phone
number and password. Verify successful login and
redirection to the user's account page.
* Invalid Email/Phone Number: Enter an invalid or
non-registered email/phone number with a valid
password. Verify the system displays an appropriate
error message.
* Invalid Password: Enter a valid registered email/
phone number with an incorrect password. Verify the
system displays an appropriate error message.
* Empty Fields: Attempt to log in with both email/
phone number and password fields left empty. Verify
the system prompts the user to enter the required
information.
* Email/Phone Number Format Validation: Enter an
email/phone number in an incorrect format. Verify
the system displays an appropriate validation error
message.
* Password Field Visibility: Verify the presence of a
toggle option to show or hide the entered password.
* "Forgot Password" Functionality: Click on the "Forgot
Password" link. Verify redirection to the password
recovery page.
* Expected Results: For valid credentials, successful
login. For invalid credentials or empty fields,
appropriate and informative error messages should be
displayed without granting access. Redirection to the
correct pages for password recovery.

b) Consider following code and apply decision


coverage testing to create use cases. Input (int x, int y)
{
int z = ((x-y)/200)*100;
if(z >= 80)
Print("Q+")
else if (60 <= z < 80)
Print("A+")
else
Print("B")
}

* Decision Coverage: This aims to ensure that each


decision (the conditions in if and else if statements) in
the code is evaluated to both true and false outcomes
at least once.
* Decisions:
1. z >= 80
2. 60 <= z < 80
* Test Cases:
* Test Case 1 (z >= 80 is True):
* To make z >= 80 true, we need ((x-y)/200)*100 \ge
80, which simplifies to x - y \ge 160.
* Example Input: x = 260, y = 10.
* Calculation: z = ((260-10)/200)*100 = (250/200)*100
= 125. Since 125 \ge 80, the output should be "Q+".
* Test Case 2 (z >= 80 is False, 60 <= z < 80 is True):
* To make z >= 80 false and 60 <= z < 80 true, we need
60 \le ((x-y)/200)*100 < 80, which simplifies to 120 \le
x - y < 160.
* Example Input: x = 200, y = 50.
* Calculation: z = ((200-50)/200)*100 = (150/200)*100
= 75. Since 60 \le 75 < 80, the output should be "A+".
* Test Case 3 (z >= 80 is False, 60 <= z < 80 is False):
* To make both conditions false, we need ((x-y)/
200)*100 < 60, which simplifies to x - y < 120.
* Example Input: x = 100, y = 0.
* Calculation: z = ((100-0)/200)*100 = 50. Since 50 <
60, the output should be "B".

c) Explain Nested loop and unstructured loop testing.


* Nested Loop Testing: This involves testing loops
that are embedded within other loops. The complexity
increases with the level of nesting. Common strategies
include:
* Testing the innermost loop with all its iterations while
keeping the outer loops at their minimum values.
* Gradually increasing the iteration counts of the outer
loops while keeping the inner loop at typical values.
* Testing boundary conditions for all loops.
* Considering all possible combinations of loop
iterations, although this can be exhaustive.
* Unstructured Loop Testing: This deals with loops
that have multiple entry or exit points, often created
by goto statements or complex conditional breaks.
Unstructured loops are harder to test and maintain due
to their unpredictable control flow. Testing such loops
often involves:
* Identifying all possible paths through the loop.
* Designing test cases to cover each path.
* Focusing on the entry and exit conditions for each
part of the loop.
* Refactoring the code to create more structured
loops is often recommended to improve testability and
maintainability.

Q5) Attempt any ONE of the following. (out of Two) [1


x 3 = 3]

a) Write short note on Classification of Defects.


* Defects can be classified based on various criteria
to help in analysis, prioritization, and resolution. Some
common classifications include:
* Severity: Categorizes the impact of the defect on the
functionality or user experience (e.g., critical, major,
minor, cosmetic).
* Priority: Indicates the urgency with which the defect
needs to be fixed (e.g., high, medium, low).
* Functional Area: Identifies the specific module or
component of the software where the defect occurs
(e.g., login, payment, search).
* Root Cause: Explores the underlying reason why
the defect occurred (e.g., coding error, design flaw,
requirement issue).
* Lifecycle Stage: Indicates when the defect was
introduced or discovered (e.g., requirement, design,
coding, testing).
* Type of Defect: Describes the nature of the defect
(e.g., functional, performance, usability, security).

b) Write short note on Sikuli and Apache JMeter


testing tools.
* Sikuli: Sikuli is a visual technology automation tool
that uses image recognition to identify and interact
with GUI elements. It automates anything visible on
the screen, making it useful for testing desktop applic‐
ations, web applications, and even embedded systems
where traditional element locators might not work.
Sikuli scripts can be written in Python and can interact
with UI elements based on screenshots. Its strength
lies in handling dynamic or visually complex interfaces.
* Apache JMeter: Apache JMeter is a powerful open-
source load and performance testing tool. Primarily
designed for web applications, it can also be used to
test other services like databases, FTP servers, and
message queues. JMeter simulates a large number
of users accessing the application concurrently to
measure its performance under various load condi‐
tions. It provides detailed reports on response times,
throughput, and other performance metrics, helping
identify bottlenecks and areas for optimization.
Hope this detailed breakdown helps you understand
the answers thoroughly! Let me know if you have any
more questions.
Last modified: 3:20 pm

You might also like