Sei sulla pagina 1di 4

Quality assurance in software projects

State of the art

Pătru Marius-Aurelian
Computer Science
FILS
Bucharest, Romania
patrumarius2015@gmail.com

Abstract— Current program development methodologies have With the proposed training for test managers is ISTQB
adapted to meet customer requirements, in particular reducing Certified Tester – Advanced Level – Test manager, we have,
delivery times, minimizing maintenance costs, high customer for the first time, developed an internationally recognized
engagement, and high visibility of the project. In the application training that describes training contents and qualification
development cycle, testing ensures that customer requirements sections for the tasks of the test managers. This qualification
are met, provides suggestions for improvement for the scheme consists of several levels, from the basic one to a more
developed product, reports defects and potential risks, and advanced level of expertise.
collaborates with the development team to increase product
quality.
II. A BRIEF HISTORY OF SOFTWARE TESTING
Keywords-testing; test management; software projects; test
managers; test processes Modern testing tools are becoming more and more
advanced and user-friendly. Software testing is the activity of
I. THEME running a series of dynamic executions software programs
Our life has become dependent on software-based after the software source code has been developed. [] It is
systems. Almost everything around us are completely or at executed to discover and correct as many potential errors as
least partly controlled by software. Entities from all industries possible before delivery to the customer. As indicated earlier,
and administrative agencies rely to a large extent on highly software testing is still an “art”. It can be recognized a risk
complex IT systems: inventory control systems, biometric management technique; the quality assurance technique.
characteristics in passports and ID cards and the electronic
health chip card. There has been many definitions and advances in software
testing throughout the history of software development. In
Due to this strong dependency on software systems, 1950s, software testing was defined as “what programmers
companies must invest considerably in quality assurance did to find bugs in their programs”. 10 years later, the
activities to allow those systems to perform reliably. Software definition of testing experienced a review. Exhaustive testing
testing is currently developing toward a specialized field of was debated and expressed as the set of possible paths through
study and professional discipline within computer sciences. code that can be tested. It was noted that it was impossible to
comprehensively test an application because of dimension of
Test management is of particular importance within the the program inputs and possible input paths and because
discipline of software testing. Test management comprises design and specification issues are difficult to test.
classical methods of project and risk management and
knowledge of the well-defined test methods. With this Between 1960 and 1970, software development matured,
approach, the persons responsible with test management, test and the activity of software was referred to as “computer
managers, can select and implement specific measures to science”. Software was designated as “what is done to
ensure that a predefined product quality will be reached. This demonstrate correctness of a program” or as “the process of
way, test managers adopt an engineering approach. providing confidence that a system or program does was is
supposed to do”.
Although today’s project management training is well
settled, and at the same time there are an enormous number of In the late 1970 it was stated that testing is a process of
study courses, training programs and professional literature to executing a program with the intent of finding an error, not
choose from, there has, until not so long ago, been barely any demonstrating that it works. This new definition emphasized
pursuit at defining the contents of training programs for the that a well-constructed test case is one that has a high
software test manager. Considering the increasing probability of finding an undiscovered error. A successful test
responsibility assumed by test managers in completion of their is one that uncovers an undiscovered error.
job, this has been a disappointing situation.
We can observe two objectives of software testing. The objectives. It helps conduct the priorities, human resources,
first one is to prove that a program works and implies the use and processes of IT. The essential approach is to assess and
of test data that have a low probability of causing a program maximize value over the IT service delivery life cycle to
failure. The second objective is to uncover problems in the assure applications and systems meet quality, performance,
software program by testing it with different input data. stability, and availability goals.

There were proposed the following good testing practices:


