Does 'system testing' precede 'system integration testing'?
Accordin to ISTQB etc., it should. But from practice I can see it is not that clear. An example: We have a backend (pulling data from external systems, processing...), DB, and frontend. Testers do system tests (in GUI) on the SIT environment (system integration testing). Also to make the system testing, they need a system which is the result of the system integration testing. So how can I say that SIT follows system testing? I think this is valid only if the other systems are not under my control (external systems)?
It is often risky and problematic to test the integration between your system and external systems that you do not control. For example, if your system performs financial transactions, it is daunting to test whether you perform those transactions correctly. Sometimes there are "test" versions of the external systems available for integration testing. If there are not, your options are constrained. True story: at a previous job, one of the testers performed a boundary test while integrated with an external system of a large, international bank. This resulted in a unintentional $999,999,999 transaction. Someone eventually caught the error, and no harm was done, but it still resulted in a conference call between the bank, our company, and the United States Federal Reserve. The bank's system was ultimately at fault, but the tester was discouraged from performing that type of test in the future. ISTQB terminology/practices aside, you should aim to perform integration tests with fake data and fake/mocked external systems first. After that, you may choose to perform live tests with live external systems, but you should perform those tests with the potential risks in mind.