A Methodology For Incorporating Quality Assurance Practices During Software Development Life Cycle

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

ISSN 2278-3091

Volume 10, No.3, May - June 2021


Eraj Laaraib et al., International Journal of Advanced Trends in Computer Science and Engineering, 10(3), May - June 2021, 2296 – 2301
International Journal of Advanced Trends in Computer Science and Engineering
Available Online at http://www.warse.org/IJATCSE/static/pdf/file/ijatcse1131032021.pdf
https://doi.org/10.30534/ijatcse/2021/1141032021

A Methodology for Incorporating Quality Assurance


Practices during Software Development Life Cycle
Eraj Laaraib1, Zulfikar Ahmed Maher1, Zulfiqar Ali Solangi2,Muhammad Yaqoob Koondhar1, Mukhtiar Memon1,
MansoorHyder Depar1, Asadullah Shah3
1
Information Technology Centre, Sindh Agriculture University Tandojam, Pakistan, Email
[email protected], [email protected],[email protected],[email protected],
[email protected]
2
Jubail Technical Institute-Colleges and Institutes Sector Royal Commission Jubail, Saudi ArabiaEmail: [email protected]
3
Faculty of Information and Communication Technology, International Islamic University Malaysia, Email:
[email protected]

ABSTRACT word assurance is nothing but a positive declaration to and


gives confidence to clients and customers about
The aim of quality assurance in software development is to system/product/software that this system/product/software
ensure that a software product meets its practical business will works as expected. Software quality assurance (SQA) is
specifications and quality requirements. A comprehensive a set of activities which ensure the quality of a process
overview of different software quality requirement and followed in developing software products. It is process based
quality assurance practices have been performed to find out action and the activities used in software quality assurance
the most appropriate software quality assurance practices at (SQA) help to evaluate and organize the processes that
different stages of the software development life cycle produce software services or products. In software quality
(SDLC). A methodology along with its implementation assurance the set of activities are proactive and staff function
during SDLC has been proposed in this research paper. The which only prevents services or products form defects
proposed methodology will help software development whereas in software quality control the set of activities are
teams to achieve quality assurance goals during software reactive, line function which actually finds defects in
development. services or products. Software testing is actually software
quality control (SQC). In software testing products are tested
Key words: Software Quality Assurance, Software and are released in live environment after proper testing
Development Life Cycle, SQA Factors
Functional testing is a technique in which the functionality
1. INTRODUCTION of the entire system or software is being tested. This testing
technique has many types like unit testing, smoke testing
Software quality relates to a software which is fairly bug and regression testing etc. It is same as black box testing in
free or defect free, delivered in specified/proper time and which the expected result/output is known without the
within desired/expected budget, which at the end meets with information of how it will be produced. Standardization
the stated business requirements and is also maintainable. technique gives an assurance that all modules of the software
Functional quality and structural/non-functional quality are should follow proper standards, i.e., like documentation
the two aspects of software quality in the context of software standards, development standards and quality control
engineering. Software Functional Quality ensures the quality standards. It also ensures and improves quality of the whole
of a design based on functional specifications or software.Non-functional testing is also performed on the
requirements of services or products. Software Quality entire software. Performance testing is main type of non-
ensures the quality of a design based on non-functional functional testing. An example of performance testing is
specifications or requirements of services or products. It stress testing which is performed to check how the entire
supports the functional specifications or requirements of software or system works under heavy load.There are
services or products such as maintainability, robustness, and several advantages of software quality assurance (SQA). The
the degree of correctness to which the services or software main advantage is that it increases the client confidence.
has produced. This is done by properly checking the quality of software at
different levels like review, audit and inspection etc. It
The word quality is actually very hard to define or describe involves the interest of stakeholders and by giving
but it tells us that end system/ software/product should meet weekly/monthly reports of requirement metrics and defects
the needs of clients and customers and should fulfill their to clients helps in satisfying that work is being done on time.
expectations. Quality actually relates to the system/ Software quality assurance (SQA) also saves money by
software/product design, functionality, usability, durability, finding defects in early builds of the software. After fixing in
reliability and price of the system/product/software. The
2296
Eraj Laaraib et al., International Journal of Advanced Trends in Computer Science and Engineering, 10(3), May - June 2021, 2296 – 2301

