If you don't plan changing your graphical interface within the next period of time completely, GUI tests definitely make sense.
The system as a whole is tested via the GUI and not the GUI itself. This is a common misunderstanding in GUI test automation. The GUI tests are executed from the end user's perspective on a "living" system.
You can reflect the whole workflow, how the end user sees and experiences the application.
Functional tests to check whether the function is working or non-functional areas like load and performance of the software. Is it better for you to use one tool for both or is it even better to use two tools for these separated sections?
Automate tests of software with frequent code changings that you want to check regularly and that are boring for manual testing. As an exciting task testers then can focus on test architecture, test design and manual testing of advanced use cases. This can safe time and money, but the initial costs of test automation must pay off of course.
For a stable and successful test automation there are several questions to be answered in advance:
These questions influence the manner of implementing the tests and of how flexible the scripts are kept.
First of all create a list of criteria for tool selection (Exemplary check list of QF-Test)
On the one hand you surely have several "must have" criteria in mind like the supported technologies, platforms, integration in the build process or stable recognition of graphical elements of your software. On the other hand there are "nice to have" criteria that you would give up in favor of another aspect. You then can test, evaluate and compare the different tools regarding these criteria. Then you only have to choose one.
Another aspect is how you want to create the test: Do you want to code or record them via capture/replay, do you follow a keyword-driven or behavior-driven testing (BDT) approach?
Most importantly the test team should accept the tool.
Depending on the number of tests you want to automate you should consider how many QA engineers or developers you need with which experience level to achieve your automation project goal.
In every case it is important to train the team for the tool, internally, by an external trainer or the tool provider. In the case of QF-Test training of 3 to 5 days on-site or via webinar are recommended.
Is there a possibility of futher consulting or a support aggreement to get answers fast and competent help from experienced users or the tool provider? Is there e.g. the offer of assistance for the tool introduction?
Since there are open source and commercial test automation tools in the market there should be a budget in case of selecting a fee-based one.
In every case there is an effort of setting up the automated tests.
Avoid the mistake to choose a less appropriate tool just because of the procurement costs, because the migration to another tool can even cost more. Commercial tools usually guarantee support and further developments. Regardless of the choice of tools, your own personnel costs are the much greater financial expense.
You should keep in mind that the automated tests have to be created first and then maintained regularly.
When you have set up the tests the time you would have spent for manual testing is reduced and you have the advantage that you can run the tests regularly or even more often than before to get faster feedback about the state of the software. This quick feedback gives you the possibility of reacting systematically and earlier to possible bugs. This increases software quality.
If you are considering a tool that is supported directly by a consulting company, you can additionally purchase consulting service directly there. There are consultants that are specialized in different fields of automation or generally in test projects.
You can also purchase a tool that offers support and consulting.
In any case it is senseful to have the possibility to have consulting and training offers when questions or unforeseen challenges arise.