Er zijn twee soorten probes: interne probes en externe probes.
Interne probes worden ingevoegd in het corpus van een doelmethode. Bij interne probes instrumenteert de BCI-engine (bytecode-instrumentatie) de klasse of de JAR-bestanden die de doelmethode bevatten.
Externe probes worden ingevoegd in het corpus van een methode die de doelmethode aanroept. Met andere woorden, ze worden ingevoegd op de aanroepende locatie in de aanroepende methode en dus niet in de aangeroepen methode. Bij externe probes instrumenteert de BCI-enigine de klasse of JAR-bestanden met de methoden die de doelmethode aanroepen.
Externe probes worden vaak gebruikt bij het controleren van aanroepen uit een project naar een systeembibliotheek of naar andere ondersteunende klassen buiten het project. Externe probes zijn ook handig als het moeilijk of onmogelijk is om de klassenbestanden met de doelmethoden te instrumenteren.
Het hangt van het probefagmenttype af of een probe een interne probe of een externe probe is. Zie Probeffragmenttypen voor een geannoteerde lijst met probefragmenttypen.
Een Probekit-bronbestand (probebestand) kan zowel interne probes als externe probes bevatten. Een afzonderlijke probe kan echter geen geen methode- en externe probefragmenten naast elkaar bevatten; alle probefragmenten in een probe moeten in dezelfde categorie vallen.