time increases client satisfaction and hence improves the Human factors are the certain conditions which directly
reputation of the product in customers. Agile methodology influences the quality, cost, and duration of the product.
improves the quality of the product, where both development Human factors are very diverse and if some organization
and testing are done in parallel, improves the efficiency of ignores it or not mitigating properly in a project then it will
the product by fixing the found bugs at early stages. affect the project seriously [8]. Human factors can be
environmental, technical, organizational, and managerial.
2. RELATED WORK Technological factors are the most important aspects in
software development life cycle and results in the success of
Software Quality Assurance (SQA) is a coordinated and software product [9]. Many organizations which are
comprehensive strategy to ensuring that software operations, developing software’s are in continuous struggle to tackle
goods and services confirm SQA's objectives of enhancing the issues related to human resources. These issues totally
the quality of software by carefully controlling all software depend upon the office culture, training and team dynamics.
and production processes to ensure complete conformity [10] Software quality relates to a software which is fairly
with the principles and specifications established [1]. The bug free or defect free, delivered in specified/proper time
quality assurance of applications must be used to align and within desired/expected budget, which at the end meets
quality with productivity. Improvements in efficiency impact with the stated business requirements and is also
the efficiency of activities in different respects, such as maintainable. Functional quality and structural/non-
growing sales, reducing expenses and enhancing functional quality are the two aspects of software quality in
productivity. Quality has been recognized in any sector as the context of software engineering.
one of the key factors of sustainable strategy [2]. For the Software Functional Quality ensures the quality of a design
past two decades, software production has become one of based on functional specifications or requirements of
the fastest rising industries. As the number of app production services or products. Software Structural Quality ensures the
companies has risen at a much faster rate, global rivalry has quality of a design based on non-functional specifications or
become much more serious. Tech vendors need to requirements of services or products. It supports the
distinguish their offerings in ways that are important to their functional specifications or requirements of services or
clients in order to succeed in this global competition climate. products such as maintainability, robustness, and the degree
An established way to accomplish this distinction is of correctness to which the services or software has
consistency. Three critical sources, namely humans, produced. The word quality is actually very hard to define or
technology and management, generate quality in the describe but it tells us that end system/ software/product
software development [3]. should meet the needs of clients and customers and should
fulfill their expectations. Quality actually relates to the
Javed et al. [4] reported that emerging countries such as system/ software/product design, functionality, usability,
Pakistan are competing harder in the international market to durability, reliability and price of the
sustain software quality. For several factors, software output system/product/software. The word assurance is nothing but
is compromised. This article states that if experts don't a positive declaration to and gives confidence to clients and
successfully perform their assigned jobs, efficiency goes customers about system/product/software that this
down. Performance may also be enhanced by preparing the system/product/software will works as expected. Software
persons who work on the software items. Educated quality assurance (SQA) is a set of activities which ensure
individuals should pay attention when the product is being the quality of a process followed in developing software
produced. Parnas[5] clarified that the divide and conquer products. It is process-based action and the activities used in
approach may be used in applications to detect and eliminate software quality assurance (SQA) help to evaluate and
problems/errors. In his study, David et al. [6] mentioned organize the processes that produce software services or
factors influencing efficiency. His analysis covers the products [11].
following considerations: Duration of Project Period, Fund Software quality control (SQC) is something different from
spent, less use of standards to attain consistency, Lack of software quality assurance (SQA). It is a set of activities
relevant Field Experts, Duration of Project, and Determine which ensure the quality in software products. It is product-
efficiency regardless of inferior advantages. based action and the activities used in software quality
control (SQC) only focus on discovering defects in the
actual/end services or products which is produced by
As per IS0 DIS 13407 the user cantered design helps in
following the activities used in software quality assurance
achieving quality of a system. It states that user cantered
(SQA). As an approach to resource optimization, SQA will
design is an activity which has multiple disciplines, which
minimize costs and, in economic terms, maximize benefits.
include human factors, people's efficiency, people’s
A significant element in the life cycle of software production
knowledge, and the techniques. The main objective here to
is SQA. Quality assurance should be included at each level
enhance the efficiency and effectiveness of the system by
of the development process. Monitoring and evaluation are
improving the working conditions of humans. It also
used for device identification and avoidance of defects. The
prevents the possible negative effects these working
key objective of SQA is to specify the targets and planned
conditions on human’s mental and physical health. It also
performance and outcome verification requirements and to
protects the human health performance and safety [7].
include the appropriate structure to ensure a reliable

2297
Eraj Laaraib et al., International Journal of Advanced Trends in Computer Science and Engineering, 10(3), May - June 2021, 2296 – 2301

