i am trying to understand how spike works ...

i've made a couple of searches but I couldn't find something relevant so I decided to ask you guys about the fuzzing process using spike apis

my understanding is that you have to create a script in order to call the functions defined in spike.c like

s_block_size_binary_bigendian_word(“somepacketdata ”);
s_block_start(“somepacketdata”)
s_binary(“01020304”);
s_block_end(“somepacketdata”);
as most (though a few) spike guides state ... and then what ?

i've seen that there are a few .spk files that contain various functions:
./src/test.spk
./src/syslog.spk
./src/gopherd.spk
./src/apachechunked.spk
./src/immunitysec.spk
./src/blocktest1.spk
./src/audits/UPNP/upnp1.spk
...
although I am starting to understand the spike api a tiny bit better as I am writing this post (i've found this tool smtp_send_tcp which requires a spk file) ... my question is: can anyone write a couple of lines about the spike fuzzing process (with his/her own words) and then give a short example of how to use the newly custom created .spk file ?

many thanks