User Story 1:
As developers, when implementing new software features, we want to be able to test them right away (as we go).
User Story 2:
As developers, when integrating new features into our software, we want to make sure that we don't break anything in the overall system.
Taking from electronics: If you turn on a PCB and no smoke can be seen, it probably works.
Testing individual functions/VIs in the program to give a wide range of inputs and check that the outputs are correct - things like the Unit Test Framework, Caraya, VI Tester etc. can help you with this.
This involves testing how modules of your program interact with each other - for example testing APIs and communication between VIs.
Running existing tests after introducing changes to your software, in order to make sure that the existing code base still works as expected.
Testing the overall system functionality according to a test plan
Test from the end user’s experience by simulating the real user scenario and validating the system under test and its components for integration and data integrity.
Final demonstration to the customer in order to achieve acceptance of delivery and go for invoicing.