Given Board Craft’s experience, we strive to offer effective solutions tailored to individual needs. We use different types of tests in our daily work. Understanding how each type of test works helps to develop an effective work plan:
1. Unit Testing
Unit testing is a critical software development practice. It involves testing small parts of a software application in isolation, such as functions, methods, modules, or classes. These individual units make up the entire application, and if they don’t function properly on their own, they won’t work well together. Unit testing ensures that each component works correctly before integrating it into the larger system.
A unit test usually requires:
- Test Fixture: components of a unit test responsible for preparing the necessary environment to execute the test case. They create the initial states for the unit under test to ensure a more controlled execution where there is no interference from external components.
- Test Case: a script to verify the behavior of the unit being tested
- Test Runner: a framework to orchestrate the execution of multiple unit tests and also provide reporting and analysis of test results.
- Test Data: a list of values simulating real-user inputs into the system
2. Integration Testing
Integration testing is a software testing method where components are combined and tested together as a whole. These components have passed unit testing, which means that they work well independently, but issues may arise when they interact with each other. Testers use integration testing to uncover defects that arise from code conflicts when the modules are integrated.
There are several strategies to perform integration testing, with the 2 most common approaches being:
- Big Bang Approach: integrating all components and test everything at once
- Incremental Approach: integrating and testing several components with closely related logic group by group
Incremental Approach is carried out by 3 different methods:
- Bottom-up approach: integrating and testing components that are smaller in scope first, then gradually moving to larger components
- Top-down approach: integrating and testing components larger in scope first, then gradually moving to smaller components
- Sandwich approach: combining the 2 former approaches
3. End-to-end Testing
End-to-end testing, also referred to as E2E testing, is a game testing technique that verifies the functionality and performance of an entire software application from start to finish by simulating real-world user scenarios and replicating live data.
Thanks to end-to-end testing, testers gain insights into how the application functions from the end user’s perspective, giving them a more comprehensive understanding of the software quality before release.
4. Manual Testing
Manual testing is the process of assessing game mechanics by human testers without relying on automated testing tools or running test scripts in virtual reality. Testers interact with the system just like how end users would to discover bugs, defects, and problems that affect the user experience.
5. Functional Testing
Functional testing is a phase where quality engineers confirm if the tested application’s features work according to their specified requirements. We can perform it either manually or with automated tools based on the specific test cases.
6. Visual Testing
Visual testing is a software testing technique that focuses on verifying the visual aspects of an game’s user interface (UI). It involves examining the graphical elements, layout, and overall appearance of the product to ensure that it matches the expected design and behavior.
7. Regression Testing
Regression testing is a type of software testing conducted after a code update to ensure that the update introduced no new bugs. This is because new code may bring in new logic that conflicts with the existing code, leading to defects. Usually QA teams have a series of regression test cases for important features that they will re-execute each time these code changes occur to save time and maximize test efficiency.
8. Compatibility Testing
Compatibility testing is a type of QA testing that ensures a game mechanics functions correctly across different environments, players with different age and so on. The primary objective of compatibility testing is to verify that the game remains consistent and usable across a variety of configurations.
9. White Box & Black Box Testing
White box testing examines the internal structure of the game mechanics, similar to how we can easily see the inside of a white box. On the other hand, black box testing focuses on validating the product functionality without knowledge of the internal code or implementation details, similar to how the inside of a black box can’t be seen.
