You are on page 1of 29

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/332590918

CT079-3-M-SQE - Software Quality Engineering - Hi-Tech - Assignment Part


2

Research Proposal · April 2019


DOI: 10.13140/RG.2.2.21521.89440

CITATIONS READS

0 1,434

1 author:

Ali Fathi Ali Sawehli


Asia Pacific University of Technology and Innovation
21 PUBLICATIONS   0 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Sandy Bakery Store - CT069-3-M-IA - Internet Application Assignment View project

All content following this page was uploaded by Ali Fathi Ali Sawehli on 23 April 2019.

The user has requested enhancement of the downloaded file.


ASSIGNMENT
TECHNOLOGY PARK MALAYSIA

CT079-3-M-SQE

SOFTWARE QUALITY ENGINEERING

UCMF1808BSE
HAND OUT DATE: 14-January-2019

HAND IN DATE: 05-April-2019

WEIGHTAGE: 50%

INSTRUCTIONS TO CANDIDATES:

1 Submit your assignment at the administrative counter

2 Students are advised to underpin their answers with the use of


references (cited using the Harvard Name System of Referencing)

3 Late submission will be awarded zero (0) unless Extenuating


Circumstances (EC) are upheld

4 Cases of plagiarism will be penalized

5 The assignment should be bound in an appropriate style (comb bound or


stapled).

6 Where the assignment should be submitted in both hardcopy and softcopy,


the softcopy of the written assignment and source code (where appropriate)
should be on a CD in an envelope / CD cover and attached to the hardcopy.

7 You must obtain 50% overall to pass this module.


• Lecturer: Dr. Kesava Pillai A/L Rajadori @ Rajoo
Student: Ali Fathi Ali Sawehli
Table of Contents
1.0 Introduction .......................................................................................................... 4

1.1 Company Background, Business Process, and Problem Statement ..................... 4

1.2 Scope, Amis, and Objective ................................................................................. 5

2.0 Testing Strategy ................................................................................................... 6

2.1 Test Approach ...................................................................................................... 6

2.2 Test actors ............................................................................................................ 6

2.3 Test types ............................................................................................................. 7

2.3.1 Unit Testing .................................................................................................. 7

2.3.2 Functional Testing ........................................................................................ 7

2.3.3 Integration Testing ........................................................................................ 8

2.3.4 User Acceptance Testing .............................................................................. 8

2.3.5 Regression Testing ........................................................................................ 8

2.3.6 Production Validation ................................................................................... 9

2.3.7 Training Validation ....................................................................................... 9

2.4 Testing Environments .......................................................................................... 9

2.5 Risk Analysis ..................................................................................................... 10

2.6 Test Planning and Execution ............................................................................. 11

2.7 Review and Approvals ....................................................................................... 11

3.0 Software Quality Metrics ................................................................................... 12

3.1 Process Metrics .................................................................................................. 12

Page 2 of 28
3.2 Product Metrics .................................................................................................. 13

3.2.1 Reliability Metric ........................................................................................ 13

3.2.2 Portability Metrics ...................................................................................... 15

3.2.3 Maintainability ............................................................................................ 18

4.0 Configuration Management ............................................................................... 22

5.0 Conclusion ......................................................................................................... 25

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

• The main product for Hi-Tech Corp is e-commerce web applications.


• Customers reported several unexpected issues regarding the availability, services,
bugs and security issues.

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).

2.1 Test Approach


Testing strategy, test’s types and roles and responsibility are defined through the test
approach. It is very vital for Hi-Tech Corp to have a clear definition of the testing strategy
which basically describe several components such as how and when the testing will be
conducted, who will conduct the test, environments, and features being tested. It should also
clarify how the discovered defect tracked and managed throughout the testing. As an example,
Hi-Tech Corp should perform a feature testing at each sprint as well as a final user acceptance
testing “UAT.” This test should always take place before going live. Also, the results of the
tests with the tested features should be tracked based on successfully passed the tests or have
defects. Also, it must illustrate who will be responsible for fixing the discovered defects
(Services, C. A. and Practice, L, 2018).

