Wallner, J. P. (2010). Hybrid approach for model-based random testing [Diploma Thesis, Technische Universität Wien]. reposiTUm. http://hdl.handle.net/20.500.12708/160863
random testing; model-based testing; test case generation; test automation
en
Abstract:
Modernes Software Testen besteht aus vielen unterschiedlichen Techniken um mit der steigenden Komplexität von Software umzugehen.<br />Software Tester stehen vor der schwierigen Aufgabe die Softwarequalität zu verbessern.<br />Ein wichtiges Problem ist die Erstellung von sinnvollen Testfällen.<br />Testfälle für jede mögliche Eingabe einer Software zu schreiben ist nicht machbar. Dies führt natürlich zu teilweise ungetesteten Teilen der Software. Ebenfalls gibt es seltene Eingaben an eine Software, welche schwierig sind in Tests zu beachten. Ein Beispiel hierfür sind Doppelfehler. Testfälle für solche Fehler kommen selten in händisch erstellten Testfällen vor.<br />Automatische Testfallerstellung kann helfen, solche Lücken zu schließen.<br />Allerdings kann auch hier nicht jede mögliche Eingabe getestet werden, da dafür viele Testfälle vonnöten wären. In dieser Diplomarbeit wird eine Methode für Zufallstest vorgestellt, welche die Testfälle zufällig anhand eines Models einer Software erstellt. Mithilfe dieser Zufallsauswahl wird das Problem der zu vielen benötigten Testfälle angegangen. Mit dem Programm \gls{IDATG} (Integrating Design and Automated Test case Generation) von Siemens wird ein Model der Software erstellt. Von diesem Model werden Zufallstests automatisch erstellt. Das Model besteht aus einem Graphen und Testfälle sind Zufallsbewegungen in diesem Graphen. Da manche Teile des Graphen selten erforscht werden, wurde ein Zusatz zu der Zufallstesterstellung eingebaut. Dieser Zusatz besteht aus heuristischen Suchmethoden, welche in einem Hybriden Ansatz mit der Zufallserstellung kombiniert wurde.<br />Diese hybride Kombination wurde in einer Fallstudie untersucht. Die Resultate weisen darauf hin, dass der hybride Ansatz größere Teile des Models erforscht, als der pure Zufallsansatz. Ebenfalls wurden Fehler, welche mit systematischen Methoden schwer zu finden sind, mit dem hybriden Ansatz aufgezeigt, weil der hybride Ansatz verschiedene Eingaben kombinieren kann, die selten getestet werden.<br />
de
Modern software testing comprises of many different techniques to cope with the complexity of nowadays software. Testers stand before the difficult task to enhance software quality on many levels.<br />One main problem is the creation of meaningful test cases. It is infeasible to write test cases for every single possible input of a program, which leads to the problem, that not every aspect can be tested. There are especially rare inputs, which are difficult to obtain, for example for double errors. These events are usually seldom encountered in manually crafted test cases.<br />Automated generation of test cases can help to overcome this problem, but still not every input can be tested in this manner, since we would need too many test cases for this. In this master thesis a method of random test case generation from a given model is studied. By using this random factor the enormous amount of test cases, which are needed can be addressed. With the tool-set Siemens \gls{IDATG} (Integrating Design and Automated Test case Generation) a model of the software under test is specified from which random inputs are drawn. The model is represented as a graph and the test cases are random walks in that graph. To overcome the drawback that some areas of the model are rarely reached a heuristic search is added to increase the coverage of the graph and to get out of local minima.<br />This hybrid combination of random testing and search heuristics was investigated in a case study. The results suggest that the hybrid approach covers the model of the software under test to a higher degree than pure random testing. Also defects, which are difficult to detect with systematic testing can be found with this method, since it can create combinations of inputs that are rarely tested.