Are you a manual tester and wondering what's next? There are many paths to growth and skills that you can improve. You can grow in many directions such as test manager, business analyst, test analyst, scrum master, agile coach, project leader, security tester, performance tester, automation tester, etc. As you can see, there are a lot of them, and it's not always immediately clear which direction to go. So before you choose a specific path, you can also expand soft skills, increase your testing knowledge based on the ISTQB syllabus, improve processes in the project or contact a customer. But if you lack technical skills, it's all the more worth your time because no matter which way you want to go, it can be difficult to understand some areas of the product without a technical foundation.
Making the first step
When you are looking for an idea for a way forward and you don't have a person next to you who can help you set it, it's a good idea to gather feedback from your team on what they need and expect from a tester. This is one way that is simple, fast and effective. This is because there is usually at least one experienced person in a team and therefore has much more knowledge and context in which you can help and grow at the same time.
It may seem that everyone will have the same expectations of you, but in reality, it's not quite like that because Android developers, iOS developers, project managers, etc. have a different idea of your work and therefore, different expectations. Once you have collected this feedback, you can then create a list of your goals. When you've mostly focused on soft skills up to this point, most of your focus is likely to be on technical skills.
However, it is also important that the decision you make is an informed one. To make it so, you need to consider whether the chosen goal is consistent with the goal of the company and the team. This is important because if you choose a direction that you won't have an opportunity to use on a daily basis at work, it will be difficult for you to evolve in this area and the newly acquired knowledge will not be appreciated.
What is worth learning?
When you want to develop yourself in terms of technical skills, one of the basic things you should start with and which can open the door to further development, can be mocking application data in code during manual testing. This is to simulate a response from some source to get the desired effect. This source can be an API (i.e., server/backend), a library or even a single code line. This is useful during testing use cases that you are not able to call under normal circumstances or would take a very long time. However, this is especially helpful if you cannot use HTTP traffic interception applications like CharlesProxy for this purpose.
Example The app, after one hour of watching the video, should show a banner. Such conditions are often hard-wired into the code, so testing something like this in a way other than code interference can be cumbersome.
In the beginning, you should also choose one platform to start with because learning two at once can be problematic. Dividing your goals into smaller ones is always a good idea. However, in the future, it will definitely be easier to start learning the same thing on the other platform because certain steps will overlap or be similar.
Some of the steps listed below for learning how to mock application data in code can be done on your own without help of a developer or access to the project. They are useful in tester's work not only for data mocking and are versatile enough to make them worth getting acquainted with even at the beginning of a testing adventure.
1. To begin with, you must learn the commands and how to use a terminal (command line).
Possibility to interact with all tool functions, such as the ones used when building a project, which in this case is a must because it is difficult to build it without using a terminal.
- Easier communication with a developer about difficulties encountered while building the project
2. Next, it's worth learning about git's workflow (a contractual system of code version control) and tools associated with it, such as GitHub, GitLab.
Knowing the version numbers of what features and fixes they include
- Tester's independence in downloading appropriate versions for testing
Possibility to check the name of the branch, on which work is in progress. It is needed to build this version and test it before it is released for testing.
- Faster feedback between QA and the developer
3. The next step is to learn the process of building the project locally through Xcode or Android Studio, depending on the platform.
Possibility to build the project locally, as well as test on all available devices on the market using simulators / emulators. Please note that the capabilities of simulators are limited, so not every functionality can be tested and that they do not fully replace the operation of a real device.
- This allows verification not only by device but also by system version
Examples of features that you can only test on a real device can be found here: The 8 most common mobile features testing problems
Providing more detailed information about errors
- Providing debugger information about errors or the exact location of the crash in the code
4. Finally, learn to work with code and try to understand it so that you can mount the data yourself in the future.
Learning the basics to start learning towards data mocking, writing automated tests or programming itself.
Choosing a path forward is usually a challenge. You don't always have to choose a particular path right away. It's enough to build up your strengths and complement your weaknesses. Keep in mind how important feedback is, as it can be helpful in setting new goals. The important thing is not to stand still but, step by step, implement your plan, and a specific direction of development will come up in the meantime. You may also be motivated by knowing the opportunities that will open up to you when you reach your goals.
The following parts of the articles will show in practice and with concrete examples the above-mentioned individual stages of learning to mock data in an application. This will be a simplified form to make it as understandable as possible. The steps will be shown using an Xcode example.