Like in other fields, computer products (applications, hardware, etc.), before being marketed, require some level of testing to verify whether they meet their design and functional specifications – called functionality test. The general process of performing functionality test consists in the production of a test plan that is then executed by humans or by automated software tools. The main difficulty in this entire process is the definition of such test plan. How can we know what a good sequence (test plan) is? The rule of thumb is to trust on people who understand the workings of the application being tested and who can decide what should be tested. The danger is that experts, due to their overconfidence on their knowledge, may become blind to issues that should otherwise be easy to see. This paper describes a technique based on genetic algorithms that is able to generate good test plans in an unbiased way and with minimum expert interference.