Different types of software testing – “Go back to the school “
Functional testing – one of the main types of program verification. The purpose of functional testing – verification of the application. Usually functions of the system are described in the technical specifications in the form of requirements or user scenarios (use case). Based on the specifications developed test scenarios (test cases) and checklists. Then you define priorities, according to the test strategy. Test stsenrii sorted by priority and execution time, and combined into a test plan.
Exploratory testing (ad hoc testing – functional testing subspecies. It is used in growing projects with agile development, where there is no clear documentation and requirements. Exploratory testing – aerobatics in software testing. Qualitative testing is available with highly qualified professionals and almost entirely dependent on artist, his experience, knowledge (as in the subject area and in metodoikah testing), the ability to quickly penetrate into the essence.
Load testing – the process of analyzing the performance of the system being tested under load. The purpose of stress testing, to determine the ability of applications to external loads. Typically, tests are carried out in several stages.
1. Generate test scenarios
To effectively analyze the scenarios should be closest to the real usage scenarios. It is important to understand that exceptions are always possible, and even the most detailed test plan may not cover individual case.
2. Development testbed
Having test cases, it is important to distribute the load ascending order. For analyzing the evaluation criteria necessary to allocate capacity (speed of response, query time, etc.).
3. Conducting tests
Tests are important to promptly enforce scenarios and response system under test. To simulate high loads requires serious hardware and software infrastructure. In some cases, to reduce the cost of works applied mathematical modeling techniques. Taking as a basis the data obtained at low loads, and approximated. The higher simulated load, the lower estimation accuracy. However, this method significantly reduces costs.
The main feature of automated testing – the ability to rapidly conduct regression tests. The main advantages of automation (according to the report of Worksoft) is to increase the efficiency of the staff, earlier detection of defects and higher quality business processes. These advantages are offset by a significant drawback: the high cost – due to the high price of implementation and support of test automation, about 50% of companies still use mostly manual testing.
Any application is created in order to use it. Ease of use – an important indicator of the quality of the program. IT industry is littered with examples where projects took off after a successful fix usability. The wider the audience, the more important factor in usability. Usability testing includes a detailed analysis of user behavior. To assess ergonomics is important to have data not only on the speed of business problems, but also about emotions member, facial expression, tone of voice.
Configuration testing gives confidence that the application will work on different platforms, and it means that the maximum number of users. For Web applications usually choose testing for cross-browser. For Windows applications – testing on different operating systems and bit depth (x86, x64). An important component configuration testing is a test infrastructure: for testing must constantly maintain the park test machines. Their number varies from 5 to several tens.
If your project has more than one component, it needs integration testing. For complex application architecture necessary to ensure the quality is to check on the interaction of the parts of the program. Testing is achieved by the development and implementation of “through” cases. Integration testing is performed after the component. Therefore it is very important to consider the experience of component testing, while respecting the business orientation of the test cases.
Any system has a limit of normal functioning. When the limit is exceeded the system falls into a state of stress and significantly changes its behavior. Stress testing checks the application in conditions exceeding the proposed normal functioning. This is especially important for the “critical” programs: banking software, programs aviation industry, and medicine. Stress testing is carried out not only at the stage of software development, but also throughout the entire cycle of operation for the purpose of data acquisition and processing system behavior over a long period of time.