You are on page 1of 22

KIET Group of Institutions, Ghaziabad

Department of Computer Applications (NBA Accredited)


(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Previous Year University Question Paper Solution (2018-19)


V SEMESTER, SOFTWARE TESTING RCA E24

Q1: What is software testing? Why it is necessary?


Ans: Testing is the process of evaluating a system or its component(s) with the intent to find
whether it satisfies the specified requirements or not. In simple words, testing is executing a
system in order to identify any gaps, errors, or missing requirements in contrary to the actual
requirements. Software testing is a process of executing a program or application with the intent
of finding the software bugs.
Software Testing is necessary because we all make mistakes. Some of those mistakes are
unimportant, but some of them are expensive or dangerous. We need to check everything and
anything we produce because things may go wrong. It’s essential since it makes sure that the
customer finds the organization reliable and their satisfaction in the application is maintained.

Q2: Define error, fault and failure.


Ans: Fault : It is a condition that causes the software to fail to perform its required function.
Error : Refers to difference between Actual Output and Expected output.
Failure : It is the inability of a system or component to perform required function according to its
specification.
IEEE Definitions
Failure: External behavior is incorrect
Fault: Discrepancy in code that causes a failure.
Error: Human mistake that caused fault
• Error is terminology of Developer.
• Bug is terminology of Tester

Q3: Differentiate between testing and debugging.


Ans: Testing is a process of finding bugs or errors in a software product that is done manually
by tester or can be automated.

Debugging is a process of fixing the bugs found in testing phase. Programmer or developer is
responsible for debugging and it can’t be automated.

Testing Debugging

The purpose of testing is to find bugs and The purpose of debugging is to correct those
errors. bugs found during testing.

Testing is done by tester. Debugging is done by programmer or


KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

developer.

It can be automated. It can’t be automated.

It must be done only by insider i.e.


It can be done by outsider like client. programmer.

Most of the testing can be done without Debugging can’t be done without proper
design knowledge. design knowledge.

Q4: Define Test Management

Ans: Test management, process of managing the tests. A test management is also performed
using tools to manage both types of tests, automated and manual, that have been previously
specified by a test procedure.

Test Management has a clear set of roles and responsibilities for improving the quality of the
product.

Test management helps the development and maintenance of product metrics during the course
of project.

Test management enables developers to make sure that there are fewer design or coding faults.

There are two main Parts of Test Management Process: -

• Planning
1. Risk Analysis
2. Test Estimation
3. Test Planning
4. Test Organization
• Execution
1. Test Monitoring and Control
2. Issue Management
3. Test Report and Evaluation

Q5: Discuss GUI testing.


KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Ans: GUI testing is defined as the process of testing the system's Graphical User Interface of the
Application Under Test. GUI testing involves checking the screens with the controls like menus,
buttons, icons, and all types of bars - toolbar, menu bar, dialog boxes, and windows, etc.

GUI is what the user sees. A user does not see the source code. The interface is visible to the
user. Especially the focus is on the design structure, images that they are working properly or
not.

Q6: What are Test cases, Test suit and test oracle?

Ans: A test case is a specification of the inputs, execution conditions, testing procedure, and
expected results that define a single test to be executed to achieve a particular software
testing objective, such as to exercise a particular program path or to verify compliance with a
specific requirement

A test suite, less commonly known as a 'validation suite', is a collection of test cases that are
intended to be used to test a software program to show that it has some specified set of
behaviors.

A test oracle, or just oracle, is a mechanism for determining whether a test has passed or failed.
Oracles often operate separately from the system under test..

Q7: Differentiate static and dynamic slicing.

Ans; Slicing or program slicing is a technique used in software testing which takes a slice or a
group of program statements in the program for testing particular test conditions or cases and
that may affect a value at a particular point of interest. It can also be used for the purpose of
debugging in order to find the bugs ore easily and quickly

1. Static slicing:
• A static slice of a program contains all statements that may affect the value of a variable at
any point for any arbitrary execution of the program.
• Static slices are generally larger.
• It considers every possible execution of the program.
2. Dynamic slicing:
• A dynamic slice of a program contains all the statements that actually affect the value of a
variable at any point for a particular execution of the program.
• Dynamic slices are generally smaller.
• Considers only a particular execution of the program.
_________________________________________________________
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Q2 (a) Discuss black box, white box black box and gray box testing?

S.No. Black Box Testing White Box Testing Grey Box Testing

1 Knowledge of Knowledge of internal Partially Knowledge of the


internal working working structure internal working structure is
structure (Code) is (Coding of software) is required.
not required for this necessarily required for
type of testing. Only this type of testing.
GUI (Graphical User
Interface) is required
for test cases.

2 Black Box Testing is White Box Testing is Grey Box Testing is also
also known as also known as known as translucent testing
functional testing, structural testing, clear as the tester has limited
data-driven testing, box testing, code-based knowledge of coding.
and closed box testing, and transparent
testing. testing.

3 The approach White Box Testing is If the tester has knowledge


towards testing proceeded by verifying of coding, then it is
includes trial the system boundaries proceeded by validating data
techniques and error and data domains domains and internal system
guessing method inherent in the software boundaries of the software.
because tester does as there is no lack of
not need knowledge internal coding
of internal coding of knowledge.
the software.

4 The testing space of The testing space of The testing space of tables
tables for inputs tables for inputs (inputs for inputs (inputs to be used
(inputs to be used for to be used for creating for creating test cases) is
creating test cases) is test cases) is less as smaller than Black Box and
pretty huge and compared to Black Box White Box testing.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

largest among all testing.


testing spaces.

5 It is very difficult to It is simple to discover Difficult to discover the


discover hidden hidden errors because hidden error. Might be found
errors of the software it can be due to internal in user level testing.
because errors can be working which is
due to internal deeply explored in
working which is White Box testing.
unknown for Black
Box testing.

6 It is not considered It is well suitable and It is not considered for


for algorithm testing. recommended for algorithm testing.
algorithm testing.

7 Time consumption in White Box testing Test cases designing can be


Black Box testing takes a long time to done in a short time period.
depends upon the design test cases due to
availability of the lengthy code.
functional
specifications.

8 Tester, developer and Only tester and Tester, developer and the
the end user can be developer can be a part end user can be the part of
the part of testing. of testing; the end user testing.
can not involve.

9 It is the least time- The entire testing less time consuming than
consuming process process is the most White Box testing.
among all the testing time consuming among
processes. all the testing
processes.

10 Resilience and Resilience and security Resilience and security


KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

security against viral against viral attacks are against viral attacks are not
attacks are covered not covered under covered under Grey Box
under Black Box White Box testing. testing.
testing.

11 The base of this The base of this testing Testing based on high-level
testing is external is coding which is database diagrams and
expectations internal responsible for internal dataflow diagrams.
behavior is unknown. working.

12 It is less exhaustive It is most exhaustive Partly exhaustive; depends


than White Box and between Black Box upon the type of test cases
Grey Box testing and Grey Box testing are coding based or GUI
methods. methods. based.

Q2(b) explain bva in testing


Ans: In software testing, the Boundary Value Analysis (BVA) is a black box test design
technique based on test cases. This technique is applied to see if there are any bugs at the
boundary of the input domain. Thus, with this method, there is no need of looking for these
errors at the center of this input.

BVA helps in testing the value of boundary between both valid and invalid boundary partitions.
With this technique, the boundary values are tested by the creation of test cases for a particular
input field.
The extreme ends or boundary partitions might depict the values of lower-upper, start-end,
maximum-minimum, inside-outside etc.

In general, the BVA technique comes under the Stress and Negative Testing.

This technique is an easy, quick and brilliant way to catch any input errors that might occur to
interrupt the functionality of a program.

So, to save their time and to cut the testing procedure short, the experts delivering software
testing and quality management services rely on the Boundary Value Analysis method.

For testing of data related to boundaries and ranges, the method is considered as a very suitable
one.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

An Example of Boundary Value Analysis:


Consider the testing of a software program that takes the integers ranging between the values of -
100 to +100. In such a case, three sets of the valid equivalent partitions are taken, which are – the
negative range from -100 to -1, zero (0), and the positive range from 1 to 100.
Each of these ranges has the minimum and maximum boundary values. The Negative range has a
lower value of -100 and the upper value of -1. The Positive range has a lower value of 1 and the
upper value of 100
While testing these values, one must see that when the boundary values for each partition are
selected, some of the values overlap. So, the overlapping values are bound to appear in the test
conditions when these boundaries are checked.
These overlapping values must be dismissed so that the redundant test cases can be eliminated.
So, the test cases for the input box that accepts the integers between -100 and +100 through BVA
are:
• Test cases with the data same as the input boundaries of input domain: -100 and +100 in our
case.
• Test data having values just below the extreme edges of input domain: -101 and 99
• Test data having values just above the extreme edges of input domain: -99 and 101

With this technique, it is quite easy to test a small set of data in place of testing the whole lot of
data sets. This is why, in software testing and quality management services, this method of
testing is adopted more often

Q2(C) What is regression testing? When and how it is performed?


Ans: Most of the bugs found in the production environment occur because of the changes did or
bugs fixed at the eleventh hour i.e. the changes done at a later stage. The bug fix at the last stage
might create other issues/bugs in the Product. That’s why Regression checking is very important
before releasing a Product.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Regression testing is a type of testing that is done to verify that a code change in the software
does not impact the existing functionality of the product. This is to make sure the product works
fine with new functionality, bug fixes or any change in the existing feature. Previously executed
test cases are re-executed in order to verify the impact of change.

Regression Testing is a Software Testing type in which test cases are re-executed in order to
check whether the previous functionality of the application is working fine and the new changes
have not introduced any new bugs.

This test can be performed on a new build when there is a significant change in the original
functionality that too even in a single bug fix.
Regression means retesting the unchanged parts of the application.

Regression testing is usually performed after verification of changes or new functionality. But
this is not the case always. For the release that is taking months to complete, regression tests
must be incorporated in the daily test cycle. For weekly releases, regression tests can be
performed when the functional testing is over for the changes.

Given below are the various steps involved in performing this testing:
• Prepare a Test suite for Regression considering the points mentioned in “How to select
Regression Test suite”?
• Automate all the test cases of the test suite.
• Update the Regression suite whenever it is required like if any new defect which is not
covered in the test case is found, and a test case for the same should be updated in the test
suite so that the testing is not missed for the same next time. The regression test suite
should be managed properly by continuously updating the test cases.
• Execute the Regression test cases whenever there is any change in the code, the bug is
fixed, new functionality is added, an enhancement to the existing functionality is done
etc.
• Create a test execution Report which includes the Pass/Fails status of the executed test
cases.

Q2(d) Explain STLC in details.


Ans:

Software Testing Life Cycle (STLC) is the testing process which is executed in systematic and
planned manner. In STLC process, different activities are carried out to improve the quality of
the product. Let’s quickly see what all stages are involved in typical Software Testing Life Cycle
(STLC).
Following steps are involved in Software Testing Life Cycle (STLC). Each step is have its own
Entry Criteria and deliverable.
• Requirement Analysis
• Test Planning
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

• Test Case Development


• Environment Setup
• Test Execution
• Test Cycle Closure
Ideally, the next step is based on previous step or we can say next step cannot be started unless
and until previous step is completed. It is possible in the ideal situation, but practically it is not
always true.

What is Entry and Exit Criteria?

• Entry Criteria: Entry Criteria gives the prerequisite items that must be completed before
testing can begin.
• Exit Criteria: Exit Criteria defines the items that must be completed before testing can be
concluded

Q2(e) what is web testing? list the goals of quality process.

Ans: Web testing is the name given to software testing that focuses on web applications.
Complete testing of a web-based system before going live can help address issues before the
system is revealed to the public. Issues may include the security of the web application, the basic
functionality of the site, its accessibility to handicapped users and fully able users, its ability to
adapt to the multitude of desktops, devices, and operating systems, as well as readiness for
expected traffic and number of users and the ability to survive a massive spike in user traffic,
both of which are related to load testing.

Quality management systems are really just about one thing: quality. But assuring quality in your
products and services has a nice ripple effect of increasing customer satisfaction and keeping
them coming back for more. With a well-designed quality management system, your company
can identify problems and help improve output quality to better meet the needs of its customers.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

The goals and objectives a company defines for a quality management system are like any other
goals: they have to be clear, achievable and measurable. A clear goal is one that addresses a
specific objective from the company's strategic plan. For example, if the company's goal is to
secure an ISO 9001 (ASQ/ANSI/ISO 9001:2015) accreditation, then the goal should set out all
the steps that are needed to achieve the criteria for this certification.
_________________________________________________________________________

Q3 (a) Difference between verification and validation.


Ans:
Verification Validation
1. Verification is a static practice of
1. Validation is a dynamic mechanism of
verifying documents, design, code and
validating and testing the actual product.
program.
2. It does not involve executing the code. 2. It always involves executing the code.
3. It is human based checking of 3. It is computer based execution of
documents and files. program.
4. Verification uses methods like 4. Validation uses methods like black box
inspections, reviews, walkthroughs, and (functional) testing, gray box testing, and
Desk-checking etc. white box (structural) testing etc.
5. Validation is to check whether software
5. Verification is to check whether the
meets the customer expectations and
software conforms to specifications.
requirements.
6. It can catch errors that validation cannot 6. It can catch errors that verification
catch. It is low level exercise. cannot catch. It is High Level Exercise.
7. Target is requirements specification,
7. Target is actual product-a unit, a module,
application and software architecture, high
a bent of integrated modules, and effective
level, complete design, and database
final product.
design etc.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

8. Verification is done by QA team to


8. Validation is carried out with the
ensure that the software is as per the
involvement of testing team.
specifications in the SRS document.
9. It generally comes first-done before
9. It generally follows after verification.
validation.

Q3(b) Write short note on Walkthrough and Code Inspection.


Ans: Code Walkthrough is a form of peer review in which a programmer leads the review
process and the other team members ask questions and spot possible errors against development
standards and other issues.
• The meeting is usually led by the author of the document under review and attended by
other members of the team.
• Review sessions may be formal or informal.
• Before the walkthrough meeting, the preparation by reviewers and then a review report
with a list of findings.
• The scribe, who is not the author, marks the minutes of meeting and note down all the
defects/issues so that it can be tracked to closure.
• The main purpose of walkthrough is to enable learning about the content of the
document under review to help team members gain an understanding of the content of
the document and also to find defects.

Inspection Walkthrough
Formal Informal
Initiated by the project team Initiated by the author
Planned meeting with fixed roles assigned to all Unplanned.
the members involved
Reader reads the product code. Everyone Author reads the product code and his team
inspects it and comes up with defects. mate comes up with defects or suggestions
Recorder records the defects Author makes a note of defects and suggestions
offered by team mate
Moderator has a role in making sure that the Informal, so there is no moderator
discussions proceed on the productive lines
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Inspection: is used to verify the compliance of the product with specified standards and
requirements. It is done by examining, comparing the product with the designs, code,
facts and any other documentation available. It needs proper planning and overviews are
done on the planning to ensure that inspections are held properly. Lots of preparations are
needed, meetings are held to do inspections and then on the basis of the feedback of the
inspection, rework is done.
Inspection is deserving method with careful consideration of an organization, which
concerns about the quality of the product. The process is being done by the quality
control department.
Inspection is a disciplined practice for correcting defects in software artifacts.

Q4(a) Explain Decision table based testing with an example.

Ans: Decision table testing is a software testing technique used to test system behavior for
different input combinations. This is a systematic approach where the different input
combinations and their corresponding system behavior (Output) are captured in a tabular form.
That is why it is also called as a Cause-Effect table where Cause and effects are captured for
better test coverage.

A Decision Table is a tabular representation of inputs versus rules/cases/test conditions.

For example: A bookstore get a trade discount of 25% for order more then 6 books; for order
from libraries and individuals, 5% allowed on orders of 6-19 copies per book title; 10% on
orders for 20-49 copies per book title; 15% on orders for 50 copies or more per book title.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Q4(b) Explain Cyclomatic complexity with its significance.

Ans: Cyclomatic complexity of a code section is the quantitative measure of the number of
linearly independent paths in it. It is a software metric used to indicate the complexity of a
program. It is computed using the Control Flow Graph of the program. The nodes in the graph
indicate the smallest group of commands of a program, and a directed edge in it connects the two
nodes i.e. if second command might immediately follow the first command.
For example, if source code contains no control flow statement then its cyclomatic complexity
will be 1 and source code contains a single path in it. Similarly, if the source code contains one if
condition then cyclomatic complexity will be 2 because there will be two paths one for true and
the other for false.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Mathematically, for a structured program, the directed graph inside control flow is the edge
joining two basic blocks of the program as control may pass from first to second.
So, cyclomatic complexity M would be defined as,
M = E – N + 2P
where,
E = the number of edges in the control flow graph
N = the number of nodes in the control flow graph
P = the number of connected components

Steps that should be followed in calculating cyclomatic complexity and test cases design are:
• Construction of graph with nodes and edges from code.
• Identification of independent paths.
• Cyclomatic Complexity Calculation
• Design of Test Case

Let a section of code as such:

A = 10
IF B > C THEN
A=B
ELSE
A=C
ENDIF
Print A
Print B
Print C
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

The cyclomatic complexity calculated for above code will be from control flow graph. The
graph shows seven shapes(nodes), seven lines(edges), hence cyclomatic complexity is 7-
7+2 = 2.

Q5: What are the different methodologies for Integration testing?


Ans: ntegration testing is the process of testing the interface between two software units or
module. It’s focus on determining the correctness of the interface. The purpose of the integration
testing is to expose faults in the interaction between integrated units. Once all the modules have
been unit tested, integration testing is performed.

Integration test approaches –


There are four types of integration testing approaches. Those approaches are the following:
1. Big-Bang Integration Testing –
It is the simplest integration testing approach, where all the modules are combining and verifying
the functionality after the completion of individual module testing. In simple words, all the
modules of the system are simply put together and tested. This approach is practicable only for
very small systems. If once an error is found during the integration testing, it is very difficult to
localize the error as the error may potentially belong to any of the modules being integrated. So,
debugging errors reported during big bang integration testing are very expensive to fix.
Advantages:
• It is convenient for small systems.
Disadvantages:
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

• There will be quite a lot of delay because you would have to wait for all the modules to be
integrated.
• High risk critical modules are not isolated and tested on priority since all modules are
tested at once.
2. Bottom-Up Integration Testing –
In bottom-up testing, each module at lower levels is tested with higher modules until all modules
are tested. The primary purpose of this integration testing is, each subsystem is to test the
interfaces among various modules making up the subsystem. This integration testing uses test
drivers to drive and pass appropriate data to the lower level modules.
Advantages:
• In bottom-up testing, no stubs are required.
• A principle advantage of this integration testing is that several disjoint subsystems can be
tested simultaneously.
Disadvantages:
• Driver modules must be produced.
• In this testing, the complexity that occurs when the system is made up of a large number of
small subsystem.
3. Top-Down Integration Testing –
Top-down integration testing technique used in order to simulate the behaviour of the lower-
level modules that are not yet integrated.In this integration testing, testing takes place from top to
bottom. First high-level modules are tested and then low-level modules and finally integrating
the low-level modules to a high level to ensure the system is working as intended.
Advantages:
• Separately debugged module.
• Few or no drivers needed.
• It is more stable and accurate at the aggregate level.
Disadvantages:
• Needs many Stubs.
• Modules at lower level are tested inadequately.
4. Mixed Integration Testing –
A mixed integration testing is also called sandwiched integration testing. A mixed integration
testing follows a combination of top down and bottom-up testing approaches. In top-down
approach, testing can start only after the top-level module have been coded and unit tested. In
bottom-up approach, testing can start only after the bottom level modules are ready. This
sandwich or mixed approach overcomes this shortcoming of the top-down and bottom-up
approaches. A mixed integration testing is also called sandwiched integration testing.
Advantages:
• Mixed approach is useful for very large projects having several sub projects.
• This Sandwich approach overcomes this shortcoming of the top-down and bottom-up
approaches.
Disadvantages:
• For mixed integration testing, require very high cost because one part has Top-down
approach while another part has bottom-up approach.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

• This integration testing cannot be used for smaller system with huge interdependence
between different modules.
Q5(b) write short note on
I. Tools for regression testing
II. Progression testing
Ans: Regression testing is a type of testing that is done to verify that a code change in the
software does not impact the existing functionality of the product. This is to make sure the
product works fine with new functionality, bug fixes or any change in the existing
feature. Previously executed test cases are re-executed in order to verify the impact of change.

Regression Testing is a Software Testing type in which test cases are re-executed in order to
check whether the previous functionality of the application is working fine and the new changes
have not introduced any new bugs.

Before implementing regression testing, software developers should follow these steps
Step 1: Identify the need and components. ...
Step 2: Set requirements for testing. ...
Step 3: Develop entry criteria for regression testing. ...
Step 4: Develop exit criteria for regression testing. ...
Step 5: Follow a schedule

Here is the list of the Best Regression testing tools:


• Ranorex Studio.
• Katalon Studio.
• SahiPro.
• Selenium.
• Watir.
• TestComplete.
• IBM Rational Functional Tester.
• TimeShiftX

Progression testing: Progression Testing is nothing but, test the application with Old Test
Data. Progression tests used in the current release would roll into regression tests for future
releases. The purpose of this task is to run the system with existing test cases that were
retained from the system tests.
Progressive testing also known as incremental testing is used to test modules one after the other.
When an application with a hierarchy such as parent-child module is being tested, the related
modules would need to be tested first.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

This progressive approach testing method has three approaches:


• Top-down Approach
• Bottom-up Approach
• Hybrid Approach
Q6(a) Explain the exploratory testing and worst case testing

Ans: Exploratory testing is all about discovery, investigation, and learning. It emphasizes
personal freedom and responsibility of the individual tester. It is defined as a type of testing
where Test cases are not created in advance but testers check system on the fly. They may note
down ideas about what to test before test execution. The focus of exploratory testing is more on
testing as a "thinking" activity.

Under scripted testing, you design test cases first and later proceed with test execution. On the
contrary, exploratory testing is a simultaneous process of test design and test execution all done
at the same time.

Scripted Test Execution is usually a non-thinking activity where testers execute the test steps and
compare the actual results with expected results. Such test execution activity can be automated
does not require many cognitive skills.

Worst Case Testing:

If we reject our basic assumption of single fault assumption theory and focus on what happens
when we reject this theory-it simply means that we want to see that what happens when more
than one variable has an extreme value. In electronic circuit analysis, this is called as “worst-case
analysis”. We use this idea here to generate worst-case test cases.
For each variable, we start with the five-element set that contains the min, min+, nom, max-, and
max values. We then take the Cartesian product of these sets to generate test cases.
Guidelines for BVA:
1) The normal versus robust values and the single fault versus the multiple-fault assumption
theory result in better ttjung. These methods can be applied to both input and output domain of
any program.
2) Robustness testing is a good choice for testing internal variables.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

