A test code generator based on template variable coverage in gray-box integration testing for web applications