Software quality

"Under Software quality is defined as the totality of features and feature values ​​of a software product that bear on its ability, determined to meet or implied needs " ( target / actual ).

  • 2.1 QA focus on software testing

Quality models

Concept

The concept of software quality itself is inoperable, that is not directly applicable in practice. Therefore quality models that clarify the concept and operationalized by a further detailing exist. This creates a tree (or a network ) of concepts and sub- concepts.

The quality features contribute in English, the term factor, a quality part feature called criterion and indicators of quality metrics. That is why such quality models in the literature appear as " FCM models " (eg FURPS, Boehm, among others 1978 DGQ model 1986 McCall, among others in 1977. ) The leaf nodes in the tree of the quality model, the quality indicators, it should be to observable or measurable facts act. Here, for example, possible to use software metrics.

As ISO / IEC 9126

Quality models exist, for example in the form of the ISO standard ISO / IEC 9126th This standard defines the quality criteria for the software illustrated in the graph on a two-stage structure. Then it is clear that under software quality more than error free (which is substantially equal to the criterion function allocated) is understood.

The quality characteristics designate different characteristics to be exhibited by the software. These are top-level:

  • Functional properties, " the basic properties of the functions of the" ( what they do and how functional )
  • Non-functional properties that " the performance of the software product in daily use mark. "

While in the non-functional properties for reliability, usability (usability) and efficiency are to be classified with the requirements to be met by the software product in its operation, the quality criteria for changeability ( maintainability ) and transferability to the internal quality of software ( i W aligned. corresponding source code ) to possibly allow / facilitate necessary adjustments.

These criteria represent a framework which may be more specific for individual software products to individual specifications to be considered in software development.

Ensuring Software Quality

In order to ensure that the software on the various quality characteristics satisfy the requirements ( = quality assurance, short- QS), there are different process models and methodologies.

Some models may be more likely to associate with the concept of process quality. This assumes that a high-quality process of product creation promotes the development of high quality products. Therefore, make the following models quality requirements to the process in which the software is developed.

However, there are also process models, such as the Goal Question Metric approach, which lead to individual quality models.

Some models:

Some methods:

  • Iterative software development
  • Spiral model
  • Refactoring
  • Test-driven development
  • Software testing

Software testing, refactoring and code reviews go directly to the product quality. The specific product is examined and processed to make it as good as possible to meet the quality requirements.

The models can be partly combine the methods mostly together. The models of agile processes like Extreme Programming are of particular interest because they exploit synergies to the simultaneous use of different methods.

QA focus on software testing

Testing is an important quality for the software section in the development of software. The quality of the created or modified / refined software with different methods (eg, keyword-driven testing, risk based testing, data driven testing, ... ), process models, types of tests, test levels, etc. checked for actual use before the handover. The literature (here) called it "creating confidence in the quality of software ," and explained: "Tests are not the only measure in the quality management of software development, but often the last resort; Quality can not ' be tested .' ".

Thus, a distinction is made concerning the quality assurance measures between constructive and analytical measures ( see chart).

  • Among the structural measures, for example, include disciplines such as systematic project definition and project objectives definition and a detailed ( and binding adopted by the project contractors ) requirements analysis, the use of established or defined programming standards, etc.
  • The analytical measures can be divided into static measures (see static code analysis such as code reviews ), in which only the application code generated is checked without the application is actually executed. Depending on the type of measure, the verification at different times, eg directly in the code development takes place (see pair programming ) or only before release for user testing.
  • Dynamic tests in which the generated application under a variety of configurations (see test case ) is actually carried out and the results produced are checked.

The quality of software is thus located at different stages of their development in different states and is in their actual productive use meet all defined requirements / criteria.

736510
de