
Bettina Polasek
(8340) Modern Times in Software Quality Engineering
Jazoon Rookie
Wednesday, 2009-06-24, 17:30 - 17:50, Arena 5
Bettina Polasek - AdNovum Informatik AG (speaker)
Rate this talk:
Topics
Abstract
Introduction
"Modern Times in Software Quality Engineering" talks about how the
industrialization of software manufacturing can be achieved. The talk will
motivate why today's complex software projects require software engineering
companies to think not only about quality assurance on the product, but also on
the process. The important quality assurance measurement points should not be
confined to the end product, but set up during the implementation of it. In our
presentation we will show why quality assurance is not only helpful, but
necessary on the level of the software engineering process to successfully
implement projects and reduce risk.
We will elaborate on how companies with a heterogeneous technological
environment and international staff can set up measuring points with continuous
integration tools. Our understanding of continuous integration involves not just
routine builds and tests of the software, but also includes measurements of
quality metrics. Measuring points taken at regular intervals provide a more
structured output to summarize information about the project state than
non-structured output based on vague interpretation. These structured
measurements in turn can influence the process and reveal where optimization is
needed. Software engineering including these systematically obtained measuring
points can be compared to conveyor belt production. Each production step has its
breakpoints to control the quality on the process. While this includes also the
quality of the end product, the focus is clearly put on the procedure of the
software development. The main advantage is that issues can be identified at an
early stage in the development process, not only when the project is almost
completed.
Setting up Measuring Points
The talk will present two measuring points as an example. The first metric
concerns technology management. Technology management is a key factor in
reducing risk in software engineering. Software repositories are a powerful
means for the management of software versions and states. They provide a useful
overview of the technology landscape in a company and enable us to rapidly react
to security issues. Versions can be marked as flawed, and projects that depend
on a flawed version can easily be identified. Also, a continuous integration
system can check the versions used in actual projects against the versions in
the repository.
Providing these software repositories and integrating these checks into the
continuous integration system is one example of how to include quality assurance
in the process of software development.
The second metric presented will be RBCA. Risk Based Coverage Analysis is a
method to analyze code coverage by tests and weigh these results according to a
defined set of rules. In a first step, these rules are based on simple code
complexity measurements. In a second step, the rules can be refined to include
more concrete project risks. The results can be evaluated and produce a risk
layout of the software. These continuous measurements can also be included in
the continuous integration environment. This permits a continuous monitoring of
the risk landscape of the software and the definition of actions to improve test
coverage and minimize risk. Again, this provides structured measuring points at
defined intervals which can give feedback to the process of the software
development itself. This is a clear advantage compared to the current
non-structured feedback about test coverage and general software quality.
Conclusion
In conclusion, we will present some facts and insights about our real-world
experiences with living this process and using these tools. The development of
software in our company can be distributed to over three different locations,
which makes quality assurance on the software engineering process a necessity.
AdNovum has its own continuous integration environment called NightlyBuild. This
tool executes builds of our software projects every night, running builds on up
to eight different platforms. But it does not only build the projects, it also
conducts the checks of the presented metrics, and executes unit and integration
tests. In our modern software production environment, the quality assurance
tools and techniques that support the software development process are an
important factor to success.





