Testing is usually done in the early stages of a recruitment process to "weed out" applicants that don't meet some criteria. Often times testing is not the fairest way of assessing applicants as it targets certain abilities and there are ways to get around tests.
However, despite some issues that may come with testing it if often the most cost-efficient way for a company to reduce their pool of applicants. The ATO had over 5800 applicants and took in about 250 graduates. That's a ratio of 23 to 1. Big 4 accounting firms get over 15000 applicants for 300 positions. The competition is pretty high. The good thing about this type of testing is that there is generally a low-ish barrier. If you can meet the "pass" criteria you will most likely pass this stage (usually 50 percentile or higher).
Technology companies typically use coding tests, while your more "general" (other) companies use aptitude tests. Some companies use both!
Aptitiude tests are psychometric tests that test for a variety of different criteria. These criteria can range from your numerical reasoning ability to your ability to deduce logical patterns from a set of images. They can also test for your reaction to certain customer situations. These tests can come in different forms. With these tests it is important to note that they are score using a percentile system. Scoring 40% on a very difficult test can still land you in a top percentile.
Also note that these tests often see how well you deal with time constraints, it is important to take note of how much time you have to do each question.
These are typically SHL tests. These are ones you should practice,You may recognise these types of test from High School (or if you did UMAT). These tests usually have 3 different components.
These questions test for your ability to calculate numbers! Make sure you have a calculator nearby. They ask a variety of questions, from interpreting data tables to interpreting different types of charts.
With practice these become quite easy once you recognise the different types of questions that exist..
These questions require you to read a statement or paragraph and deduce statements from it. This may also require you to think about the company's values and how they would want you to answer the questions.
Again, with practice these become quite simple.
These are probably the trickiest. These require you to deduce or induce a pattern from a set of diagrams. You will be given a sequence of diagrams and you will be required to select the next diagram in the sequence. This is very important to practice. Once you have a general idea of what patterns are commonly used it becomes easy.
A lot of tests a gamified! These are normally provided by Revelian. Note that while with SHL tests you will be required to redo them for each company that wants you to do one Revelian keeps scores for a year, so try to do well on the first time!
With these types of test it is a lot harder to practice, simply because you can not. They are usually designed in a way that tests for your ability to quickly calculate numbers on the fly or memorise certain patterns. Because they are often unique to a company it means that you can not try before you do it. These games can look deceivingly simple, but they require you to keep careful time management.
Coding tests! You might be sensing a theme with the above types of tests. They are all time constrained and it is always good to practice. This goes for coding tests as well. For a coding test you may receive an online link to a testing platform or you may receive a coding task that you are required to do within a certain time period. Most companies use an online testing platform simply because it is easier and cheaper to manage applicant results.
Currently there are two main test providers for coding tests.
The differences between the two (functionality-wise) are minimal. The main difference is that HackerRank tests often provide an anonymised set of test cases for you to test your program against while Codility only allows for custom test cases.
With coding tests it is important for you to know a language. Knowing a language entails knowing the different packages and libraries that you can use. If you are using Java a very important thing to note is the existence of lists (or any of the other built-in data structures). This is not DSA anymore, you are allowed to use pre-built classes.
Some companies give 1 hard question, some companies give a bunch of questions and ask you to do a couple of them. They are usually all different. HackerRank has some premade questions that I recommend you to check out, they can be very helpful for you to get to know the platform and what you can kind of expect. You can also go to LeetCode. They have a large database of coding problems which are categorised into Easy, Medium, and Hard.