Research Article

Behaviour Preservation across Code Versions in Erlang

Listing 29

SecEr’s output when tracing and comparing values in both versions.
$  ./secer -pois "test_orddict:rel1()" -funs "test_orddict:funs()" -to 3 -cfun "secer:show()"
Trace old version:
POI: orddict/orddict_old.erl’,60,tuple,1
Value: ,-9
POI: ’orddict/orddict_old.erl’,60,application,2
Value: [,-9]
POI: orddict/orddict_old.erl’,60,tuple,1
Value: ,3.1981469696010247
POI: ’orddict/orddict_old.erl’,60,application,2
Value: [,3.1981469696010247]
Trace new version:
POI: ’orddict/lists.erl’,836,var,’X’,1
Value: ,-9
POI: ’orddict/lists.erl’,836,var,’Y’,1
Value: ,3.1981469696010247
POI: ’orddict/lists.erl’,839,application,1
Value: [,-9]
Function: secer_failing_test/0
----------------------------
Generated test cases: 1
Both versions of the program generate identical traces for the defined points of interest
----------------------------