Professional Documents
Culture Documents
CT079-3-M-SQE - Software Quality Engineering - Hi-Tech - Assignment Part 2
CT079-3-M-SQE - Software Quality Engineering - Hi-Tech - Assignment Part 2
net/publication/332590918
CITATIONS READS
0 1,434
1 author:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Ali Fathi Ali Sawehli on 23 April 2019.
CT079-3-M-SQE
UCMF1808BSE
HAND OUT DATE: 14-January-2019
WEIGHTAGE: 50%
INSTRUCTIONS TO CANDIDATES:
Page 2 of 28
3.2 Product Metrics .................................................................................................. 13
References .................................................................................................................... 26
Appendix ...................................................................................................................... 28
Turnitin .................................................................................................................... 28
Page 3 of 28
1.0 Introduction
1.1 Company Background, Business Process, and Problem Statement
Hi-Tech Crop is a company that provides and develops a generic software control
system for a class of digital devices which is basically e-commerce web applications. The
company is a leading company in this area where most of its clients use this product as a
primary product. This system is considered as a big and complicated system where there are
around 20 developers, and maintenance staff is working on this project. Additionally,
customers usually receive the developed product in phased releases which typically from 9 to
12 months, and it depends on the customer’s requirements. Most of the time, these releases
significantly contain chunks of new and essential functionality to accommodate the new
advanced technology. Currently, the customers have reported several defects that they have
faced once using the products such as loss of specific service, loss of the availability as well as
encounter erroneous services. These types of defects are usually discovered once there is a new
phased release, and they are expected to be traced to a specific module and fixed as soon as
possible. All of these attempts to fix defects should be released in a subsequent release. So far,
the current system of Hi-Tech Crop has been able to meet up its main objectives with various
difficulties, but with this rapid growth of the market and its high demand, the current
development and procedure do not meet the quality standards. With all of this overwhelming
number of defects that have been received by the customers, the company is finding itself in a
bad position due to these defects. Therefore, the leading product is recently marked as
unreliable and gained a bad reputation and started getting out of the track. Because of these big
issues, the management of the Hi-Tech Crop has started looking forward to getting to the
bottom of.
As a result of these issues, the management plans to concentrate on fixing all the
reported defects quickly enough. Therefore, Hi-Tech Corp wants to have a suitable testing
strategy and procedure in order to improve their product. Also, the company wants in details
documents that critically explain a software metric for evaluating the products as well as the
calculation parts. At the same time, the company wants to have in detail a software
configuration management technique to manage the software control product.
Page 4 of 28
1.2 Scope, Amis, and Objective
1.2.1 Aims
The main aim of this study and research is to create and set up an efficient and effective
quality system to ensure and address all the future releases will have a high-quality standard.
Also, the second aim is to provide the customers with a user-friendly system and gain a high
reputation again as soon as possible. Furthermore, the study aims to eliminate all the faced
issues that are regarding the loss of availability and services and the encounters of erroneous
in the services.
1.2.2 Objectives
• Propose a suitable testing strategy and procedure for Hi-Tech Corp to improve their
products.
• Critically explain software quality metrics for evaluating Hi-Tech Corp. products.
• Discuss in detail a software configuration management technique to manage the
various software control product.
1.2.3 Assumptions
1.2.4 Constraints
• A condition that limits and stops the project such as resources or technology
limitations.
• Time constraint relates to the project’s schedule or plan, including meeting the
deadlines for each phase of the project and more.
• Cost constraint refers to the project’s budget which includes needed financial resources
to complete and finish the main task and project in time. As an example, cost
constraints for materials, quality control, vendors and more factors.
• The economic issue may impact software quality and the company. As an example, the
customers do not purchase the product due to unstable economic.
Page 5 of 28
2.0 Testing Strategy
One important key process in software engineering is software testing, and it is
necessary always to have a defined testing strategy. By doing so, the outcome of the project
and the software product can be adequately tested and verified. Therefore, this testing strategy
will certainly ensure the customer’s satisfaction by analyzing and verifying the requirements.
Also, it is crucial and essential to have a formalized software testing documented which is
provided to all relevant teams in the company, since it addresses and declares all required
aspects of testing. This document should clearly provide a vision for the testing team who is
responsible for the testing process which can be done by including the necessary testing
activities and when certain methods of testing should be performed. In this section, the new
proposed solution of software testing strategy will be discussed for Hi-Tech Corp. It will
basically contain several sections such as test approach, test actors, tests types, testing
environments, risk analysis, test planning and execution and review and approval (Abdullah,
M. Khan and R. Srivastava, 2015).
Page 6 of 28
• Reviewers.
Page 7 of 28
Identify the test input which is the
test data
Page 8 of 28
2.3.6 Production Validation
After the Hi-Tech Corp product is released to the production environment, it is
important to have a validation testing to ensure and confirm that the functionality of the product
is deployed correctly. The testers team and customers should conduct this type of test. Also, a
production validation should be executed using sample data sets. Therefore, this validation
should always be carried out by experienced testers in Hi-Tech Corp since it requires a good
knowledge of the product as well as some experience with popular build issues. If the testers
face any issue upon the deployment, they can roll-back immediately. In addition, the testers
are required to remove the test data sets upon completing the tests within the environment (S.
Pratibha Sharma, 2016).
• the Hi-Tech Corp product is completely built and deployed to either training
environment or testing environment.
• Training data sets and content have been already developed.
• The trainer has been successfully educated and Hi-Tech Corp product that will be
mainly deployed.
Page 9 of 28
Table 1: Testing Environments
Managing risks are a complementary element to software testing since the risk might be a
potential problem. Therefore, risk management includes three main stages which are
identification, analysis and respond on the identified risks.
1- Risk identification
Identifying the risk is usually performed at the software product level. Several
resources elements can be used upon identifying the risk such project objectives and
list of the faced risks from previous projects.
2- Risk Analysis
Risk analysis is an important stage, and it should be properly analyzed. In this stage,
there are two parameters that should be defined which are the risk probability and risk
impact. For both parameters, they should define a scale for risk evaluation. For
example, the scale can be from 1 to 50, where the lowest value is better and referring
to low, and the higher value points to high risk. As a result of that, these tests can be
ranked as follows:
1- A – demonstrates a high risk which is in the range of 15 to 50.
2- B – demonstrates medium risk which is in the range of 10 to 15.
Page 10 of 28
3- C – demonstrates low risk which is in the range of 0 to 10.
Acting on the discovered risk means taking risks and mitigating them based on their
ranks. There are four common actions which are risk avoidance, risk transfer, risk mitigation,
risk acceptance. Therefore, the tester team of Hi-Tech Corp should develop a comprehensive
list that contains all the potential risks. The types of risks can be like resource availability,
technical, business process, scope, and communication.
The tester team should also prioritize the risk based on both elements which are
likelihood and potential impact. Then, the tester team and quality assurance manager focus on
developing several plans that should be used to mitigate these risks (Services, C. A. and
Practice, L, 2018).
Page 11 of 28
3.0 Software Quality Metrics
3.1 Process Metrics
Processes are considered as collections or groups of activities that are related to the
software. In order to measure the process metric for Hi-Tech Corp, there should be three main
attributes which are
Also, there are several external attributes that should be taken into consideration which are
quality, cost, stability, and controllability. One of the famous models to calculate the software
cost estimation is the Constructive Cost Model “COCMO II.” This model divides the attributes
to four attributes which are:
1- Product attributes which contain the size of the application, complexity of the product
and the required reliability for the software.
2- Personal attributes which contain application and virtual machine experience, Analyst
capability, and Programming language experience.
3- Hardware attributes which contain memory constraints, run time performance
constraints.
4- Project attributes which contain the required development schedule, application of
software engineering methods (cocmo, 2018).
Therefore, Hi-Tech should use this type of models in order to measure the process. The
following screenshot shows an online website that automates the calculation of COCMO II for
us.
Page 12 of 28
Figure 2: COCMO (cocomo.com, 2018)
Page 13 of 28
There are main three parameters that should be taken in considerations which are the
function that the system performs, given environmental conditions and the amount of time.
1- Failure Classification
As the reliability concerned for Hi-Tech Corp, it is very important to have clear failure’s
classification. This classification must be comprehensive as well as it should be from the user’s
perspective since the reliability means the user’s experience. For the failure types, they can be
classified into several types which are planned events, unplanned events and configuration
failure. For the unplanned events are usually considered as the traditional failures such as
incorrect input, hang and crash, and they are caused by a bug in the software. For planned
events usually, happen when the software is shut down through a planned manager to a desired
task such as housekeeping tasks. For configuration failures, they always occur when there are
issues with the configuration settings. For configuration failures and planned events, they are
not considered as software failure; however, they impact the reliability of the user’s experience.
For Hi-Tech Corp, these failure classifications will be used in order to measure the reliability
(Carlson, C., Sarakakis, G., Groebel, D. & Mettas, A. (2018).
2- Usage Time
In order to have an accurate reliability computation for Hi-Tech Corp, the product’s usage
time by the user should be logged since it assists in calculating the actual rate of failure.
One of the available formulas to measure the reliability is by calculating the probability of
failure which is based on the available input states. The formula looks like the following
“Mean Time Between Failure “MTBF” = Mean Time To Failure “MTTF” + Mean Time To
Repair “MTTR.”
Page 14 of 28
To represent the availability, the formula should be as the following
For instance, if we have a particular software that has MTBF value is 100, and its MTTR value
is 3 hours. As a result of that, the MTBF value should be 102.
For the availability value form the above example, it should look like
Then the probability of failure will be measured through the following formula which looks
like the following:
Then, to measure the reliability, we have to use the below formula which is
Reliability = Mean Time Before Failure “MTBF” / (Mean Time To Repair “MTTR” + 1)
Portability is a software quality factor that assists in determining the degree of ease and
difficulty of a software component. It basically shows whether the software can be transferable
from one software or hardware to another. As an example, a web application is developed to
work with several browsers such as Google Chrome, Safari, and Mozilla Firefox. This web
application should work and operate properly when the user visits it through one of these
browsers (James D. Mooney, 2016).
In order to measure the portability of software, there are main four attributes that should be
integrated through the measurement. According to (ISO 29119 (2013)), these attributes are
defined as Compatibility attribute, Adaptability attribute, Install-ability attribute,
Replaceability attribute, Interoperability attribute, and Localization attribute.
1- Adaptability
For adaptability testing, it is considered a functional test that works to verify that the software
performs all the defined behaviors within the various environment. As an example, HTML
assists in order to achieve the desired adaptability (James D. Mooney, 2016).
Page 15 of 28
2- Installability
For installability testing, this attribute is measured by checking the ability to install the target
application within the intended environment. This attribute includes several tests such as
installation procedures, installation interruption, space demand and checking prerequisites.
3- Compatibility
For compatibility testing, this attribute is measured through testing the compatibility of
multiple and unrelated application within the same environment without introducing an effect
of other’s behavior. As an example, there are two sub-applications that directly share memory.
If an error occurs in one of these sub-applications, this error will affect the system which causes
a complete failure to the entire system (James D. Mooney, 2016).
4- Replicability
For Hi-Tech Corp, they have to follow around five steps when trying to measure the portability
of their e-commerce web applications. These steps are as the following:
1- For the first step, the testing team should identify and get the requirement such as what
are the environments that will have different software and hardware.
2- For the second step, the testing team should define all the test cases that should be
checked upon taking the measurements. If the tester does not get the actual result, the
test case is reported as failed.
3- For the third step, the tester is required to execute all the defined test cases.
4- For the fourth step, the tester will log all the test’s result as well as founded defects.
5- For the fifth step, the tester is requested to verify that all the discovered bugs have been
fixed by the development team.
Hi-Tech Corp has an issue with its products since they have a problem with the probability.
The customers have reported several defects when they browse application through mobile
devices. Based on that, Hi-Tech Corp will be able to address this issue by implementing a
responsive web design approach. It is a way to design a web application to have an optimal
Page 16 of 28
viewing experience which includes easier navigation and reading across several ranges of
devices which can be mobile phones, laptops, tablets, and desktop computer.
The front-end developers of Hi-Tech Corp should design the layout of the products based
on fluid, flexible images, proportion-based grids as well as CSS3 media queries. For both
developers and testers teams, they can use Google Chrome’s DevTools in order to evaluate the
portability of the product. This tool provides a feature named as Device Mode which assists in
testing the responsive web application designs as well as to debug them. This tool is not limited
only to resize the viewport, but it emulates the exact experience of the mobile device such as
touchscreen interaction. In addition, it evaluates the performance of the web application using
a feature called a network emulator which is very helpful since it gives a clear indication if
there is a bottleneck or not. Here is a screenshot of the Google Chrome’s DevTools that will
be used in portability measurement of Hi-Tech Corp.
Also, here is the main checklist that the tester team should look for upon measuring the
portability of Hi-Tech Corp products. Every new test using any browser will have the following
table.
Page 17 of 28
Table 2: Checklist for portability
The result of the above tests should be marked as a pass for all components. If there is
any mismatch, the tester team should provide a detailed report regarding these defects such as
the component name, device name, browser name and proof of concept on how to reduce the
issue.
3.2.3 Maintainability
Measuring the maintainability of Hi-Tech Corp product is very important since it assists
the software engineers to know precisely the maintainability rate and then increases and
improve the system maintainability if the rate is below the average. There are several available
models that assist the developers in calculating the maintainability. One of the famous models
that will be used by Hi-Tech Corp is introduced by Oman and Hagemeister which called a
Maintainability Index. This model calculates the maintainability by using several factors which
are like Cyclomatic Complexity, Halsted Volume and line of codes (SEI, 2018).
Page 18 of 28
For Cyclomatic Complexity CC, it represents the number of linearly independent paths
in the source code of the system, and it is considered as a quantitative measurement. CC
typically corresponds to a total number of decisions which is presented plus 1. Here is a table
that illustrates that.
The maintainability index formula that introduced by SEI looks like the following
Where V is the Halstead Volume, G is the total Cyclomatic Complexity, the L is total
of the source line of codes, and the C is the percent of comment lines.
Also, there are various tools that can automate this type of calculations such as
PhpMetrics. It is a static analysis tool that is specifically designed to measure several factors
for PHP project including maintainability index, number of lines of codes, Cyclomatic
Complexity, coupling, Halstead metric volume and more.
For e-commerce web application system of Hi-Tech Corp, it is very vital and crucial to
check the maintainability index upon the development life cycle. By using PhpMetric, the
developer and tester teams will be able to calculate these factors automatically. By doing so,
the company will be able to save time and resources.
After completing the development of any new function, the system should be tested
using this tool which is Phpmetrics. Therefore, the result is based on circles. Each circle is
Page 19 of 28
considered as a class, and its size represents the value of Cyclomatic Complexity. Also, the
circle’s color represents the Maintainability index which can be either
Figure 5: PHPmetrics
In case that the product is hard to maintain, the tool will generate a similar report to this
following screenshot which declares that the system is hard to maintain and complex.
Page 20 of 28
Figure 6: Maintainability Index of a system
Then the developers and testers teams of Hi-Tech Corp should make and fill up like the
below tables. This table contains information regarding the maintainability index (Red, Yellow
or Green) and Cyclomatic Complexity (1-5 is acceptable, 6-11 is acceptable but be careful, 12
to 20 is complex) for each module in the system. This information can be easily calculated
through using PHPmetrics tool.
Page 21 of 28
4.0 Configuration Management
Software configuration management can be defined as the process that manages and
operates the activities and tasks in terms of the maintainability and the integrity of software
product configuration. For Hi-Tech Corp, it is very important to have a software configuration
management in place since it assists in monitoring all the activities and tasks that are taking
place during the development process as well as it clears all the conflicts that may happen
during the maintenance since every single version will be documented. In addition, Software
configuration management consists of five processes which are identification, version control,
status accounting, configuration audit, and change control. In this section, all of these processes
will be discussed and explained in detail in order to show how Hi-Tech Corp could manage
software configuration management (Andrew LA, 2014).
1- Identification
Software Configuration Items are considered as baselined items of the software products
which are basically the documents, folders, and files. By identifying the software configuration
items, the quality assurance manager will be able to define and declare the relationships
between the different types of software configuration items. Also, All of the SCI that are
marked as reviewed, corrected and approved become as baselines. The following table
identifies the baselined items and their types.
Page 22 of 28
2- Version Control
For example,
3M-S1-CeA-CS-LF-04042019-1.2-4
Page 23 of 28
There are several scenarios that require to submit the form to the software configuration
control board such as the changes should be verified or archived to inform the originator about
the change.
4- Status Accounting
The Status accounting assists Hi-Tech Corp to record and report the change process.
Several subprocesses in the status accounting can be found such as defining the required
reports, tracking the SCIs’s status and system changes' status. Also, it is responsible for
generating the status report. All of these tracking activities assist the developer team in
monitoring and tracking the outstanding changes. Also, this process should submit a
configuration Status report the development team of Hi-Tech Corp. This report includes several
elements such as the data of each version was baselined, a list of baselined of software
configuration items and their specifications, changes history which includes the SCI’s change
requests (Andrew LA, 2014).
5- Configuration Audit
The configuration audit is a type of a technical review process that verifies that the
software is developed and built according to the standards and requirements. The technical
reviews should be performed on the existing versions of documents, folders, and files. In
addition, there are several responsibilities of this process such as defining procedures and audit
schedules, performing audits task on the established baselines, and providing audit reports in
the form of informal and formal reports.
Page 24 of 28
5.0 Conclusion
To sum up, Hi-Tech Crop is a company that develops e-commerce web applications for
its customers. The company is recognized as a leading company in this area, and its system is
considered as big and complex products which require more than 20 developers to work on it.
The developed system is released within 12 months, and sometimes, it depends on the
customer’s requirement. Recently, Hi-Tech Corp has been able to meet up its objectives but
with various difficulties. The rapid growth of the market and the high demand, the current
procedures and developments do not meet the quality standards. Based on that the company
finds itself in a bad position due to the numerous discovered defects by its customers. Because
of this issue, the Hi-Tech Crop products are marked as unreliable products and started losing
the track. The management office of Hi-Tech Corp requested to have a suitable testing strategy
and procedure to improve the developed products. In this assignment, a comprehensive testing
strategy is provided and disused for Hi-Tech Corp in order to ensure that the products are free
from bugs and defects. Also, the software quality metrics are introduced to demonstrate how
the relevant teams could measure reliability, portability, and maintainability. In addition,
software configuration management is also discussed in detail by demonstrating the five
processes. Overall, Hi-Tech Crop will be able to return to the marketing again if it follows all
the processes and activities.
Page 25 of 28
References
International Journal of Software Engineering & Applications, vol. 6, no. 1, pp. 89-99,
• Carlson, C., Sarakakis, G., Groebel, D. & Mettas, A. (2010). Best practices for effective
Symposium (RAMS).
• Yang, C., Liang, P. and Avgeriou, P. (2018) ‘Evaluation of a process for architectural
• Services, C. A. and Practice, L. (2018) ‘Leading Practice : Test Strategy and Approach
Page 26 of 28
• Pinciroli, F. (2016) ‘Improving Software Applications Quality by Considering the
Available: https://www.cachequality.com/docs/metrics/sei-maintanability-index.
Page 27 of 28
Appendix
Turnitin
Page 28 of 28