As you continue to develop FileMaker solutions, you will want to incorporate testing efforts throughout the development process. Here is a brief description of the testing process to get you started.
Testing has a number of purposes, including:
- Ensuring the quality of the solution
- Improving user satisfaction
- Decreasing rework
- Minimizing the cost of development (often by decreasing rework)
Expected vs. Unexpected Behavior
You want to be doing at least two things:
- Try using the solution as you would expect the users to do, confirming that this produces the desired result.
- Try using the solution in unexpected ways, seeing whether you can get it to fail, and whether that failure is handled gracefully.
As the developer, you are likely to use the solution in predictable ways and to forgive or ignore unexpected behavior that others might find confusing. To address this, involve other people in your testing effort, including some people who don’t have any expectations of what the solution will do. Avoid involving the people who will finally use the solution, however — you don’t want to give them a bad impression of your work by sharing it too early.
Go back to your user stories from the beginning of this process. For example, here’s one from the example scenario:
- As a salesperson, I want to schedule followup communication easily, especially when I leave a voicemail.
Determine the series of actions in the system that will accomplish this goal. Try those the actions in the solution, testing whether you can get from the beginning to the end with a satisfactory result. Note any points in the process where things can go wrong, and be honest with yourself about how your users will react to those issues.
User Acceptance Testing
Once you’ve tested the system and have addressed any issues that you’ve discovered, share it with a few of the people who will use it. If you can, choose them thoughtfully: one person who is good with computers, another person who isn’t, and somebody you trust to be honest with you.
Think of this as the “user acceptance testing” phase. You want to evaluate whether they can do their job. What ways does the system make their job easier? What ways does it make it harder?