The way I would test this software will be focusing on different areas:
unit testing or library:
- I am not sure whether you will have access to the code or the developers have done some unit test on the components in the software. In this phase, you can test out the functionality of the components in the software easily (without the interaction of the UI, and most of the database server conditions e.g., lost connection, time outtimeout etc can be mocked easily).
User stories or UAT testing:
- I am not sure you have external customers or not. If not, you can impersonate as one of the three users and try to use the software. The main focus there is to make sure the software is able to solve the problems of the three users in a scenario etc.
- UI or usability testing:
- as the name implies, to ensure the button/form/textfieldtext field etc make sense for the user. You properly will find most of these problems when doing UAT testing.
- Performance testing:
- not sure the software will be heavily used or not. Just in case, it needs to support multiple concurrent transactions. You might want to ensure the database is able to handle the load and no duplicate user can be created.
2 & 4 need to be done in a test environment (system testing) 1 & 3 can be done in isolation.