====== 01 Overview ====== **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. ===== Approaches ===== ==== Smoke Testing ==== Taking from electronics: If you turn on a PCB and no smoke can be seen, it probably works. ==== Unit Testing ==== 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. ==== Integration Testing ==== This involves testing how modules of your program interact with each other - for example testing APIs and communication between VIs. ==== Regression Testing ==== Running existing tests after introducing changes to your software, in order to make sure that the existing code base still works as expected. ==== System Testing ==== Testing the overall system functionality according to a test plan ==== End-to-end Testing ==== 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. ==== Acceptance Testing ==== Final demonstration to the customer in order to achieve acceptance of delivery and go for invoicing.