Integration Testing in Software Engineering: Definition, Guide & How-To