Testing as part of a quality system


The problem of software quality is becoming an increasingly acute, especially with the expansion of information technologies and the growth of the software. High quality products not only gives developers a competitive advantage and credibility of clients, but also facilitates the maintenance and development of software. This article presents the views of staff units of software development corporation "Galaxy" to the problem of creating quality software.

Developers, who founded the system "Galaxy", gained experience in creating software structures of the military-industrial complex. Naturally, the demands on the reliability of automated systems for command and control were very high – failure during the war meant the emergence of deadly danger for the hundreds of thousands of people. On the basis of measures designed to ensure reliability then managed to create a system in operation which did not appear any error in the software. Past experience was the basis for the corporate culture of software development, an essential aspect of which – the constant emphasis on quality.

In the field of economics and business administration right to exist is certainly only good software, not the "sturgeon second freshness", so the concept of "good enough software" which is now embodied in the life of many leading software vendors, it looks at least strange. You can certainly argue that the system of life-support person and corporate information systems vary in terms of critical errors. But on the other hand, the client can expect that the software does not jeopardize the "health" and the existence of his enterprise.

Purpose and targets

The most appropriate benchmark for corporations is the experience of IBM – one of the leading developers of software for the U.S. defense projects. It is known, for example, that three million lines of code on-board software "shuttles" are less than one error in ten thousand lines [1]. We actively promote its practice in organizational and technological expertise IBM [2].

Another guideline were recognized ISO 9000 quality standards. According to the formulation of ISO 8402, Quality is understood as a set of characteristics of software related to its ability to meet defined and anticipated customer needs. The main quality parameters are considered: the functional completeness, compliance with the legislation of the CIS, information security, ease of use, no special skills required in information technology, ergonomic user interface, minimizing operating costs, development and modernization.

Under the reliability usually refers to the ability of the system to perform specified functions, while maintaining the basic characteristics under certain operating conditions. With regard to the software is primarily a trouble-free operation, no errors that prevent normal functioning of the enterprise.

The quality and reliability together ensure high consumer properties. In the process of creating a software product they are simultaneously and continuously monitored and improved. But how realistic is to ensure the quality and reliability of complex multifunctional system with limited terms of development? For illustration we present the results of the survey more than a thousand large companies conducted by the Ministry of Trade and Industry. It was found that the average failure rate of information systems was 1 failure per year – 40% of the companies, a failure in a month – 29%, a failure in a week – 15% of companies, a failure in the day – 7% and 5% of companies have seen in their more than one failure per day. The share of failures and software failures in the list of reasons not work (downtime) of information systems was 24% [3].

Depending on the kit, the system "Galactica" may include more than three thousand of interrelated business functions, the results of which are controlled by more than 300 settings. Obviously, to achieve the required quality and reliability can only be designating them as a priority goal and constantly move it in the following areas:

organization of industrial production of software, with a clear specialization optimal distribution of functions, powers and responsibilities of staff;
introduction of a complex of the most modern and efficient technologies, including both technology development and maintenance of software and control technology development (projects);
development of a quality system [4] based on the recommendations of ISO 9000-3.

Steps leading to quality

One of the key elements of quality assurance – testing it. Many well-known developers are testing their products in several stages, which are different types of work performed and the involved resources. Corporation "Galactica" in this sense, is no exception.

In fact, the testing begins the process of coding the next version. To groups of professionals working on a particular part of the system are the so-called "local" testers. Their mission – operational testing of newly developed or modified system functions. This "pipeline" of work organization can save time and effort, since much of the error is detected and eliminated virtually incurred. Work testers at this stage as it is localized in the part of the system developed by this group, so we are talking about "local" test.

It is known that when a person is a long time working on one problem, he formed certain stereotypes that often prevent notice their own mistakes. To avoid this, a certain degree of readiness of the system we are beginning to cross-testing.Developers are not only "fresh eyes" check each other’s work, but at the same time and share their experiences.