2.2 Test actors


For Hi-Tech Corp, there are various required actors that will be called upon the testing phases
which is highly depended on the test cases. These actors are the following:

• Quality Assurance Manager


• Technical Lead
• Tester teams include the leader and members
• Developer team member

Page 6 of 28
• Reviewers.

2.3 Test types


For Hi-Tech Corp, there will be several types of tests that are conducted in various
points within developing the e-commerce project life cycle. Different purposes for each type
of tests; however, all of these tests end up having a high customer’s satisfaction. In this section,
all the required tests will be discussed.

2.3.1 Unit Testing


The main aim of unit testing is to confirm and ensure that every unit performs the
designed task in the Hi-Tech Corp product. The unit can be considered as the smallest testable
part of any given software where it usually has one or more inputs and a single input. This type
of test is always required whenever there is a new software component is developed into any
environment. Therefore, the Hi-Tech Corp team will be responsible for performing unit tests
on the environment in two scenarios where the first one is at the time of environment step, and
the second time will be whenever there is a scheduled update to the environment (S. Pratibha
Sharma, 2016).

2.3.2 Functional Testing


The functional testing is designed mainly to confirm that the functionalities of the
product are based on the early defined use cases of the design stage. By other words, it is
considered as a type of software testing where the system is usually tested based on the
functional specification. In this test, the testers are required to prepare tests scripts that
demonstrate the steps that will be performed by the actors while running the tests(S. Pratibha
Sharma, 2016). Based on that, the tester is also required to record the test results which is based
on a pass or fail. The functional test of Hi-Tech Corp should follow four steps which are as the
following:

Page 7 of 28
Identify the test input which is the
test data

Compute the expected outcomes


with the selected input

Run the test cases

Compare the actual


and computed result

Figure 1: Functional Testing

2.3.3 Integration Testing


The integration testing is a testing type, and all the software modules are integrated and
group logically in order to test them. The e-commerce product of Hi-Tech Crop basically
consists of several software modules which simply coded by different developers. Therefore,
this type of test focuses mainly on checking and verifying data communication and flow
between the software modules. Also, this test is required whenever there is a newly developed
software module that has been integrated into the e-commerce project, and the tester team is
responsible for performing this test (Services, C. A. and Practice, L, 2018).

2.3.4 User Acceptance Testing


User acceptance testing is significant testing for Hi-Tech Crop in order to reach the
customer’s satisfaction since these customers who would use the product after the release.
Therefore, this test is always performed by the customers of the company before the product
can be certified as it is ready to release. In addition, Hi-Tech Corp is required to give a brief
training to the representative customer by highlighting the requirements, how to use the system
and how to navigate to the various features (S. Pratibha Sharma, 2016).

2.3.5 Regression Testing


Regression Testing must be carried out on any new feature that is added or updated to
the product of Hi-Tech Corp. This test can be defined as a type of test to ensure that the older
software modules are still working with the new added or updated feature. Also, this test
includes and involves various of mentioned tests such as unit, functional and integration testing,
and it is necessary to only focus on the main functions that are provided by the upgrade of the
software. In order to have good regression tests, the test and development teams should conduct
the regression testing (Services, C. A. and Practice, L, 2018).

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).

2.3.7 Training Validation


Training validation simply aims to ensure that trainees will experience the same
behavior, functionality, and performance which will be deployed in the production
environment. The trainer will be responsible for conducting this testing. This validation is
always conducted after

• 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.

2.4 Testing Environments


Testing Environments simply show and demonstrate the testing types in each
environment. In case there is a change to migrate from one environment to another, it is
essential to revalidate testing conducted in the new environment. For Hi-Tech, it will have three
different environments, and tests such as Development environment has unit testing,
functional testing, and integration testing, Testing and Training Environment has user
acceptance test, regression tests and training validations, and Production Environment has
production validation. The following table shows the testing types with their environments
(Services, C. A. and Practice, L, 2018).

