Test-driven agent-based simulation development

Nicholson Collier, Jonathan Ozik
2013 2013 Winter Simulations Conference (WSC)  
Developing a useful agent-based model and simulation typically involves acquiring knowledge of the model's domain, developing the model itself, and then translating the model into software. This process can be complex and is an iterative one where changes in domain knowledge and model requirements or specifications can cause changes in the software that in turn may require additional modeling and domain knowledge. Test-driven development is a software development technique that can help
more » ... te this complexity by evolving a loosely coupled flexible design, driven by the creation of many small, automated unit tests. When the focus shifts to writing small tests that exercise the simulations behavior, the larger problem of translating a conceptual model into working code is decomposed into a series of much smaller, more manageable and highly focused translations. This paper explores the application of this technique to agent-based simulation development with examples from Repast Simphony, ReLogo and Repast HPC. 978-1-4799-2076-1/13/$31.00 ©2013 IEEE Collier, and Ozik design and provides built-in verification at a low-level of granularity. These tests are written iteratively in conjunction with the code they are intended to test. TDD proceeds in the following manner.
doi:10.1109/wsc.2013.6721538 dblp:conf/wsc/CollierO13 fatcat:cvjfpv6llvewfjmbxu4wscvxga