Both local and cross-validation testing is accompanied by source code. If the tester’s work with the system – it’s finding bugs in their manifestation in the course of the program, then work with the source code allows you to "catch" errors that show up in routine testing at once.

During the encoding functions are tested separately or combined blocks within a single module system. Then start testing the system as a whole (integrated testing) on ??the sets of business processes, which are used to implement the functions of some modules. This stage of the development cycle includes several stages.

First, the work includes only the units of the Department of Software Development (Department of the integral test, etc.) – this stage of the development cycle is called internal testing. Verified the functional completeness of the system, compliance with project documents, the correctness of the design decisions. Monitored compliance with legislations of CIS countries: Russia, Belarus, Ukraine and Kazakhstan.

In the next stage in the work involved resources external to the Department of Software Development: Unit corporations engaged in marketing and technical support, customers – customers new system functions, other interested organizations.

The concept of "external testing" – is broader than the traditional "beta", which involves only the current and potential customers. At the stage of external testing is to concentrate efforts of hundreds of experienced experts, using different methodology and different approaches to work with the system. All experts are united in a common information network system, "Problems and Solutions." Almost all parts of the corporation involved in the external testing, and integration with the corporation "sail" made possible the exchange of software products for integrated cross-testing.

And on the domestic and external testing is carried out continuously statistical analysis of errors found and repaired, on the basis of which the decision to move to the next step.

Final testing department carries out integrated testing of the Department of software development. Its mission – to double-check the implementation of the maximum number of business processes and make sure that the correction of errors at previous stages did not cause new errors. In fact, this "run" system, which is given 10 working days. For comparison – during the acceptance military systems in a similar procedure was allocated a maximum of 4 days. We attach to it more time and resources to ensure high reliability due to complete coverage of typical business processes.

Next version of the system is transferred into trial operation at the company. It is also responsible step, because even the most comprehensive testing is not always possible to identify all the nuances that are found in actual operation. (Typically, an interested customer acts as picky and meticulous tester.) If within one month of serious comments were received, the version transmitted to other clients and for commercial sale.

As a result, the version on the way from the developer to the customer is six levels of testing, each of which is ensured by minimizing errors and achieve established in the early development of the values ??of quality and reliability.

The foundation of quality and its components

All work is to improve the quality of software is certainly require organizational, technical and methodological support.

Following the experience of IBM and the recommendations of ISO 9000-3 [2,4], in the staff structure of the Department of software engineering was introduced as a specialist in quality, which is functionally subordinate to local groups and the Department of testers integrated testing. The main task of the expert – to provide the necessary level of quality and reliability of the software (version, release).

With regard to logistics, there is, first of all, we should note the automated testing system AQA, which allows us to solve a number of issues.

  • Saving resources and improving the quality of testing. Automated testing for a given scenario does not require human intervention – the system will test the software in all the right mode, nothing is missing. Human intervention is only required for completion of the script library.
  • Stabilization of reliability. When the system carried out any changes, the most subtle bugs – those that occur in the already tested components. Re-starting the test script after making changes to allow for errors in situations where a tester is likely to miss their might. Thus, the reliability of the already-established and proven components of the system is under constant review and may not be affected by changes in other components.
  • Parallel testing of the system on different platforms. Well-established test scripts can be run on any of the currently supported platforms (Btrieve, Oracle, MS SQL).

All of this relates to the testing of new versions of the full development cycle which takes about six months. In the period between releases, usually once a month out so-called "releases", the issue of which is the need to track changes in the law and solve problems of strategic clients of the corporation. Deadlines require special testing techniques. On the one hand, the bulk of the work is passed on to the system AQA – no team testers can not for 2 days to pass all the standard business processes and ensure that changes are not reflected in the "old", repeatedly tested functions. On the other hand, new features may require manual testing, both worked through technology verification and create a script that will then be used for automated testing with the help of AQA.

