Time to test the system and to correct the errors should be provided not only at the design stage but also at other stages of life cycle software. The analysis phase testing is conducted, for example, to obtain comparative characteristics assumed for the use of hardware platforms, operating systems, databases, other environments. For a successful test phase and, consequently, the maintenance phase should begin planning the test phase with the start of work on system design. Gradually, the test plan is being finalized at different stages in life cycle software.
The main types of software testing with a graphical user interface: GUI testing, functional testing, test performance, regression testing.
GUI testing – this is the first stage of testing software. This checks the entire software architecture, navigation screens (forms), their availability and accessibility, the transitions between screens, the work of the menu items, buttons, etc. In such a test immediately found errors that would impede much testing of functionality. To perform the functional test is necessary to create a standard operation of the software. Software functionality is shown through the user interface, functional tests are usually emulates user actions for a particular purpose and test reaction to these actions. It is for this reason it is important first to test the user interface. Large and medium-sized software running in client-server architecture, most in need of testing their performance. This type of testing is aimed primarily at obtaining data on the performance in terms of user software. Performance multi-user applications built on client-server technology, the most dependent on the performance of the database server, select a specific database, hardware and software configurations, the logical data model and structure of user transactions, the workload (for example, the number of users, frequency of transactions , the amount of data). The most effective testing with simulated real load, and subsequent analysis of information on the achieved performance.
Each defect or error must be defined, identified, described, analyzed and corrected. After making the changes to be retested the whole system. Moreover, all previously tested the properties and functions are checked again. This process is called testing the return, regression testing.
Computer-aided testing. Full-scale testing can not be achieved without the use of specialized automated tools, but these tools are quite expensive and not every firm can afford to buy them.
One of the most advanced automated testing is QA (new name – Quality Works) firm Segue Software (USA). QA is an integrated, multi-platform environment for developing automated tests at all levels, including regression tests for applications with graphical user interface. Allows you to quickly create tests that emulate the work of a large number of users, in order to determine the performance and reliability of a distributed application. QA can start testing at any stage of life cycle software to plan and manage the testing process, reflect changes in the application and re-use tests. Allows you to painlessly transfer test system together with the application under test from one platform to another. The main components are the QA: QA Partner – development environment, compile and run tests; QA Organizer – a module for the development of test plans and manage the testing process. Allows you to view test results and analyze the temporal characteristics mnogotestovyh cycles. To create and run tests in the process of QA Organizer called QA Partner. Is a powerful group testing, one of the attributes of each test is the name of its developer, which allows you to perform tests by specific tester; Agent – module that supports the network.
Another tool for automated application testing is a means of Rational PerformanceStudio company Rational Software Corporation. With this tool, you can make all kinds of functional and load testing of both large and medium-sized applications. It measures and predicts the performance of application software in client-server architecture and Web-based applications. Moreover, performance testing yields the same results as you would for the end user. Tool Rational TeamTest company Rational Software Corporation produces functional and load testing, supported by the entire testing process, including the formulation of requirements and prerequisites.
Method stubs. Necessary to verify the correctness of programs as they are created, rather than at the end of the encoding step. To do this, the method stub – play up programs.
Once the module is designed to assign names functions that it calls, define some specifications for these functions. These specifications include test procedures to test modules that enables the top level.
The simplest type of cap is a function that prints a message that the administration sent to the access point. Sometimes it is not enough if caller expects some action on the part of the stub. Then inside the stub assign specific values ??to certain variables.
In turn, giving the same values ??may not be enough to test the program, so the cap can use a set of defined values ??for the variable assignment in this set, depending on the number of tests.
For example, within the stub declares an array with a set of values ??and the variable with the value of the test room, which is incremented from call to call, return variable is assigned a value from the array with an index number equal to the test.
Inside the cap may be, for example, checking for proper input. If a certain condition is not fulfilled, the error message is printed.
Once the program is written and tested, a cap may be either replaced or refined to a program that performs the desired function.
Following the development of the plugs for the proper selection of test data should be guided by the following: first, to use simple tests and gradually move to more complex, and pay attention to boundary cases, to make sure that the system is operational throughout the range, for which it was designed; enter incorrect data, then examining results, use the special values, such as the constant 1 and 0, a null string for string variables make the tests so that each operator has been executed, to know the results of the test prior to its implementation. There is no use of random tests, test the program with their help and many hours of calculations with pencil and paper to ascertain the correctness of the program, always test the level of which is closely associated with the level about which we know that the program works correctly.
Methods of detecting errors. The programmer must know the methods of reducing the number of errors and methods for detecting errors. Consider the most effective.
a) The method of code review. It is a visual view of the text of the program, analysis of the logic performance of individual operators. L spruce review – to find as many bugs in new code before its first compilation. The compiler is not recommended even to detect syntax errors, surprisingly it seems to most programmers. According to statistics, the compiler of C + + does not notice the 9.4% for syntax errors and typos. For example, instead of the index i used j. And she and the other variables are described in the program, so this error is not recognized by the compiler, but on the stage of testing time for the elimination of such errors increases tenfold. According to various studies in the review of the code one error is detected and eliminated an average of every 5-20 minutes, during unit testing – every 15-30 minutes and at the stage of comprehensive testing – every 8 hours
b) Control analysis. This procedure works show the head to detect possible errors. Conduct periodic analysis of the control plan for all artists at all stages of software development process. This work attracted the project manager, programmer, whose work is analyzed, as well as several experts familiar with the matter. To view a selected kind of part of the system, and each participant is given the analysis of relevant information (for example, documented a draft program for the evaluation of the design phase, the text of the code in the analysis phase encoding). If necessary, the programmer gives an explanation of the modules under consideration. The purpose of the investigation by an error detection rather than correcting them. The duration of this procedure is low – less than two hours. Explaining the project to others, singer can not accurately identify the specifications made by, or unspecified conditions. It is essential that the analysis does not aim to properly evaluate the work of artists. In other performer could try to hide the existing confusion, or to present all in pink.
c) The method of reading programs. Often used by experienced programmers to establish the correctness of the system. Is very effective. If you have any strange errors programmer analyzes the program together with their colleagues. Even if colleagues have nothing to say on the merits, which is understandable, this method can often successfully identify the error. Errors detected when the programmer, which called for help, not realizing some of the fragments, the program asks the author for clarification. The method of reading the program has established itself as one of the most effective methods for the cost of detecting errors in the system. To accelerate and improve the process of debugging and error detection programmers use sophisticated tools such as: DevPartner 64 – designed for debugging and error detection in 64-bit applications. Developers can automatically detect and diagnose memory leaks, buffer overflows, invalid API call, and other common programming errors. The package includes 64-bit version of the famous debugger SoftICE, which provides an overview of all data and instructions used in the 64-bit version operating system Windows XP. A new implementation of a recognized technology SoftICE allows to identify and analyze any type of mistakes – from incorrect references in the index to data type mismatch. Implemented a unique ability to switch between the representations of the kernel and applications.