A portable framework for automatic testing