3) We must bear in mind that we can create extreme boundary results from non-extreme input
values.

Q6 (b) Explain following

I. Software testing tools


II. Software test plan

Ans: Software testing tools - The Test Manager is an automated software testing tool is used in
day to days testing activities. The Java programming language is used to develop this tool. Such
Test Management tools are used to facilitate regular Software Development activities, automate
& mange the testing activities. Some tools are:-

• Selenium. Selenium is a testing framework to perform web application testing across various
browsers and platforms like Windows, Mac, and Linux. ...
• TestingWhiz.
• HPE Unified Functional Testing (HP – UFT formerly QTP)
• TestComplete.
• Ranorex.
• Sahi.
• Watir
• Tosca Testsuite.

Software test plan: A document describing the scope, approach, resources and schedule
of intended test activities. It identifies amongst others test items, the features to be tested,
the testing tasks, who will do each task, degree of tester independence, the test
environment, the test design techniques and entry and exit criteria to be used, and the
rationale for their choice, and any risks requiring contingency planning. It is a record of
the test planning process.

• master test plan: A test plan that typically addresses multiple test levels.
• phase test plan: A test plan that typically addresses one test phase
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

Q7(a) Explain Load testing and smoke testing with example.

Ans: Load testing is a type of non-functional testing. A load test is type of software
testing which is conducted to understand the behavior of the application under a specific
expected load. Load testing is performed to determine a system’s behavior under both
normal and at peak conditions.

