Professional Documents
Culture Documents
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.
developer.
Most of the testing can be done without Debugging can’t be done without proper
design knowledge. design knowledge.
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.
• 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
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..
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
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.
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)
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.
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.
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)
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
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.
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)
• 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
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.
_________________________________________________________________________
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.
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.
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)
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
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.
• 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
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)
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.
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.
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)
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
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:
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.