Many people think of test automation and code when they talk about technical skills. These aren’t the only skills that testers need. Even testers who do not write code should continue to improve their skills. Let’s look at some examples.
It’s important that a tester understands API testing in order to be able to use the tools and create valuable tests. These are the basics you need to know to understand how to use these tools to create useful tests for RESTAPIs.
What APIs Are?
API stands for Application Programming Interface. APIs allow for communication between components of a system or between systems.
HTTP request components
These include the URI and endpoint as well as the HTTP methods and the request body.
HTTP request types
The most common are:
- – Used to retrieve information from the server.
- POST is used to create new entities.
- PUT is used to update resources on the server.
- DELETE is used to delete resources.
HTTP response statuses
You can find explanations for all codes in many places. Below you will see the five classes they are divided into:
- Informational Responses ( 1xx).
- Success messages ( 2xx).
- Redirect responses ( 3xx).
- Client errors (4xx).
- Server-side errors (5xx).
You can send HTTP requests with parameters within the URL. You can do a Google search and see the URL updated with a parameter at its end.
- It is important to know the JSON basic syntax (the key/value pair) , as most tools use JSON for the request/response body.
- What authentication and authorization look like – authentication involves presenting credentials to the system and having them validated. Authorization is about granting or denying access to the account.
Tools such as Postman are useful for API testing. These “snippets”, which are ready-to use scripts, can be very useful for API testing.
Working With Databases
The database, or DB, is another important component of a system being tested. This is the place where all data is stored. Because it verifies that the information in front-end and back-end match, database testing is a key part of the testing process.
Let’s take an example. The UI allows users to enter multiple shipping addresses. Once the user has completed the form, they will receive an email confirming that the new address has been successfully saved. But, the user doesn’t see their new address when they log in again. This indicates that the data wasn’t correctly saved in the database.
A query can be made in the DB to see what happens. This will allow developers to understand the problem faster and the impact more quickly. It also doesn’t take too much time from the tester.
Most of you will be familiar with Relational Database Management Systems, or RDBMS (Relational Database Management Systems) and the SQL (Structured Query Language), which are used to interact with them. statista states that RDBMS will still be the most popular database management system in 2022.
SQL can be used to create, modify, and remove databases. It can also create, update and delete tables within the databases. This SQL 101 guide to QAs will teach you how to use it.
Some NoSQL databases, however, are starting to gain popularity. These databases are non-relational and store data in a different format than relational tables. MongoDB could be an example.
Understanding source control is another important skill that testers need to have. Version control systems allow you to track changes made to files.
These tools can be very helpful when working in groups, as well as for correcting potential errors in code. Version control tools can be used for all files, even documentation.
Git is the most popular version control system currently in use. These are the basic concepts that you need to understand about it:
Remote vs Local Repositories
Git repositories keep track of and save the history for all modifications to files within a project. The shared code is located in the remote repository. This is where all changes made by the team are stored. This is where all changes from the team are sent to. It contains a copy the project code as well as any local changes not yet pushed to the server.
Branching allows members of a team to create duplicates of the production code in order to fix bugs and add features without having to modify the original version. Most projects will have separate branches for the release, development, and features versions. You might be required to test on a particular branch as a tester before any changes are merged into the common base.
Once a developer has made changes locally, they are able to commit the changes. Commits act as a local snapshot of the current branch state. You can either view or come back to the commits history, or you can access the changes. Git saves all commit history so that you can view when changes were made to the codebase.
Developer tools are a web tester’s best friend. They are often very simple and can help you identify potential problems in your application. You can do some cool things with them:
- Calls sent via the web client can be viewed and responses recorded.
- Monitoring the performance of web apps
- Simulating slower network connections
- Simulating other devices or screen sizes in specific resolutions.
- Take screenshots and/or video recordings of the test steps.
- Simulating different geographical regions
The command line is the last technical skill that testers should have. The command line is an interface that accepts text commands and passes them to the operating system of the computer to run.
Windows has the Command Prompt, which can be run by simply running ‘cmd’. PowerShell is also available. The Terminal is available on Mac OS, while CLI can be used by Linux. Common commands include:
- Cd is used to navigate to a particular location on the machine.
- cd.. allows you to move up a directory.
- ls– Lists all files and directories in the current directory
- mkdir for creating a new director.
- touch – to create a new file.
- grep/ findstr: This command allows you to list all files that match a particular regular expression.
These are only a few examples. You can use the helpcommand to see a complete list. It will become easier to use the command line once you are comfortable with it, especially as you will be familiar with what you should look for.
Even though some testers aren’t skilled in automation testing, this doesn’t mean they shouldn’t be able to benefit from technical skills. These include API testing, database work, version control, browser developer tools, command-line, and working with databases.