alternative to SQA across the construction phase, so that the product. So, an organization should not ignore it while
both software quality assurance and software engineering developing a software product. Human factors also depend
approaches can be used to improve the efficacy of both upon the environment of the software developing company,
systems and technology designers [12,13]. its culture, training, and team aspects [10].
DevOps is a series of approaches wherein designers and
procedures interact and work easily, efficiently and with 4.2 Technological factors
greater consistency to deliver applications and
services[14,15]. DevOps shares roles and duties within a ISO 9000 standard concerns with the quality of the product
team that is entirely responsible for their operation and the in quality assurance. The standard provides confidence and
related stack of technologies, from creation to helps to assure that the resulted product will meets the
implementation and maintenance. Cross features, joint roles desired product and requirement to satisfy the clients.
and trust are encouraged in a DevOps setting. In turn, Literally the quality depends upon the person who is
DevOps applies the agile group's agile growth targets responsible of making the requirement specification of a
through continuous delivery and launch. DevOps facilitates product. Quality directly correlates with the standard of
optimization of the phases of transition, setup and activation requirement specification if it is inappropriate then it will
to facilitate continuous updates [16]. The demand for reduce the quality of the end-product [15]. As per Garvin,
software production has seen strong growth with rapid the manufacturing quality is described by requirement
improvements. Client expectations and improvement specification and high-quality end-product confirms the
demands presented in a constructive way are the rationale appropriate requirement specification [18].
for the accelerated changes. Application approach has solved
this and several organizations have switched to application
framework in order to facilitate regular launches with greater
customer loyalty. While most businesses have adopted agile
techniques, a few businesses have used such agile practices
to mitigate the bottlenecks in the current phase. In Speedup,
companies like IBM, Facebook and Microsoft began their
own growth. Constant implementation is not an easy task, as
there is a substantial effect on device reliability, as per [17].

3. METHODOLOGY

In this research, We identified a number of factors from


literature review which are described below by two diagrams
with detailed explanation named as organizational factors,
technological factors human factors, factors at requirement
stage, factors at design stage, factors at
implementation/Coding, factors at testing stage and factors
at deployment/maintenance stage. Figure 1 showing
identified technological and organizational Factors.

4. IDENTIFIED SOFTWARE QUALITY


Figure 1: Technological and Organizational Factors
ASSURANCE FACTOR
4.3 Human factors in SQA
The factors affecting quality of software are identified in
three different categories. The categories include The quality characteristics of a software directly relates with
Organizational factors, Technological Factors and Human the quality, use of the software and on user. Functional and
factors. The explanation of each of them is given below in non-function aspects of the product clearly depend upon the
detail. type of user and number of users. Usability, efficiency,
reliability, portability, and maintainability come from end
4.1 Organizational factors
user perspective. Quality here again depends upon the end
As per IS0 DIS 13407 the user centered design increases the user satisfaction and the performance of the product. For
quality of a system by improving the working conditions of quality both degree of measurement and care should be
humans by keeping in mind that this will not disturb the considered, if a quality is measured under different
human mental and physical health. So, by protecting the environments then generalizing the consequences of quality
human health from any type of pressure resulted from the measurement will provide care. Various takes implemented
workload will results in better performance and speed in the on the intermediate and end-product also helps in enhancing
development and testing process and thus will result in good the quality of product. Tasks are compromised on different
quality product.Human factors are the certain conditions activities which are performed to obtain the desired goals.
which directly influences the quality, cost, and duration of The approach of human factors in quality directly relates

2298
Eraj Laaraib et al., International Journal of Advanced Trends in Computer Science and Engineering, 10(3), May - June 2021, 2296 – 2301

