Functional testing
Functional testing is when you determine if the solution is performing according to the requirements that have been agreed on. You would use functional testing to make sure that the system is performing as required and providing the required outputs.
Functional tests that you can use include:
- Unit test
- General testing
- User acceptance testing (UAT)
- System test/end-to-end
- Integration test
Unit test
In a unit test, you’re ensuring that one piece of your solution works. For example, you’re implementing Microsoft Dynamics 365 Customer Insights - Journeys and want to perform a unit test on creating emails. The unit test makes sure that the functionality of creating emails is working as intended by the previously agreed-on specifications.
In this scenario, you’re not testing for the bigger picture or if the full solution works. Additionally, you’re not testing if you can send the email and if you can add features to the email. In the unit test, you’ll only test for creating the actual email. All project team members should perform unit tests as they build customizations, configurations, automation, and custom code.
General testing
General testing is where most testing is done by testers to make sure that the solution implements the requirements.
User acceptance testing
In user acceptance testing (UAT), the users will do all the testing. They’ll do the tests based on the user stories. They need to check if you’ve successfully created the solution so that it covers all user stories. The users will go through one user story at a time and make sure that each is fulfilled by the solution. If the solution doesn’t support a user story, then the solution can’t be accepted as completed.
System test
A system test should be performed by someone who hasn’t been involved in the process. With a system test, you’ll go through the system and determine if logical vulnerabilities exist. This type of test allows you to test if the system makes sense for people who don’t know the specifics of this project. An important step of testing is to determine if the system is logical and developed in a proper way.
System or end-to-end testing verifies the solution in a fully constructed environment across multiple business processes. Typically, this testing takes more setup of data for testing because it must be valid for all processes that are being tested.
Integration testing
Integration testing is when you test if the integration works. For example, consider a scenario where you’re working with an enterprise customer that has an integration between Microsoft Dynamics 365 Finance and a company that does credit checks. You need to test that the integration works with one record and that you get the expected data returned and stored in the appropriate place. However, if it’s an enterprise customer, you’ll most likely not have only one record being sent through the integration but several records simultaneously, in increments of hundreds or thousands a day.
Additionally, you’ll need to stress test the integration. You need to make sure that the integration can handle the maximum number of calls that can happen in a day. Also, you’ll need to test what will happen when the integration does fail to determine how that’s handled. The stress test will help you find out if you’ll be notified of a failure and if the system will save the records that didn’t go through the integration. Make sure that you create a system that takes care of failures, even though your goal is making a system that won’t fail.