2 Tomas Salamon
papers treating practical issues of their design, development, implementation, de-bugging, testing, deployment and maintenance are scarcer.Multi-agent methodologies published so far, such as Prometheus ,Gaia , SODA , Tropos , etc. seldom deal closely with debugging andtesting of multi-agent software. Just a few works published in recent years areconcerned with debugging and testing of multi-agent systems, and they are mainlyfocused on a particular technique or method, not on the testing approach of multi-agent systems as a whole. Jonker and Treur  suggest an approach of verificationof multi-agent systems based on temporal epistemic logic. However, such a me-thod is suitable only in the phase of system design and does not solve the testingof an existing system. Others ,  deal with agent-oriented unit testing as auseful technique for testing of multi-agent systems (further elaborated in this arti-cle) but cover just a part of the problem. Liedekerke and Avouris  and Ndumuet al.  describe debugging methods of multi-agent systems based on visualiz-ing of their operation; that approach could be helpful, but it isn’t able to cover theentire complexity of the problem. Poutakidis et al.  suggest multi-agent systemdebugging using design artifacts, an approach that is focused on testing agent in-teraction protocols. Gatti and Staa  conducted research focused on the presentstate of multi-agent debugging and testing, and concluded that there is no singlebest approach to multi-agent debugging and testing, and that the best solution is acombination of several existing techniques.Although there are a number of tools and approaches designed for testing vari-ous kinds of problems in multi-agent systems, we are still lacking a consistent me-thod for multi-agent testing.This paper deals with testing of multi-agents systems generally and with a spe-cial interest in testing agent-based models. It is based on our research and the ex-perience with debugging and testing of agent-based models in the JADE multi-agent framework  and in our own simple multi-agent framework called
.This paper is organized as follows. In the remainder of this chapter, our ap-proach of three layers is introduced. In the following three chapters, testing on allthree layers is described. Finally, in the fifth chapter are presented our conclusionsand suggestions for future work.
1.1 Three-Layer Approach
Debugging and testing of traditional applications is founded on testing of the indi-vidual parts of the system. Generally, if we can check every single part of the soft-ware and their integration, we can theoretically consider the software free of er-rors. There is indeed a problem that we are not able to check every state and everyeventuality of today’s complex software, so a perfect testing is not practically fea-sible. Nonetheless, this problem is outside the scope of this article.