Thursday, April 5, 2012

Automating IT Test Process


Program testing is essential while and after writing a program, whether this test will be conducted manually or automatically. Program testing should include design test cases, executing the software with those test cases and verify the program output.  In their paper Maamri, R and Sahnoun, Z. (2007) indicated that 50 % of the development cost is dedicated to testing and that this percentage becomes higher for critical software.

On the other Hand, it is almost impossible to write the “correct program” with no errors or bugs, as well writing the program taking into consideration performance, reliability and functional aspects in a tough tasks if compared to writing a program to check all that.

For all that, I believe that it is easier to write a program to check the correctness than writing the correct program.

However, if we are discussing that building the program from the first time correctly is almost impossible, and that rebuilding it again and again is not an easy task, how can we make sure that the program checker will be correct. Blum,M. (1988) argues that writing the program checker is sometimes easier than providing the original program correct.


“The challenge for building reliable software relies in that programmers do not take the time to write detailed specification and documentation, as a result software documentation is incomplete or out of date” Hangal,S. , Lam, M. (2002)


Even if formal specifications were given to write the program, we still need the automated program checker and its easier to have it to check the program code; the program checker does sanity checks against the formal specifications and “detect any error in system model or properties” (Rozier,K. ,Vardi,M.).



Automatic program testing is easier to write if we have series of predefined set of test cases, first of all, such program checker can validate the input prior executing the program against the output and might generate input test cases as per defined parameter.



References:


Blum,M. (1988) ‘Designing Programs to check their Work’ [Online]. Available from: http://www.icsi.berkeley.edu/pubs/techreports/tr-88-009.pdf
(Accessed 21 January 2011)

Hangel,S. Lam, M. (2002), ‘Tracking Down Software Bugs Using Automatic Anomaly Detection’,[Online]. Available from: http://www.cs.ucr.edu/~gupta/teaching/260-08/Papers/p291-hangal.pdf doi: doi:10.1109/ICSE.2002.1007976 (Accessed 21 January 2011)

Maamri,R. ,Sahnoun,Z. ,(2007), Multi-Agent Platform for Software Testing’ [Online]. Available from:
(Accessed 21 January 2011)

Rozier,K. ,Vardi,M. ‘LTL Satisfiability Checking’ [Online] Available from: http://ti.arc.nasa.gov/m/profile/kyrozier/papers/RozierVardiSPIN07.pdf
(Accessed 22 January 2011)



Verhoeff,T. (1990),‘Guidelines for Producing a Programming-Contest Problem Set’, [Online]. Available from: http://ser.cs.fit.edu/samples/guidelines.pdf
(Accessed 22 January 2011)

No comments:

Post a Comment