QA Testing Fundamentals
Let’s start off by answering the question: what is Software testing and what need to know before applying to Nordcurrent as a junior software tester? Working as a game tester, you won’t only play video games, but you will also have to follow fundamental testing principles.
Software Testing Levels
Let's first look at testing levels and methods. Software testing is classified into four levels: Unit >> Integration >> System >> Acceptance. Let's look at each Testing Level individually:
Unit Testing - A level of the software testing process where individual units of software are tested. The purpose is to validate that each unit of the software performs as designed. You can test anything; picture trying out a new pen you've just made. When testing at the unit level, you'd use an unassembled pen that's made up of three parts: a stopper, a middle one, and the pen body. Each component of the pen should be examined individually to ensure that it functions properly. Similarly, when testing the game, you should test the smallest existent unit in the computer game code, such as a function (or method), at the unit level. Testing at this level is normally done by the game's programmers; but, as manual testers, you should be aware that such testing exists and that it is critical for the project's success.
Integration Testing - A level of the software testing process where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units. If we use the pen example, we should examine the interaction of the distinct pen components at the integration level, for example, does the pen heart fit into the pen body? Whether or if the pen stopper closes securely, and so forth. Returning to the software, it appears to be a set of interactions between various functions, as well as ways for removing existing flaws. Testing is done at this step by both the programmer who creates the game and the tester, who is also an automated tester, who writes tests to check the product's quality. We hope that after some time, you will become a good automated tester and be able to take the test at this level.
System Testing - A level of the software testing process where a complete, integrated system is tested. The purpose of this test is to evaluate the system’s compliance with the specified requirements. Depending on the specifications provided, an already fully completed product is evaluated, for example, as assembled functionality (functional testing) as well as a variety of other non-functional tests. In terms of games, the Junior tester at Nordcurrent will spend the most time at this level of testing; testing is manual and encompasses all sorts of testing.
Acceptance Testing - A level of the software testing process where a system is tested for acceptability. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery. At this stage, we are evaluating the project's quality as well as whether the game is enjoyable enough, and so on.
Software Testing Methods
While conducting various Software Testing Types During various Software Testing Levels major methodologies are being used. Let’s take a look at each of them separately:
Static Testing - A method of testing whereby work products are reviewed without executing them.
Dynamic Testing - A method of testing whereby the behavior of work products is evaluated by executing them.
Black Box Testing - A software testing method in which the internal structure/design/implementation of the item being tested is not known to the tester.
White Box Testing - A software testing method in which the internal structure/design/implementation of the item being tested is known to the tester.
Gray Box Testing - A software testing method which is a combination of the Black Box testing method and the White Box testing method.
Ad Hoc Testing - A method of software testing without any planning and documentation.
Manual Testing - A method of testing whereby software is tested manually (by a human)
Automated Testing - A method of testing whereby software is tested with the help of scripts and tools.
As a Junior QA tester who will apply to work in our company, you will perform tests most often at the system level using the black box method.
Types of Testing
Lastly, it’s time to get to know different types of testing. They are classified as functional or non-functional. Each of them is critical to the game's overall quality. There are a total of eleven types. Let’s take a look at each of them:
Compliance Testing is a type of testing to determine the compliance of a system with internal or external standards. It falls under non-functional testing. For example, developers of all platforms such as Apple, Google, and others. has a set of documents that you, as the tester, will need to secure in order to test the game.
Security Testing is a type of software testing that intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders.
Performance Testing is a type of software testing that intends to determine how a system performs in terms of responsiveness and stability under a certain load.
Usability Testing is a type of software testing done from an end-user’s perspective to determine if the system is easily usable.
Functionality Testing is a type of software testing (or a group of software testing types) whereby the system is tested against the functional requirements/ specifications.
Regression Testing is a type of software testing that intends to ensure that changes (enhancements or defect fixes) to the software have not adversely affected it.
Confirmation Testing is a type of testing conducted to confirm that a defect has been fixed. Confirmation testing is frequently confused with regression testing. The main distinction is that when you run a confirmation test, the test code has been changed for some reason.
Smoke Testing is a type of software testing that consists of a non-exhaustive set of tests designed to ensure that the most critical functions are operational. The results of this testing are used to determine whether a build is stable enough to move on to the next round of testing.
Read and understood all the levels, methods and types of testing? Congratulations! You are one step ahead in becoming a QA tester! Apply as a Junior tester and send us your cv today!