with the user center design and usability. User center design Each factor identified at different stages in SQA has its own
is something related with prototypes and mockups whereas role in achieving high end product. First start with business
usability relates with user interface. Thus, user center design requirements stage involves the gathering of all the
and usability help in improving the quality of product. requirements from the business owner. It is the very early
stage in software development. After collecting all the
2.3 Factors identified at different stages of SDLC required information from the business owner there comes
requirement analysis stag in which all the product designers
Following factors have been identified in this study for give his/her thinking idea. These ideas are then shared with
ensuring software quality assurance at different stages of the business owner. The business owner than has right to
SDLC (figure 2) select an idea. Therefore, design quality directly depends
upon the level of designers hired in the project. Consistency
plays an important role to satisfy the clients. Technical
vendors need to distinguish their offerings in ways that are
important to their clients in order to succeed in this global
competition climate. An established way to accomplish this
distinction is consistency. So technology has direct impact
on the quality of the product. Using latest technologies and
tools will increase the quality and project management of the
product. The approach of human factors in quality directly
relates with the user center design and usability. User center
design is something related with prototypes and mockups
whereas usability relates with user interface. Thus, user
center design and usability helps in improving the quality of
product. In every quality assurance activity, design phase is
still the most relevant; SQA team members are responsible
and accountable for designing project scope and executing
the plan as well. They also were liable for the calculation of
output, enhancement of quality and control of
configurations. The external quality comes in product
specification stage and it is a part of product validation. The
system behaviour points towards external requirements of
product quality whereas external metrices points towards
Figure 2: SQA Factors during SDLC stage external quality. During real time software execution these
external metrices are being applied the consequences of
3 RESULTS AND DISCUSSION which clearly reflects the degree of the quality of software.
A product works fine in an environment it might show
Quality plays an important role in achieving high quality of defects in another environment. So, quality is clearly
end product. Organizations perform testing by the help of dependent on the user-identified environments. The internal
SQA Engineers in order to meet the goal and to satisfy the quality requirements come in design and development stage
clients. The quality characteristics of a software directly and software attributes points towards it. Internal metrics
relates with the quality, use of the software and on user. points out the internal quality and are part of product
Functional and non-function aspects of the product clearly verification. So, validation process focuses on the external
depend upon the type of user and number of users. For quality and its requirements whereas verification depends
quality both degree of measurement and care should be upon the internal quality and its requirements. During
considered, if a quality is measured under different development process the internal quality requirements are
environments then generalizing the consequences of quality considered. These metrices are applied during the
measurement will provide care. Various takes implemented development stage i.e., directly on the source code. The
on the intermediate and end-product also helps in enhancing results of which helps in improving the quality of source
the quality of product. Quality increases the client code. Better code quality results in low quality defects. The
confidence, and which is achieved by properly checking the feedbacks of both internal and external requirements help to
quality of software at different levels like review, audit and improve the quality of code and desired product.
inspection etc. It involves the interest of stakeholders and by
giving weekly/monthly reports of requirement metrics and The competence of adeveloper also plays an important role
defects to clients helps in satisfying that work is being done in attaining high end product. Writing high level of software
on time. Organization saves their money by the help of bug free code will save time and money. Also after
Software quality assurance (SQA) to find defects in early completion of the program, testing is not mandatory, but it
builds of the software. After fixing in time increases client can be conducted at any onset of the study and expose the
satisfaction and hence improves the reputation of the product coding defects. Peer Evaluations play a very significant role
in customers. in enhancing the efficiency of projects. This shows that user

2299
Eraj Laaraib et al., International Journal of Advanced Trends in Computer Science and Engineering, 10(3), May - June 2021, 2296 – 2301

participation is often very relevant for reviews and can be REFERENCES