The system theoretically allows automated testing to ensure hundred percent quality system, you need only create a comprehensive library of scripts. Traditionally, the quality of the applications is a function of the number of tests [5]. But for a complex multi-product, such as "Galaxy", the creation of such a library – an extremely complex task that requires enormous resources. Therefore, we adhere to a different approach: the majority of errors detected and eliminated early in development, and during the testing priority integral role for a complex test that checks the implementation of business processes as a whole, as well as the interaction of various system modules.The development of such scenarios do testers have extensive experience in the automation of large enterprises in various sectors and ownership forms.

Another source of development of quality test is to interact with departments, working directly with clients, in particular, with the services of consulting and commissioning.Description of business processes implemented with the introduction of a specific enterprise – a desirable food for the testers. And started on the basis of this description of scripts for automated testing – a guarantee of safe operation of our software in the enterprise.

An automated system "Problems and Solutions" (PIR) is a means of quality control and operational reliability, which is widely used in testing for registration and statistical processing of information about detected and fixed. At the same time the PIR – a system of rapid feedback from users. Wherever there is a problem in Moscow, Minsk, Vladivostok, she quickly falls into the center of development. The rate of income is actually determined by the speed of information transmission over communication lines, with the right know the person responsible for problem solving, and controlled as possible.

Methodological support for testing include: technology, as set out in regulations and guidance, libraries, business processes and automated test scripts, as well as an analysis of the causes of errors.

So, before you get a commercial version of the system is six levels of testing, each of which reveals a number of errors. Used at different levels of methodological base has its own characteristics and should minimize the number of errors during the transition from level to level. In particular, the test conditions and test metrics correspond to the specification development phase. Post-project analysis, each subject to error, it turns out the cause and identify gaps in the methodology is not possible to detect an error at the previous levels [5]. Thus, the main goal – finding the maximum number of critical errors at the lower levels of testing and their removal to its final stage.

Technology test depends, in part, on the amount of information stored in the test database (DB). An essential element of the test is to check the efficiency of the system on an empty database, which is actually a model of a new client, the system must be set up to fill the main directory, enter the initial data. For detailed examination of complex business processes that require adjustment to the regional or industry-specific, use the base with the volume up to 1 GB). At all levels of an integral number of standard tests performed and specific tests for a set of databases. Thus, the graph adds yet another dimension (DB). As a result, testing becomes a "three-dimensional."

This gives an additional effect: verify completeness and consistency of setup parameters – setting specifies the algorithms to perform many functions. Excluded are also problems when upgrading versions, because testing of new versions of the "old" databases to provide high reliability of the conversion.

Prevention is more profitable treatments

Thorough testing of software – the most obvious way to ensure its reliability. Indeed, testing – it’s diagnosis of the disease, analysis of symptoms, identification of the source and determine the best methods of treatment. But just as important preventive measures [4, 5].

The warning system "disease" includes a number of arrangements, which essentially boils down to ensuring the reliability and quality at all stages of development, from design. At present, the ratio of time spent on design, coding and testing of 40%, 20% and 40% respectively. Design is divided into several stages: the development of technical specifications, its analysis, to create the layout of the system. The results of each phase are subject expertise, and synergies between the cross-validation.Availability of detailed project documentation greatly reduces the likelihood of errors and an additional guarantee of reliability of the product.

It would seem that the question what is the interest coverage test – one of the most important aspects of software development – is to our customers? They are interested in the final result: system should reflect the specific business processes to be easy to learn and dynamically respond to changing realities of life. And it is not so important, what means all this will be achieved. However, be sure to pay attention on efforts to improve the quality of software. And for that there are at least two reasons:

  • High level of methodological, technical and organizational support at all stages of testing determines the quality of the product, ensure that once correct the error appears again, so – strengthens user confidence in the product;
  • Active users constant feedback facilitates the establishment of adequate verification schemes design decisions and also serves as a common goal – the creation of quality and reliable software.

See Also

    Advertising

    Archives