Page 9 of 28
Table 1: Testing Environments

Development Testing and Production


Environment Training Environment
Environments
Unit Testing Yes
Integration Testing Yes
Functional Testing Yes
User Acceptance Yes
Testing
Regression Testing Yes
Training Yes
Validation
Production Yes
Validation

2.5 Risk Analysis

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).

2.6 Test Planning and Execution


There are six steps that are always involved when proceeding with planning and testing
which are as the following:

1- The use cases are already developed.


2- Building the tests scripts which are typically based on the use cases.
3- Defining and determining the acceptance criteria.
4- Running the tests.
5- Reviewing and approving test results.
6- Move to the next level of testing or migrating to the productions.

2.7 Review and Approvals


• The quality assurance manager, technical lead and tester lead are responsible for
validating and approving all results of the tests.
• The representative customers must validate and then sign on the result of the user
acceptance test as well as production validation.
• The leader of the tester team is responsible for signing off on the result of the integration
result.

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

1- The duration of the process


2- The requested efforts that will be associated with the process.
3- The whole incidents that might arise within the process.

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)

3.2 Product Metrics


3.2.1 Reliability Metric
System reliability is a type of measurement that shows the system’s ability to provide
an excellent failure-free operation. Also, it can be defined as the failure rate of the system where
it gives the ability to discover issues in the system in terms of the functionality or the software
design. Basically, there are two influencing factors regarding software reliability which are the
total number of the presented faults in the software and how the way of how users use the
system. Therefore, reliability testing assists in discovering issues related to software design and
its functionality (Carlson, C., Sarakakis, G., Groebel, D. & Mettas, A. (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).

Planned Events Unplanned Configuration


•Updates that are Events Failures
requiring restart •Hangs •Installation Failures
•Configuration •Crahses •Application
changes Incompatibility
•Incorrect reponse

Figure 3: Failure Classification

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

Availability = MTTF /(MTTF + MTTR)

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.

“MTBF = 100 + 2 = 102”

For the availability value form the above example, it should look like

Availability = 100/102 = 0.98

Then the probability of failure will be measured through the following formula which looks
like the following:

The probability of failure = Number of failing cases / Total Number of cases

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)

3.2.2 Portability Metrics

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 replicability testing, it works by testing the capability of a component to be replaced by


another component, and this replacement should be within a single system. The produced result
should be exactly the same when the system has the actual component or the replaced
components.

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.

Figure 4: Chrome DevTool

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

Task Name Chrome Firefox Safari …


Are the text, images, and
controllers are correctly
aligned?
Are Hover and selection
stats working correctly?
Are Shading and Color are
properly consistent?
Are the font style and size
consistent for each type of
text?
Do the pages look readable
on all the resolution?
Do not images, controllers,
text exist from the screen’s
edges?

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.

Table 3: CC guideline (SEI, 2018)

Construct Effect on CC Description


If +1 If the statement is a
single decision
Elif +1 It adds another
decision
For +1 At the start of the
loop, there is a decision
While +1 At the while loop,
there is a decision

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

• red that means hard to maintain,


• yellow means acceptable to maintain,
• green means easy to maintain.

Here is an example of the result of the tool.

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.

Table 4: Maintainability metrics Example

Class Name Maintainability Index Cyclomatic Result


Color Complexity color
Login Red 15 (Complex) Failed
Register Yellow 6 (Acceptable) Pass (But Be
Careful)
customerOrder Green 1 (Acceptable) Pass

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.

Table 5: Identification types

Baselined Items Item’s type


Software Requirement Specification Document
“SRS”
Software Design Specification “SDS” Document
Test Plans Document
Testing Manual Documents
Modules and Classes Folders or Files

