The first step before anything else is to create a test collection, which will provide you with a stable, reduced environment in which you will test the modifications you will be doing on SMART. For the example we will be giving in this document, I simply used the CACM collection which is available at the same site as the original SMART distribution. To do the actual test on the french stemming function we are adding, a couple of french words were added to the smart.11.0/colls/cacm/cacm.all file to test the various cases using branch coverage. The ideal thing, of course, would have been to create a reduced collection containing just a couple of documents, in french.
When you have indexed your test collection, begin by observing the effects of the actual version of the functions you will be modifying. If you indend to add a stemming function, activate the standard stemming functions on you document. Look at the output, launch an interactive retrieval (using ismart <database>, for example), using stemmed and not-stemmed words. Make sure the standard stemming function is actually used, even if it does not have the behaviour you are looking for. This is just to make sure that you will not try to debug a function that is never called anyway; the creation of a new collection from scratch is sometimes tricky (hopefully less and less as people contribute to SMART documentation - do you have something to contribute?)