Chapter 8
Testing Agent Behavior
8.1
Unit and System Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
8.2
Statistical Testing of Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.3
Statistics Testing on Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
8.4
Testing Simulation Durations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
While modeling is a complex task, testing of the models is a cumbersome
task as well. The data being emergent results from many tiny interactions
at lower scales, producing large changes on upper levels. This presents new
challenges to find data anomalies or what causes upper level data to deviate
from that expected. The questions posed are how and why system behaves in
unpredictable ways.
Testing systems often involve reworking the model description, to find
whether the model written was error-prone to begin with. It also involves analyzing large amounts of data produced as a result of running the simulations.
Patterns can be studied to test and understand the behavior of the model,
to see if rules were followed. Gilbert and Terna [73] described the use of verbal questioning to find general inconsistencies between various concepts and
relationships.
8.1 Unit and System Testing
Agile methodologies teach that testing is not an end process but done
through the development process. Various automated testing tools have been
produced, suited for software being developed. Good coding practices make
sure that the code is always testable at any stage of development.
• Automatically build the simulation code.
• Deploy the models to run.
• Test the data produced.
Test designs can help identify milestones, where domain experts can come
together to check whether the model is being developed correctly.
237
Testing Agent Behavior
8.1
Unit and System Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
8.2
Statistical Testing of Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
8.3
Statistics Testing on Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
8.4
Testing Simulation Durations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
While modeling is a complex task, testing of the models is a cumbersome
task as well. The data being emergent results from many tiny interactions
at lower scales, producing large changes on upper levels. This presents new
challenges to find data anomalies or what causes upper level data to deviate
from that expected. The questions posed are how and why system behaves in
unpredictable ways.
Testing systems often involve reworking the model description, to find
whether the model written was error-prone to begin with. It also involves analyzing large amounts of data produced as a result of running the simulations.
Patterns can be studied to test and understand the behavior of the model,
to see if rules were followed. Gilbert and Terna [73] described the use of verbal questioning to find general inconsistencies between various concepts and
relationships.
8.1 Unit and System Testing
Agile methodologies teach that testing is not an end process but done
through the development process. Various automated testing tools have been
produced, suited for software being developed. Good coding practices make
sure that the code is always testable at any stage of development.
• Automatically build the simulation code.
• Deploy the models to run.
• Test the data produced.
Test designs can help identify milestones, where domain experts can come
together to check whether the model is being developed correctly.
237
