You are on page 1of 4

BAHRIA UNIVERSITY (KARACHI CAMPUS)

MIDTERM EXAMINATION –SPRING SEMESTER – 2020


(Software Testing)

Take Home Assignment

Class: BS (IT) – 7 (Evening)


Course Instructor: Sumeera Hashmi Submission Deadline: 31-May-2020 Max Marks: 20

Question 1 (5 marks)
Consider all the following Test Metrics and explain briefly, the information that is
represented by them and how it will be used for analysis by executive management
committee:
I. Test Design Coverage = ((Total number of requirements mapped to test cases) / (Total
number of requirements)*100.
II. Test Case Preparation Productivity = (No of Test Case)/ (Effort spent for Test Case
Preparation)
III. (No of Test cases executed)/ (Effort spent for execution of test cases)
IV. Test Execution Coverage = (Total no. of test cases executed / Total no. of test cases
planned to execute)*100

Question 2 (5 marks)
Consider the following requirement and create test case using all the required field:

Banking use case Requirement

Bill Payment This use case describes how a customer can login into net
banking and use the Bill Payment Facility.

The customer will can see a dashboard of outstanding bills


of registered billers. He can add, modify, and delete a biller
detail. The customer can configure SMS, email alerts for
different billing actions. He can see history of past paid
bills.

The actors starting this use case are bank customers or

Page 1 of 4
support personnel

Question 3 (10 marks)


I. Describe briefly the positive effect of using program dependence graph, use
examples to explain your answer.

The PDG represents a program as a graph in which the nodes are statements and
predicate expressions (or operators and operands) and the edges incident to a node
represent both the data values on which the node’s operations depend and the control
conditions on which the execution of the operations depends. Nodes representing
statements and predicates are sufficient for some transformations such as vectorization
and simplify our illustrations in this paper. For almost all other optimizing
transformations, nodes represent operators and operands. The set of all dependences for
a program may be viewed as inducing a partial ordering on the statements and
predicates in the program that must be followed to preserve the semantics of the
original program. Dependences arise as the result of two separate effects. First, a
dependence exists between two statements whenever a variable appearing in one
statement may have an incorrect value if the two statements are reversed. For example,
given A=B*C Sl D=A*E+l s2 S2 depends on Sl, since executing S2 before Sl would
result in S2 using an incorrect value for A. Dependences of this type are &&a
dependences. Second, a dependence exists between a statement and the predicate whose
value immediately controls the execution of the statement. In the sequence if (A) then
B=C*D :; endif S2 depends on predicate A since the value of A determines whether S2
is executed. Dependences of this type are control dependences. In presenting the
construction of the PDG below, we emphasize the construction of the control
dependence subgraph. Control flow analysis is used in building the control dependence
subgraph. We show methods to compute the exact control dependences and then
present an approximation that preserves more of the original control flow structure. The
construction of the data dependence subgraph is based on previous work [36, 37, 411.
Data flow analysis is used to compute the sets of definitions that reach each basic block
for use in building the data dependence subgraph. We also show how aliasing and side
effects are accommodated in the PDG. The remaining subsections discuss the variety of
program views supported by the PDG and some practical considerations.

Page 2 of 4
II. Briefly explain following terms:
a. Cucumber testing and its uses
A cucumber is a tool based on Behavior Driven Development (BDD) framework
which is used to write acceptance tests for the web application. It allows
automation of functional validation in easily readable and understandable
format (like plain English) to Business Analysts, Developers, Testers,
etc.Cucumber feature files can serve as a good document for all. There are
many other tools like JBe have which also support BDD framework. Initially,
Cucumber was implemented in Ruby and then extended to Java framework.
Both the tools support native JUnit.Behavior Driven Development is an
extension of Test Driven Development and it is used to test the system rather
than testing the particular piece of code. We will discuss more the BDD and
style of writing BDD tests.

Advantages of Cucumber

1. It is helpful to involve business stakeholders who can't easily read


code
2. Cucumber Testing focuses on end-user experience
3. Style of writing tests allow for easier reuse of code in the tests
4. Quick and easy set up and execution
5. Efficient tool for testing

b. mabl testing tool


Mabl delivers scriptless end-to-end test automation, integrated with your delivery
pipeline, so you can focus on improving your app. Using proprietary machine learning
models, mabl automatically identifies and surfaces application issues quickly, so you
can:

1. Fix bugs fast – Robust test output helps you diagnose and fix bugs fast before
they impact your customers.
2. Ship more code – Tests are automatically repaired when your UI changes so
you can spend less time maintaining tests.
3. Maintain quality – Prevent bad releases with automated regression insights on
every build

Features of mabl

Scale

Run your functional UI tests across all major browsers, in parallel, in the cloud, with no
operations overhead. Onboard your teams quickly and start creating robust tests in
minutes. Fix issues faster with better issue reporting across your teams.

Page 3 of 4
Trust

Auto-healing tests keep your tests stable despite changes to your app UI. No more
flippant test results. Tests are always executed securely, and your data is never put at
risk.

Intelligence

Test the holistic quality of your application, from user experience to visual design, to
performance, with a single platform of curated data from all aspects of your
application.

Advantages of mabl

1. Improve compliance and risk management


2. Improve business process outcomes
3. Drive innovation
4. Improve business process agility
5. Strong customer focus
6. Product functionality and performance
7. Product roadmap and future vision

Page 4 of 4

You might also like