We all know the value of detecting errors in the development stages of an IT application. Well begun is half done as they say. The return of investment will be all the more higher, if this detection can be achieved without the execution of main code. Static testing helps us achieve precisely that.
Static testing is the verification of a software product, done in a static environment i.e. testing done without executing the code. Carried on by means of manual and automated reviews of documents, static testing enables early detection of defects during the initial phase of the development cycle of product.
Static testing involves going through written materials which can give a holistic view of the general working of the product under test. This information can be gained by delving through web page content, test cases, source code, the main specifications and the like.
Devoid of any process, this aspect involves a general review of working manual of the product and ends with a small bunch of unofficial comments which are never documented. Generally a team of two persons are involved with the aim of improving the quality of the document along with the author.
Similar to the previous technique, a team headed by a technical expert and consisting of designers, users and technical architects, detects flaws in the product. An assessment of technical concepts along with a description of suitable alternatives to the product is done. At the end of it, the reviews are documented.
The document of the code is presented to a team of programmers, recorders, and readers. The code is meticulously gone through step by step in detail. Participants then ask questions relating to errors and possibilities of violation of development standards.
Often used for safety/ time related criticality of the system, inspection is pretty similar to the walkthrough, except that it is a lot stricter and formal in nature. Also, greater number of sophisticated errors comes out for QA testing.
It is a review of the source code of the software product and involves checking of syntax, the standards of coding involved, along with the coding optimization.
In spite of the fact that Static testing requires a long time spent in heady discussions and meetings, it is well worth the time to prevent defects from occurring at the latter stages of product development. Therefore static testing is rightfully considered as a major step towards developing an application zero bugs.