changed very quickly on the grounds of this reviews app
consistency. It is quite essential for business organizations to 1. Mirnalini, K. and Raya, V.R., 2010, September.
retain product consistency, when any company runs towards Agile-A software development approach for quality
automation. Software testers play a very important role in software. In 2010 International Conference on
providing end product to clients which is defect free. Educational and Information Technology (Vol. 1,
Because high level of testing will leads a high quality of
pp. V1-242). IEEE.
software. Technology here will again help SQA team to
attain client’s goal. Creation of technology is a human 2. Iftikhar, A. and Ali, S.M., 2015. Software quality
operation; multiple techniques of production management assurance a study based on Pakistan’s software
and quality control used to produce at least value an industry. Pakistan Journal of Engineering,
excellent performance, accuracy, and error free product. Technology & Science, 1(2).
Quality assurance should be included at each level of the 3. Fernandez, P.O., David, M., Duma, D.C.,
development process. The general view of software testing is Ronchieri, E., Gomes, J. and Salomoni, D., 2020.
that the activity of finding bugs, everyone wants software
Software Quality Assurance in INDIGO-DataCloud
quality, project manager looks at it as delivering a good
software to a customer, and developer wants to produce project: a converging evolution of software
product and getting things done fast, and user know it as engineering practices to support European Research
stable and reliable. e-Infrastructures. Journal of Grid Computing,
18(1), pp.81-98
The last stage in SDLC in deployment/ maintenance of the 4. Javed, A., Maqsood, M., Qazi, K.A. and Shah,
software product.DevOps here will play an important role. It
K.A., 2012. How to improve software quality
is an intermediate between developers and tester. It is a
series of approaches wherein designers and procedures assurance in developing countries. Advanced
interact and work easily, efficiently and with greater Computing, 3(2), p.17
consistency to deliver applications and services. Dev from 5. Parnas, D.L. and Lawford, M., 2003. The role of
Programmers and Operations from Service ended up with inspection in software quality assurance. IEEE
the term 'DevOps.' DevOps shares roles and duties within a Transactions on Software engineering, 29(8),
team that is entirely responsible for their operation and the
pp.674-676.
related stack of technologies, from creation to
implementation and maintenance. DevOps is a synthesis of 6. David L.Parnas& mark Lawford, (August 2003).
trends aimed to promote cooperation between growth and The role of inspection in soft quality Assurance”
activities. As well as common systems and instruments, IEEE transaction on software engineering, vol.29,
DevOps discusses shared priorities and benefits. Shared (pp.8).
priorities and rewards cannot always be feasible due to 7. David L.Parnas& mark Lawford, (August 2003).
natural conflicts between different parties. They can, though, The role of inspection in soft quality Assurance”
at least be associated with one another.
IEEE transaction on software engineering, vol.29,
4 CONCLUSION (pp.8).
8. Dash, D., & Dash, R. (2010). Risk assessment
While many software quality engineers developed software techniques for software development. European
quality assurance plans. The research has focused on the Journal of Scientific Research, 42(4), 629–636.
different factors of SQA in SDLC. Each stage of SDLC
9. Dhlamini, J., Nhamu, I. &Kachepa, A. (2009).
plays important role in achieving high quality product and
SQA team should be the part of each SDLC activity. Intelligent risk management tools for software
Knowing the right clients’ requirements, reviewing the development. Proceedings of the 2009 Annual
design developed by the designer’s team, helping Conference of the Southern African Computer
development team in unit testing and then following the Lecturers’ Association, 33–40.
correct testing techniques, SQA can increase the quality, 10. Taveras, Pedro. (2015). Human Factors in Software
save time and cost of the product. Knowing the right Engineering. 10.13140/RG.2.1.1362.0320.
functional and non-functional aspects of a product at
requirements stage can help SQA to improve the process 11. Maher, Z. A., Sani, N. F. M., Din, J., &Jabar, M. A.
which will be used in quality control. It is also important that (2016). Use of Security Patterns for Development
SQA team should know what is happening in design and of Secure Healthcare Information System. Journal
development stage. Therefore, by involving SQA in each of Medical Imaging and Health Informatics, 6(6),
stage of software development life cycle the process of 1541-1547.
testing can be improved. 12. Elyezjy, N. T. (2012). Software quality assurance
SQA-practices in

2300
Eraj Laaraib et al., International Journal of Advanced Trends in Computer Science and Engineering, 10(3), May - June 2021, 2296 – 2301

Palestiniangovernment. International Journal of way. Information and Software technology, 57, 21-
Computer Applications, 58(22). 31.
13. Koondhar, M. Y., Abdul Molok, N. N., Chandio, 17. Bevan, N., & Azuma, M. (1997, June). Quality in
F., Rind, M. M., Raza, A., & Shah, A. (2015). A use: Incorporating human factors into the software
conceptual framework for measuring the engineering lifecycle. In Proceedings of IEEE
acceptance of pervasive learning. International Symposium on Software Engineering
14. Koondhar, M., Malkani, Y., Rind, M., Chandio, F., Standards (pp. 169-179). IEEE.
Shah, A., &Nizamani, Q. (2015). Pervasive 18. Maher, Z. A., Shaikh, H., Khan, M. S., Arbaaeen,
Learning using Cloud Computing. Sindh University A., & Shah, A. (2018, November). Factors affecting
Research Journal-SURJ (Science Series), 47(3). secure software development practices among
15. Koondhar, M., Rind, M., Hub, M., &Shaikh, H. developers-An investigation. In 2018 IEEE 5th
(2014). Semi-automated E-Tendering System with International Conference on Engineering
Web Services. A case study on tendering process in Technologies and Applied Sciences (ICETAS) (pp.
Pakistan. Sindh University Research Journal-SURJ 1-6). IEEE.
(Science Series), 46(4).
16. Claps, G. G., Svensson, R. B., & Aurum, A. (2015).
On the journey to continuous deployment:
Technical and social challenges along the

2301

You might also like