In the software development life cycle software testing is one of the main processes involved. The objective of software testing companies is to find out the errors and mistakes either in the software or in the coding so that the final product before marketing is without any flaws.
The execution of software testing service provider is carried out at various levels and at each of these levels different software testing types are used. These tests check for the various parameters of the software such as functionality, correctness, completeness, maintainability, efficiency, capability, portability and usability. Such tests give the developer and customer confidence in the quality assurance of the product. There are many ways in which QA Services types can be categorized. Categorization of testing based on the knowledge of system is white box testing, grey box testing and black box testing. Brief descriptions are as follows. Black box testing - treats the software as a black-box without any knowledge of internal behavior. White box testing - the tester has complete access to the internal data structures, code, and algorithms. Grey box testing - involves having access to internal data structures and algorithms for purposes of designing the test cases, but testing at the user, or black-box level. The software testing engineer has to test the software based on different points of view in the software. The views can either be external or internal or somewhere in between depending on the type of testing being carried out. Read more about : Alpha Software Testing As indicated earlier the black box testing has no knowledge of internal behavior and looks at the testing as external. This is probably the most widely practiced type of testing and is close to the customer experience. A test engineer when preparing the black box test cases should ensure that he does not have any preconceived notions regarding the system based on his knowledge. Such assumptions will be biased and you might miss critical test cases. During black box testing the testing engineer not only is expected to test the correct running of the program but also should test different areas and different scenarios to ensure that the program runs efficiently. Black box testing allows the engineer to test different phases of the software. Some of the testing types related to black box testing are functional testing, stress testing, load testing, smoke testing, regression testing, ad-hoc testing etc. These are briefly given below. Functional testing – In this, an application or Web site is validated for conformation to its specifications and correctly performs all its required functions. This involves conducting a series of tests which perform a feature by feature validation of behavior, using a wide range of normal and erroneous input data. Stress testing – this facilitates evaluation of the point of failure of a system or component at or beyond the limits of its specified requirements and reason for failure. A graceful degradation under load leading to non-catastrophic failure is the desired result. In case of memory leak or race condition, it will show up during the stress test. When two tests are conducted individually the software may function satisfactorily; however when these test are conducted simultaneously i.e. race condition, there is a conflict and hence the tests fail. Performance testing services– In this the testing is carried out against heavy loads or inputs such as multiple user log-in, mail servers etc. to find out at what point the web-site/application fails or at what point its performance degrades. The testing engineer would like to ensure that the software performs without any degradation on load. Smoke testing - This type of testing is also called sanity testing. This a quick test to ensure that the major functions of a piece of software work without bothering with finer details. This Origin of this term is from the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch on fire. Regression testing - Regression testing services is done to ensure that enhancement, defect fixes or any other changes made to the software has not broken any existing functionality. The regression testing is very important because of iterative development used in the software development. In this shorter cycle is used with some functionality added in every cycle. Hence it is essential to have regression testing for every cycle to make sure that new features are not breaking any existing functionality. Ad-hoc testing - Ad hoc testing is software testing performed without planning and documentation. Ad hoc testing is a part of exploratory testing, being the least formal of test methods. This test is conducted when at the fag end of software development to determine whether any more tests are to be conducted.
0 Comments
Leave a Reply. |
|