- A test case must contain an expected output result III. MEASURES TO IMPROVE SOFTWARE QUALITY
- The program should not be tested by the developers There are many approaches available on how to enhance
who wrote it software quality by using actions the prevent issues and by
- Each test result must be inspected comprehensively using analytical mechanisms:
- Corner cases should be written for invalid and - Designate software development processes that
unexpected input conditions can grant structured and maintainable
- The probability of the existence of more errors in a
development of software systems
section of a program is proportional to the number of
- Improve the efficiency of test activities
errors already found in that section
execution by defining test processes and
The 1980s included defect prevention in the definition of controlled incident management
testing. Designing tests is one of the most effective bug - Apply metrics and quality data standards to
prevention technique known. It was addressed the need for a evaluate software products and development
testing methodology that must include reviews throughout the processes in an objective manner
entire software development life cycle. This should be - Standardize methods that grant correct
designed as managed process. It was also promoted the formulation of development document
importance of testing not just code but requirements, design
and tests themselves. Test managers should have knowledge about these
methods and techniques in order to be able to choose and
Up until the early 1980s, testing referred to the set of apply convenient methods during the software project. The
activities done to a system after working code was delivered quality assurance measures are expressed according to the
and a system testing created. However, testing today implies predefined quality goals. Functionality, usability and
a larger spectrum of tasks for the tester. This means that the reliability are examples of quality attributes. There are
tester should be involved in relatively every aspect of the situations when a test result can be classified as faulty if the
software development life cycle. After a deploy is made with behavior expected result is not met.
the current version of the code and the tester finds problems,
then the version under test must be investigated. It is
Test planning and control, test implementation and test
recommended to try to find bugs from earlier version of the
execution or test evaluation of the test exit criteria are
system, not wait until an actual working product is produced.
activities that define software testing. There are different test
It is cheaper to fix a bug or issue if it is found in an early levels depending on the level of abstraction or development
life cycle. The cost grows by exponential amounts with the phase. We can distinguish component or unit test, integration
maturity of the development phase. It is not enough to just test test, system test and acceptance test. Each test level presents
the program and for bugs in it, we also must precisely review specific test goals, tools and methods.
the requirements and designs. There is the misconception,
even today, that software testing is a back-end activity. In manual testing is base the entire test process, test plan,
test execution, test cases are done to be manually executed by
In the mid-1980s, automated testing tools came up to a person. Also, a test team member runs every step of each test
automate the manual testing effort to increase the productivity case, documents the results of each step, and helps developers
and quality of the system under test. It was assumed that the to reproduce the defects found. Also, testing maintenance is
computer may achieve a greater quantity of tests executed in much slower. Manual testing can be advantageous in small
a more solid way. At the beginning, the tools were not very projects without many regression test cases because the entire
advanced and did not provide programming language automation process is not worth the effort when the test suite
capabilities. In the early 1990s, the importance of early test is executed once or twice. Automated testing is the process of
design was acknowledged. The definition of testing extended using certain programs and software tools to control the
to “planning, design, building, maintaining, and executing execution of test cases and compare the result with the
tests and test environments”. expected output. This whole process is fully automated and
requires no manual intervention from the test engineer.
In the early 2000s it was introduced an even extensive
definition of testing when it was proposed the concept of This process should cover the entire testing process, from
business technology optimization (BTO). This theory the creation of test cases to reporting, and provide detailed
coordinates the IT strategy and execution with business statistics on tested functionality, the creation of test data, and
the distribution of the test data to each scenario. It is very IV. QUALITY ASSURANCE AND TEST MANAGEMENT
important for the tests to be independent and not to require any Quality assurance (QA) is defined as “the essential
manual intervention. The manual intervention negates almost character of something, an inherent or distinguishing
all the benefits of automated testing because a well-automated character, degree, or grade of excellence.” Two general
test should be executed completely unattended to bring a concepts refer to quality assurance. The first represents
benefit to the testing team that can handle the testing of other meeting requirements which means that the specifications
functionalities in the meantime. must be measurable in order to decide whether we have a
quality product or not. The second concept is expressed from
Also, a test must be robust and consistent, results should the customer’s point of view. He decides if the product or
not vary from one execution to another. A major difference system does what he needs. The product’s specification is the
between automatic and manual testing is that in manual most important document, and the quality relies the most on
testing, a person can execute a single test case, the tests being it. It includes important quality attributes that the product must
sequential. In the case of automated testing, the same person have, e.g. usability, describes how easy the user can
can execute in parallel as many test cases as are allowed by communicate with the application, portability, the capability
the machine's computing and processing power on which of the system to be used across different hardware and
automated scenarios are running, which drastically reduces software architectures.
execution time.
It is impossible to assess quality on an already completed
One of the misconceptions is that if automatic testing is product. The objective is to prevent quality issues by
introduced into a project, manual testing will become implementing quality assurance measures, including
redundant, not necessarily necessary. Automated testing only structuring the development process with a software
comes with manual testing because some test cases cannot be development standard and supporting each life cycle of the
automated or are not worth automating. application with methods, techniques and tools. Another
important element in a quality management program is
Moreover, the two teams must work together to help each process assessment. This can be achieved by documenting the
other, the automated testing team must know which areas are coding standards and using methods, tools, procedures for
at risk, the most frequently performed, most repetitive test data backup, test methodology and test management.
cases in order to ease the work manual test team and reduce
their load. These two teams must periodically synchronize for Test management decreases production costs because the
the whole test process to run as few problems as possible, be sooner a defect is found and fixed, the less costly it will be in
effective and bring value and quality to the project. The the long run. Using automated testing tools may initially imply
general testing strategy exit criteria from the test cycle must a substantial investment, but the long-term result will come
be set by both teams jointly to minimize misunderstandings. with a higher-quality products and reduced maintenance costs.
One of the tasks of the testing team that consumes the most
Typically, in teams that implement agile development time is collecting quality metrics for a product. Statistics
methodologies, the same people who are responsible for should be collected about the number of defects occurring and
manual testing are also responsible for automated testing, which functionality has produced the most defects, the time
which facilitates the automation process because they know spent for performing each test case, the result of each step in
both manual application testing and automated testing. each test scenario, whether or not we meet the acceptance
criteria, how many test cases has been executed and for what
Often, members of the automated testing team do not functionality, what functionality is still untested and many
necessarily have to master the application, because in some more.
teams they are only responsible for identifying application
components and automating actions, and manual test team By integrating a statistical utility and reporting into
members combine this to create test scenarios. This can be automated testing, these processes can be deployed in a test
done, for example, by reading from Excel files where case where we can collect screen shots at each step, the status
members of the manual test team only sequentially insert the of each test case, runtime, defects that are covered the test case
steps to be followed to perform the test scenario, and these and any other information we want. We can also generate
data are read by the automated test programs that transmit automated graphs that can be understood by all team members
these parameters in automatic tests that will run during the and customers, graphs that can be generated every day based
night. on the results from the previous day's execution, and so we
can have daily the evolution of application quality and defects.
This also allows many test scenarios to be created because
the only effort, once the elements have been transposed into The total cost of effective quality management is the sum
code and the actions have been programmed, is to combine of four component costs: prevention, inspection, internal
them in desired ways, resulting in covering all possible test failure, and external failure. Prevention costs consist of
combinations. actions taken to prevent defects from occurring in the first
place. Inspection costs consist of measuring, evaluating, and
auditing products or services for conformance to standards A basic software configuration management activity is the
and specifications. Internal failure costs are those incurred in identification of the software components that make up a
fixing defective products before they are delivered. External deliverable at each point of its development. Software
failure costs consist of the costs of defects discovered after the configuration management provides guidelines to identify and
product has been released. The latter can be devastating name software baselines, software components, and software
because they may damage the organization’s reputation or configurations.
result in the loss of future sales.
3. Software quality assurance plan (SQA) plan is an
Software quality assurance is a planned effort to ensure outline of quality measures to ensure quality levels within a
that a software product fulfills these criteria and has additional software development effort. The plan is used as a baseline to
attributes specific to the project, for example, portability, compare the actual levels of quality during development with
efficiency, reusability, and flexibility. It is the collection of the planned levels of quality. If the levels of quality are not
activities and functions used to monitor and control a software within the planned quality levels, management will respond
project so that specific objectives are achieved with the appropriately as documented within the plan. Steps to develop
desired level of confidence. It is not the sole responsibility of and implement an SQA:
the software quality assurance group but is determined by the - document the plan
consensus of the project manager, project leader, project
personnel, and users. - obtain management acceptance
- obtain development acceptance
The objectives of QA are achieved by making a plan
containing the methods used during the project to ensure that - plan for implementation of the SQA plan
the documents or products reviewed or produced are of high - execute the SQA plan
quality at each checkpoint. A strategy for risk management is
software quality assurance. It was introduced because
software quality is a costly feature, especially in the late V. CONCLUSIONS
phases of a development life cycle. Quality assurance consists Test management is an essential element in quality
of several components, each with its own objectives. assurance and software project development. It is
recommended that its principles be used from the early phases
1.Software testing is a risk management strategy used to of the development. From designing the specification until
verify that functional requirements of a software product are software testing in the production environments, test
met. The drawback of this approach is that it is made in a late management follow the evolution of the code and of all
phase of development, when the product has a stable version. documents used by the contributors.
At that moment is too late to build quality into the product.
Nonetheless, not all defects are discovered doing this activity. We seek for high quality of the product, and quality
Verification and validation activities have the purpose to depends on the strategies that we use. Quality assurance
ensure that software design, code, and documentation meet all manages the quality. If the processes are followed, the
the requirements. During software design and management of a software project can be assured of product
implementation, verification helps determine whether the pro quality, can have an overview of the current status and levels
products of one phase of the software development life cycle of the product and can make decisions in order to minimize
fulfill the requirements established during the previous phase. the risks.

2. Software Configuration Management includes activity [1] Martin R. Woodware, Michae A. Hennell, Journal of Engineering and
like labeling, tracking and controlling changes in software Technology Management, vol 22, issues 1-2, March-June 2005, pages
113-140
elements of a system. The evolution of the system is managed
with versions of its software components. The purpose is to
identify the relationship between components of software and [2] Mario Winter, Thoma Rossner, Software Testing Practice: Test
management, Rocky Nook, 2007 ISBN: 978145711822
to have a big picture of their evolution throughout the
development life cycle phases. This approach can come with
[3] Black Rex (2009), Advanced Software Testing Vol. 1 ISBN-13: 978-
considerable benefits for the software project. Software 1-933952-19-2
configuration management identifies a system configuration
to systematically control changes, maintain integrity, and
[4] Bruce R. , Kesseniti M., Software Quality Assurance, 2016,
enforce tractability of the configuration throughout its life http://www.sciencedirect.com/science/article/pii/B978012802301300
cycle. 0028

Potrebbero piacerti anche