When looking for studies on software testing, it was noticeable that authors are trying to incorporate the theories of genetic algorithms with software testing. According to Sabharwal et al (2011), there is a method that could boost the static testing productivity by identifying the problem area of the software. So applying the genetic algorithm to the test data increases the test optimization. Another use for genetic testing was testing the case scenarios for the software (Mohapatra et al, 2009). So applied genetic algorithm is used to enhance the test cases that are generated. GUI testing benefits from genetic testing when Huang et al. (2006) suggested using a genetic algorithm to repair GUI test suites. After Huang et al.' (2006) proposal, Memon et al. (2007) feature an event flow model of GUI-based applications for testing. So genetic testing has opened many opportunities for developer because of its many advantages like the ability to prepare the test in advance and the result being more accurate.
According to Khan & Khan (2012) there are countless methods of testing a software. Different methods serve different purposes, stages and softwares. The most analytical stage of testing is the correctness stage, which is the minimum requirement regarding software testing. Three main methods are used in genetic testing the correctness of a software, which are:.
1. White-box Testing in which software is perceived as a white box or a glass box in a white box, it is the comprehensive exploration of heart structure of the code. In white-box testing the tester need to have a full source code.
2. Black-box Testing is the opposite of the white-box method. Unlike white-box, there is no need to have any knowledge of the heart structure of a software. It only examines the fundamental structure of a system.
3. Grey-box Testing: is a combination between white-box and black box testing, in grey box testing, the tester doesn't need to have any knowledge of the heart structure of a software or the fundamental structure of a software but needs to know the fundamental structure of the algorithm .