Functional testing is required to verify that a software application performs correctly according to design specifications. It provides you with the opportunity to identify any defects which would prevent the application from being unfit for users.
Unit tests are typically performed by each developer before integrating a component into the larger system. Their purpose is to confirm that the component is sufficiently complete and correct to integrate without causing undue impact on the rest of the development team. Unit tests should be performed on each component prior to its integration into any larger system. They are not supervised by the QA team, and results do not need to be documented and managed.
Unit Testing is the testing of “units” or “components” of a system during the development process by the developer. Unit Testing should occur at the smallest or most granular level of developed code such as an Appian object or even a piece of logic inside an Appian object. Unit Testing should then be expanded to test whether objects interact with each other appropriately.
Unit Testing occurs throughout the development cycle, but specifically at the following points:
If new connections such as an integration, a subprocess being inserted into a process model, or a database connection are part of the story being developed, System Integration Testing should also be performed as part of Unit Testing.
Unit Testing is important for many reasons. It improves quality of developed work, it increases efficiency by allowing developers to find and resolve issues that could arise in QA testing, UAT, or even in production, and thorough Unit Testing leaves a developer and team confident in developed work.
The strategy for Unit Testing will be different for different object types. Below are instructions for how different types of objects should be Unit Tested:
Note that the above is not an exhaustive list of object types that need to be Unit Tested and it is also not an exhaustive list of strategies for Unit Testing the listed object types.
User Acceptance testing is the formal, contractual verification of an application by the end user team designated by the Product Owner. It is primarily performed by the end users, and the delivery team only has a supporting role. Even with this limited role, management of the process is critical to project success - UAT should happen with every delivered increment and end user involvement is critical to project success.