This post demystifies Integration testing explained given by Black Box Software Testing Foundations course (BBST) created by Rebecca Fiedler, Cem Kaner and James Bach.
Integration tests study how two or more units work together. Based on number of units, we have:
low level integration testing where we test two to three units
high level integration where we test many units, all the way up to test complete running system
In order to comprehend integration testing, we need to recap what is unit testing. Remember that unit could be whole system. And when you test how your system woks with external system, e.g. Sendgrid for email transactions, you would do integration testing where units are two working system that consists of many units. And you could use gray box testing approach, because you can use code knowledge of your system, but you do not have code knowledge of Sendgrid.
Glass box integration test is when you use code knowledge in order to predict how data flows through several units which integration you test.