Page 22 of 28
2- Version Control

Version control basically works to combine procedures as well as tools to organize


various versions of the configuration objects of the software configuration items. The
version control is responsible for identifying versions of SCI in order to achieve and ensure
traceability with different versions. In addition, it is essential for Hi-Tech Corp to monitor
the changes within the versions. These changes should be organized in a systematic manner.
Here is an example of how it should look like.

Project-Module-Designer-Initials-Developer Initials-Date-Version-Level of Changes

For example,

3M-S1-CeA-CS-LF-04042019-1.2-4

• Change’s level is represented as a scale from 1 to 5. Level 1 means a minor change,


and Level 5 is big change.
• The value of version variable is incremental.
3- Change Control
The change control is a type of process that is designed to control the changes being
applied to the software basically. By other words, the main of the change control
process is to maintain the baseline software configuration items “SCIs” while
processing the changes. Additionally, change control has typically two control
attributes which are the access control and synchronization control. For access control,
it works by governing who has access and modify a configuration object. For a
synchronization control, it assists in ensuring that parallel changes do not overwrite
each other. These two controllers will assist Hi-Tech Corp to monitor the changes.
1- A change is always provided to the Software Design Board for review actions to
determine its impact on the design of the system.
2- In case that the change is approved, the product manager should receive a software
change request “SCR.”
3- The forum of the Software Configuration Control Board should be presented by the
product manager and decide whether to approve or reject the change.

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

• Abdullah, M. Khan and R. Srivastava, "Flexibility: A Key Factor to Testability",

International Journal of Software Engineering & Applications, vol. 6, no. 1, pp. 89-99,

2015. Available: 10.5121/ijsea.2015.6108.

• Saraswat, S. & Yadava, G. (2008). An overview on reliability, availability,

maintainability and supportability (RAMS) engineering. International Journal of

Quality & Reliability Management. 25 (3). pp. 330-344.

• Project Management Institute (2013). A guide to the project management body of

knowledge (PMBOK® guide). 5th Ed. Newtown Square, Pennsylvania: Project

Management Institute, Inc.

• Carlson, C., Sarakakis, G., Groebel, D. & Mettas, A. (2010). Best practices for effective

reliability program plans. 2010 Proceedings - Annual Reliability and Maintainability

Symposium (RAMS).

• Yang, C., Liang, P. and Avgeriou, P. (2018) ‘Evaluation of a process for architectural

assumption management in software development’, Science of Computer

Programming. Elsevier B.V., 168, pp. 38–70. doi: 10.1016/j.scico.2018.08.002.

• Tian, J. (1990) ‘Software quality engineering’, Information and Software Technology,

32(1), pp. 3–10. doi: 10.1016/0950-5849(90)90039-T.

• Supaartagorn, C. (2011) ‘Php F Ramework F or D Atabase M Anagement’,

International Journal of Computer Science $ Information Technology (IICSIT), Vol3,

No 2, 3(2), pp. 251–258.

• Services, C. A. and Practice, L. (2018) ‘Leading Practice : Test Strategy and Approach

in Agile Projects’, pp. 1–6.

Page 26 of 28
• Pinciroli, F. (2016) ‘Improving Software Applications Quality by Considering the

Contribution Relationship among Quality Attributes’, Procedia Computer Science.

Elsevier Masson SAS, 83(Antifragile), pp. 970–975. doi: 10.1016/j.procs.2016.04.194.

• "SEI maintanability index | cachéQuality", Cachequality.com, 2019. [Online].

Available: https://www.cachequality.com/docs/metrics/sei-maintanability-index.

• S. Pratibha Sharma, "Performance Testing: A Comparative Study and Analysis of Web

Service Testing Tools", International Journal of Computer Science and Mobile

Computing, no. 2320088, 2016.

Page 27 of 28
Appendix
Turnitin

Figure 7: Turnitin report

Page 28 of 28

View publication stats

You might also like