Quality Assurance
Quality Assurance
Amir Smajevi
Introduction to Programming
TABLE OF CONTENT
INTRODUCTION 2
CONCLUSION 12
WORKS CITED 13
TEST CASES 15
Smoke Testing 1 15
Smoke Testing 2 16
1
Quality Assurance
QUALITY ASSURANCE
INTRODUCTION
Quality assurance, also know as QA, refers to planned and systematic production
processes that offer confidence in a product's quality for its intended purpose. It's a collection of
activities intended to ensure that products or services satisfy client and customer requirements
and needs in a very systematic and reliable way. QA, sadly, cannot completely guarantee the
production of quality products or service, however it makes this more likely. The popularity of
product or service can be increased, as long as that product has good quality. Other method to
increasing popularity and sales is to have low price for product or service. But, no matter how
cheap the product or service is, as long as it doesn't have standardized quality a client will never
use its features. Quality in a service or product is not what you put into it. It is what the client
or customer gets out of it.1 There are many types and fields of quality assurance, but we are
going to focus only on Software Quality Assurance also knows as SQA, and especially ones
1.) Acceptance Testing; 2.) Automated Testing; 3.) Agile Testing; 4.) Beta
Testing; 5.) Black Box Testing; 6.) Automated Testing; 7.) Functional Testing;
8.) Fuzz Testing; 9.) Load Testing; 10.) Penetration Testing; 11.) Unit Testing;
1
Peter Ferdinand Drucker (1909-2005)
2
Quality Assurance
The quality movement traces its roots back to medieval Europe, when craftsmen began
organizing into unions referred to as guilds in the late 13th century. Until the 19th century,
producing in the industrialised world regularly followed this craftsmanship model. The factory
system, with its focus on product inspection, started in United Kingdom in the mid 1750s and
grew into the Industrial Revolution in the early 1800s. Nowadays quality has moved beyond
production into service, healthcare, education and government sectors, and it is one of the main
2
Deepak Bhati - Quality Assurance - As a part of fulfillment of M.B.A. (2008-2010)
3
Quality Assurance
CYCLE OF QUALITY
MANAGEMENT (TQM)
HISTORY OF QUALITY
Time Events
3
Deepak Bhati - Quality Assurance - As a part of fulfillment of M.B.A. (2008-2010)
4
Quality Assurance
Shewart,
Statistical beginning and study of quality control
1930s
5
Quality Assurance
Quality assurance is that the method of validating and determining whether or not the
product or services meet or exceed customer requirements and expectations. Quality assurance is
a process-driven approach with specific steps to help outline and attain goals. This method
considers design, development, production, and service. Quality and quality assurance (QA) are
troublesome to outline unambiguously in most industries, and this problem is even worse in the
software industry. A problem with quality assurance that is not confined to the software industry
4
Table 1. Deepak Bhati - Quality Assurance - As a part of fulfillment of M.B.A. (2008-2010)
6
Quality Assurance
is defining what quality stands for. According to International Organization for Standardization5
the definition of quality assurance is: The totality of features and characteristics or a product of
service that bears on its ability to satisfy stated or implied needs. There is, also, an absence of
agreement regarding the goals and functions of software quality assurance (SQA). SQA appears
to possess no distinctive role apart from subjectively assessing the work of software developers
and managers.
Historically, software quality assurance has been based on two approaches found in
several alternative industries: 1.) The quality program and 2.) Independent verification and
validation. Quality programs are based on distinguishing the acceptable procedures for
developing software package, and inspecting the method to ensure compliance with those
procedures. This typically resulted in SQA activities that concentrate on project audits performed
by independent personnel who are not typically software developers. This approach continues to
be favored by many companies that take the view that quality assurance means conformance to
specification. Independent verification and validation (IW) uses a technical group, independent
of the development group, to participate in and conduct analysis and tests of a software system or
product. This approach is mostly used for products with demanding reliableness, safety and
security requirements like military systems and government systems. It's favored by companies
that take the view that quality equates with user satisfaction.
5
International Organization for Standardization - www.iso.org
7
Quality Assurance
Software Quality as its essential aspect has an association to the enlargement and
have created monumental efforts to create new dimensions in software engineering aspects
together with quality perspective. Software systems are anticipated to be a lot of versatile,
accessible and reusable. There are different quality models which are developed with different
features and efficiencies, however we are only going to name them without further analysis.
Human
0 25 0 0 0 0
Engineering
Testability 75 25 0 25 25 0
Flexibility 75 0 75 0 0 75
Maintainability 50 25 75 0 100 75
Reusability 50 0 50 25 0 50
8
Quality Assurance
QV(Total value
for quality 58.33% 40% 60% 46.6% 41.6% 53.3%
Model)
Table 2. Total Value (QV) of Software Quality Model6
In development of software products, quality assurance is usage of every possible tool for
checking, with systematically approach, in order to see whether or not that software products is
being developed and is meeting specified requirements. The ISO 9000 family of quality
management systems standards is designed to help organizations ensure that they meet the needs
of customers and other stakeholders while meeting statutory and regulatory requirements related
to a product or program. ISO 9000 deals with the fundamentals of quality management systems,
including the seven quality management principles upon which the family of standards is based.
7
In this section, we will describe some of the most used QA tests in software engineering.
Acceptance Testing
Acceptance testing is a formal style of software package testing that's performed by end
user once the features are delivered by developers. The aim of this testing is to examine if the
software package confirms to their business desires and to the earlier requirements. Acceptance
tests are usually documented at the start of the sprint (in agile) and is a means for testers and
developers to work towards a typical understanding and shared business domain information.
6
Table 2. Saba Awan, Faizah Malik, Ali Javed,"An Efficient and Objective Generalized Comparison
technique for Software Quality Models"
7
Wikipedia
9
Quality Assurance
Automated Testing
Automated testing is approach that creates use of testing tools and/or programming to run
the test cases using software or custom developed test utilities. Most of the automatic tools
provided capture and playback facility, however, there are tools that need writing in depth
Agile Testing
Agile testing is a form of software system testing that accommodates agile software
development approach and practices. It is one of the best test today, because it is based on TDD
development and is completed together with coding. Agile testing permits progressive and
repetitive coding and testing. In contrast with other methodologies, Agile testing focuses on
repairing faults immediately, rather than waiting for the end of the project. By doing so, costs are
expected to go down.8
Beta Testing
This is a formal style of software package testing that's carried out by end users before
releasing or delivering final product to the end users. Successful completion of Beta test means
8
BUILDING AND TESTING. (2014). BUILDING AND TESTING. In Agile Governance and Audit: An
overview for auditors and agile teams (pp. 7987). IT Governance Publishing. Retrieved from
http://www.jstor.org/stable/j.ctt7zsx7z.14 Export Citation
10
Quality Assurance
This is a testing method where actual testers are not required to know coding or how the
program was written. Black box testing method is carried by specific testing softwares that test
White box testing is similar testing approach to the black box testing, except testers are
required to know coding and how the program was written. White box testing approach is used
in Unit testing which is usually performed by software developers who are developing the
software. Main purpose of white box testing is execution of code and test of statements,
branches, paths, decisions and data flows in the program. Black box and white box testings
complement each other as each of them have potential to discover specific errors.
Functional Testing
This testing focuses on testing of software packages against design and requirement
documents and use cases. It is a formal type of testing performed by tester, who are not required
Fuzz Testing
This is a technique that involves testing of software packages with passing unexpected or
random inputs. The software is monitored for failures that could occur due to the input errors.
11
Quality Assurance
Penetration Testing
Penetration testing, or shortly pen test is a type of security testing. Penetration testing
performed to tests how secure software package and its environments are once subjected to an
programs. Pen test uses methods (brute force attack) to forcibly exploit, or weakness to achieve
access to a software system, data or hardware with an intent to show ways in which to steal,
moral hacking where skilled penetration tester can use a similar methods and tools that a hacker
would use. However the intention of Penetration tester is to identify vulnerability, find them and
fix them before a true hacker or malicious program can exploit it.
Unit Testing
Unit test is a style of testing that is performed by programmers. Unit testing follows white
box testing approach where a developer can test units. A unit is the smallest testable part of
software, and in OOP that is method. The most common approach to unit testing requires drivers
This is a must for every project. It is performed directly by client and users of the
product. User acceptance testing allows client SMEs (Subject matter experts) to test the
software with real-world scenarios in order to check if the product meets their requirements.
12
Quality Assurance
Smoke Testing
Smoke testing is a sort of testing that's performed by testers to examine if the new build
provided by the development team is stable enough. Smoke testing is meant to seek out show
stopper defects which will prevent testers from testing the application thoroughly. Smoke
testing carried out for a build is also called build verification test.
CONCLUSION
customer allegiance, strongest defense against competition and also the solely path to sustained
company growth and earnings. It is not currently possible to identify which techniques are
required to achieve specific quality targets, it should be a major aim of software engineering
research to be able to do so, and software quality assurance should provide the major impetus to
such research.
WORKS CITED
Saba Awan, Faizah Malik, Ali Javed,"An Efficient and Objective Generalized Comparison
technique for Software Quality Models", IJMECS, vol.7, no.12, pp.57-64, 2015.DOI:
10.5815/ijmecs.2015.12.08
Ishikawa, Kaoru. Guide to Quality Control. Tokyo: Asian Productivity Organization 1982 Print.
Gabor, Andrea. The Man Who Discovered Quality, Times Books (a division of Random House,
N.Y.) ... a comprehensive review of the influence Deming has had to date in America
13
Quality Assurance
and Japan, [and] an acute assessment of how his theories might be implemented in the
Kitchenham, Barbara A. Software quality assurance. Butterworth & Co. Ltd. 1989. Print
Hiraishi, Taka (Japan) and Nyenzi, Buruhani (Tanzania). Quality Assurance and Quality
Control. Print
Intergovernmental Panel on Climate Change (IPCC) (1997). Revised 1996 IPCC Guidelines for
Switzerland.
BUILDING AND TESTING. (2014). BUILDING AND TESTING. In Agile Governance and
Audit: An overview for auditors and agile teams (pp. 7987). IT Governance Publishing.
Marselis, R. & Roodenrijs, E. "the PointZERO vision", 2012, ISBN 978-90-75414-55-4 Print
Wikipedia.com
Testingexcellence.com
14
Quality Assurance
TEST CASES
Smoke Testing 1
15
Quality Assurance
Smoke Testing 2
16