SW Testing and QA Take Home Exam Answers
SW Testing and QA Take Home Exam Answers
You need to develop proper report showing how to apply testing techniques
to the case study mentioned above following the guidance introduced in the
“Introduction to Software Testing” book. You need to demonstrate how to
apply the following techniques on your chosen artifact that can be used.
1 Introduction
Level 2 The purpose of testing is to show that the software doesn’t work.
The Tester wants to see the possible errors before the software is launched to
avoid any low feedback from the customers. It may be look a negative goal for
the developers but it’s a valid one.
Level 3 The purpose of testing is not to prove anything specific, but to reduce the
risk of using the software.
This lets us accept the fact that whenever we use software, we incur some risk.
The risk may be small and the consequences unimportant, or the risk may be
great and the consequences catastrophic, but risk is always there.
This allows testers and developers to realize that the entire team wants the
same thing which is to reduce the risk of using the software. In level 3 testing,
both testers and developers work together to reduce risk.
2. Graph Coverage
2.1 Overview
Several coverage criteria are built on the foundation of directed graphs. The
goal is to obtain a graph abstraction of an artefact that is being tested. For
instance, the most popular source code graph abstraction transforms the code
into a control flow graph.
Test cases for the artifact are mapped to paths in the graph using the same
abstraction that creates the graph from the artefact. Considering all this, a
graph-based coverage criterion assesses a test set for an artefact in terms of
how the test cases' related pathways "cover" the graph abstraction of the
artifacts.
It starts by defining criteria to visit every node and then every edge in a graph.
The notation initially appears to make the criteria more difficult to understand,
but in the end, it makes following criteria clearer and more mathematically
accurate, preventing confusion with more complex cases.
Most of the graph coverage criteria were developed for source code.
We first consider structural coverage criteria and then data flow criteria.
Tests based on control connections between design elements are clear and
relatively simple, and they are probably not very good at identifying flaws. Yet,
data flow connections are frequently very complex and hard to understand.
The primary issue is where the defs and uses occur. When testing program
units, the defs and uses are in the same unit. During integration testing, defs
and uses are in different units. This section starts with some standard
compiler/program analysis terms.
Software specifications are another source for graphs that testers can use.
Many different methods for creating graphs and criteria for covering those
graphs are presented in the literature, but most of them are actually rather
similar.
We begin by looking at graphs based on sequencing constraints among
methods in classes, then graphs that represent state behavior of software.
2.5.1 Testing Sequencing Constraints.
2.7.4 Counting Paths in a Flow Graph and Determining Max Path Length.
can be used as a basic estimate of the number of tests required to cover
the graph or as a simple complexity metric. The computation of the
maximum number of paths is made possible by the path expressions, which
allow for simple arithmetic.
It is important to remember that these analyses do not include a feasibility
analysis. Some paths may be infeasible, so this should be interpreted as an
upper, or conservative, bound on the number of paths.
3 Logic Coverage
3.1 Overview: Logic Predicates and Clauses.
6.3.5 Implementation.
6.3.6 Integration.
6.3.7 System Deployment.
6.3.9 Summary.
6.4 Test Plans.
Q1. You need to develop proper report showing Software Quality Factors for the
case study mentioned above following the guidance introduced in the “Software
Quality Concepts and Practice” book.
Correctness:
o Related to the outputs of OpenCart’s System such as the
display of the customer’s information or the prices of the
products in the store or the balance of the shop owner and
all the vital procedure that are required from the system.
o A specification is required for each output (system function) which
are:
The Probability of non-accurate inventory information does
not exceed 1%.
The probability of any missing data does not exceed 1%.
Data up to date information of the platform not more than one
day.
The required response time on any command or procedure on
the OpenCart platform does not exceed 10 seconds.
Reliability:
o Deals with failure to provide the services such as server
crashing or compromising with any way that stops the
OpenCart platform.
o Its required that the software does not crash by any way at
least on its first 12 months of launch or has any infiltration
by any means regarding the operation of the platform or the
customers or merchants private records or information.
Efficiency:
o The hardware resources and software requirements to
achieve OpenCart operations in its best state must be
fulfilled.
o OpenCart has certain technical requirements for the
software to operate properly.
The software must be uploaded to a web server, which
will make the store publicly available on the web.
When selecting a hosting service, an Apache server is
recommended.
a database server that supports MySQLi, PDO, or
PostgreSQL. (MySQLi is recommended if possible.)
Finally, you will need to have the following PHP
libraries installed in your PHP configuration:
PHP 8.0 or later
Curl
GD Library
Iconv
Mbstring
OpenSSL Encrypt
ZipArchive
Zlib
Integrity:
o OpenCart software security must be guaranteed:
Prevent unauthorized access to the platform.
Distinguish between users with different authorization
access to the platform (Admins, Users, Customers,
Merchants, Store and Shop owners.)
Be able to deal with any attempts to destroy any
information (Viruses) and be able to prevent and also
destroy them.
Usability:
o It is required that there is a way of teaching any new user to
the interface of the platform and facilitate the user
experience as much as possible.
o A 24-hour Customer Service team handles all the
requirements of the users.
o Periodically take feedback from all types of users of the
OpenCart platform to be able to update and change to the
better.
2.Product revision software quality factors:
Maintainability:
o A software module can contain no more than 30
statements.
o The programming will follow the coding standards
and policies of the firm.
Flexibility:
o The software should be suitable for users of all types
(Admins, customers, Shop owners and Merchants).
o Non-professionals should be able to use OpenCart to
create new types of reports according to the admin
requirements.
Testability:
o delivering log files and predefined outcome variables
of the platform.
o Before starting the system, the software system runs
an automatic diagnostic to check that all of its parts
are functioning properly and to create an overview on
any errors that were found.
Portability:
o The Platform can work on several types of operating
systems beginning from windows 9.
o The Platform can work on several types of devices
such as mobile phone, tablet, workstations.
Reusability:
o The Platform Requires to log in or sign up first to be
able to access the software.
o Billing module.
o Delivery Orders tracking.
Interoperability:
o creating interfaces to other software systems or
equipment firmware (for example, the firmware of
the Delivery interface and testing equipment
interfaces with the production control software).