Load testing one among the different kinds of performance testing that determines the
performance of the system in real time load conditions. It is basically used to ensure that
the application performs satisfactorily when many users try to access or use it at the same
time.

• Load testing can be done under controlled lab conditions to compare the capabilities of
different systems or to accurately measure the capabilities of a single system.
• Load testing involves simulating real-life user load for the target application. It helps you
determine how your application behaves when multiple users hits it simultaneously.
• Load testing differs from stress testing, which evaluates the extent to which a system
keeps working when subjected to extreme workloads or when some of its hardware or
software has been compromised.
• The primary goal of load testing is to define the maximum amount of work a system can
handle without significant performance degradation.

Smoke testing:

SMOKE TESTING, also known as “Build Verification Testing”, is a type of software testing
that comprises of a non-exhaustive set of tests that aim at ensuring that the most important
functions work. The result of this testing is used to decide if a build is stable enough to proceed
with further testing.
The term ‘smoke testing’, it is said, came to software testing from a similar type of hardware
testing, in which the device passed the test if it did not catch fire (or smoked) the first time it was
turned on.
Smoke testing covers most of the major functions of the software but none of them in depth. The
result of this test is used to decide whether to proceed with further testing. If the smoke test
passes, go ahead with further testing. If it fails, halt further tests and ask for a new build with the
required fixes. If an application is badly broken, detailed testing might be a waste of time and
effort.
Smoke test helps in exposing integration and major problems early in the cycle. It can be
conducted on both newly created software and enhanced software. Smoke test is performed
manually or with the help of automation tools/scripts. If builds are prepared frequently, it is best
to automate smoke testing.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

As and when an application becomes mature, with addition of more functionalities etc, the
smoke test needs to be made more expansive. Sometimes, it takes just one incorrect character in
the code to render an entire application useless.

Advantages

• It exposes integration issues.


• It uncovers problems early.
• It provides some level of confidence that changes to the software have not adversely
affected major areas (the areas covered by smoke testing, of course)

Q7(b) Explain Deployment testing and Beta testing.

Ans: Testing a software project before and after deploying it on production is not that difficult.
But too often, major bugs appear on production server after the deployment process. To avoid
situations in which your production environment is threatened by these bugs, you should use a
streamlined deployment and testing flow.

Generally speaking, this flow consists of three phases: pre-deploy, deploy and post-deploy.

During the Pre-Deploy testing phase, both the development team and the QA engineer should be
tasked with the following items:

Ask developers to make Production and Stage environment backups.

Ask developers to copy database from Production to Stage.

Announce a Code Freeze for the entire development team.

Retest new features and bug fixes.

Perform general smoke testing using checklists.

Report all bugs, categorizing them with a consistent metric for urgency.

Test urgent bug fixes and engage in regression testing of this functionality.

When Stage is tested and has no major and/or minor bugs (depending on the project), —
announce deployment.

When the QA engineer announces the Code Freeze, developers cannot push, commit, or deploy
anything. But they can still continue working on their local environment, so no time is wasted.
KIET Group of Institutions, Ghaziabad
Department of Computer Applications (NBA Accredited)
(An ISO – 9001: 2015 Certified & ‘A’ Grade accredited Institution by NAAC)

When the Code Freeze is cancelled, developers can push, commit, and deploy their work to
Stage.

After finishing the pre-deploy testing cycle, the manager has to approve the deploy process
before the developer who is responsible for this process puts it into motion. Having one
developer be responsible for deploys is always beneficial, as it avoids misunderstandings like
incorrectly merged

In software development, a beta test is the second phase of software testing in which a sampling
of the intended audience tries the product out. Beta is the second letter of the Greek alphabet.
... Beta testing is also sometimes referred to as user acceptance testing (UAT) or end user testing.

Beta Testing of a product is performed by "real users" of the software application in a "real
environment" and can be considered as a form of external User Acceptance Testing.

Beta version of the software is released to a limited number of end-users of the product to obtain
feedback on the product quality. Beta testing reduces product failure risks and provides increased
quality of the product through customer validation.

It is the final test before shipping a product to the customers. Direct feedback from customers is a
major advantage of Beta Testing. This testing helps to tests the product in customer's
environment.

You might also like