You are reading the article Game Testing: Types & How To Test Mobile/Desktop Apps updated in February 2024 on the website Cancandonuts.com. We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested March 2024 Game Testing: Types & How To Test Mobile/Desktop Apps
What is Game Testing?
Game Testing is a software testing process for testing video games for quality control. The main goal of Game testing is to identify and discover defects and bugs in a video game and improve the stability and performance. Game testing is a component of game development that helps to ensure the video game to be deployed is bug-free.Game Development Lifecycle
Pre- Production: During this stage Game idea, storyboard, features, requirement analysis, and documentation is done. This phase includes technical design document and feature specifications, game architecture, frame overlay, animation. Following items are considered
Music, Camera (zoom in and out, replay, cinematic view,) player and action attributes
Game flow logic, Rules, and condition to attain the next level
Object & event triggers, scores, player movement and positioning, player statistics,
Non-Interactive sequence, Special effects, title screens, multi-button actions
Gamepad, movie clip, shock/vibration effects, legal texts, use of button functions, use of analog &digital mode.
Game Development Lifecycle
Production: During this stage, actual coding is done. This phase includes coding, integration of the various modules.
Testing and Deployment: During this stage Functional tests, regression testing, Alpha, Beta, Gold are performed. Testing of coverage and flows, data integrity, algorithm-specific testing, path testing, incremental testing is also done using mobile game testing tools.
In this tutorial, you will learn how to Test a Game with:
How Game Testing is different from other Software Testing.
Testing games is a repetitive process every new build may have bugs and must be tested thoroughly.
All game testing follows a basic structure irrespective of the size of the game & time required for producing the game.
The Quality assurance professional needs to study game rules & requirements. Understand the overall game component architecture and file architecture, the flow, and the file structures and the dependencies associated with the game. With every new prototype of the game, the tests documents need to be frequently revisited to update any change in the specifications, new game testing test cases & new configuration support. A video game tester should ensure that no new issues were introduced.
Game Tester jobs involves:
Classify the requirements based on the intended purpose and target audience.
Identify the user and system requirement and should be classified into functional, nonfunctional, domain requirements
Identify Testable items, Non-testable items, targets and measures for functional and nonfunctional requirements
Check if the functional requirements are complete, consistent & comprehensible
Identify customizable requirements, conflicting requirements
Identify interdependent requirements is one of the game testing jobs.
Prioritize the requirements based on the uniqueness, complexity, criticality
Identify the theme of the game, Characters, Animation, AI, Cinematic, Camera view, gameplay
If you want to become a Video Game Tester, here’s a free tutorial you’ll want to check out: How to Become a Video Game TesterTypes of Game Testing
Below are the popular game testing techniques:1) Functional Testing
Functionality QA testers look for the generic problems within the game or its user interface & graphics, such as game mechanic issues, stability issues, and game asset integrity. User interface testing ensures user-friendliness of the game
Example: Checking colors and backgrounds, menu structure, screen orientation and screen resolution, font size, alignment errors, usability, system navigation such as loading time, timeout and display, sorting, confirmation messages, sequences, animations and audio elements aspects of the game, instructions, and dialogue messages. User Interactions, User Interfaces, Transactions testing, Calibration and accuracy testing of mobile phone cameras, Screen resolutions, Mobile responsive design testing, Audio quality Testing2) Compatibility Testing
Checking if the game is compatible across different devices, and on different configurations of hardware and software.
Example: Install and Uninstall the game on all supported consoles/desktops/mobiles.3) Performance Testing
The overall performance of the Game is checked. Performance tuning is performed to optimize game speed.
Importance parameters checked during performance testing
Response time on client and servers, Transaction completion time(s), Peak load performance, Longevity, network coverage, Memory leakage, low memory, low battery, Time taken to download applications, simultaneous(Multiple users) access to application’s server, speed, throughput, reliability, scalability, etc.
Processor and memory constraints: Performance counters are used to measure the CPU and memory consumption of the application.
Network connectivity: Measures the response time of the mobile games on different network types (Wi-Fi, 2G, 3G, 4G), It gives an overall insight into how well the game will perform on unreliable networks. It also checks connectivity between mobile devices, data centers or the cloud. The whole Peak Times, Jittery Connections, Duplication of Data, Packet loss, Fragmentation of Data are monitored.
Testing mobile games performance especially MMO4) Conformance /Compliance Testing
Marketplace guidelines compliance (e.g., Apple App Store policies), Enterprise policy compliance (e.g., prohibited content. Compliance may also refer to regulatory bodies such as PEGI and ESRB. The game targets a particular content rating. If there is an objectionable content that is inappropriate for the desired rating, then they are identified and reported. Even a single violation in submission for license approval may have the game rejected, incurring additional costs in further testing and resubmission.
Example: If the game is to be published in European countries, test for PAL conversion if the game is produced for Northern America, test for NTSC conversions.5) Localization testing
Localization testing becomes essential important when a game is targeted for the global markets. Game titles, content, and texts need to be translated and tested with devices in multiple languages. These types of tests can be performed quickly (with the help of cloud-based device access and test automation).
Example: Localization needs specific to MENA region (Middle East/North Africa), Arabic localization( Right-to-Left text support, Bi-Directional displays), Pseudo-localization testing, double-byte characters (for East Asian languages), local time/date, currency, address formats, and other local requirements.6) Soak testing
This game automation testing involves leaving the game running for a prolonged period in various modes of operation. For example, idling paused, or at the title screen. Soaking can identify memory leaks or rounding errors.
Example: Game has begun, and the character is made to stand idle for 24 hours. This technique is used to detect crashes brought on by memory leaks and other faults in the game engine.7) Recovery testing
In software, recovery testing checks how well the application can be recovered from crashes, hardware failures, and other similar failures. The application is forced to fail, and later it will be observed how it recovers from the failure conditions and the environment.
Example: While a gaming application is running, suddenly restart the gaming console, & check the validate the data integrity8) Security testing
It is done to check how safe the software works from external threats. Data protection from external threats, uncontrolled system access restrictions, data breach, operating system ?aws, communication system ?aws and weak encryption algorithms.
Example: Changing a URL from /login to /play on a gaming site should not allow direct access to the games.9) Other Games testing
Testing of real or virtual characters. In multiplayer video games, connectivity to the server and synchronization of game status are two critical areas to be tested.
Example: Multiplayer 3D racing games.
Testing new features such as game status updates, friend invitations, premium gift sharing, etc. This ensures rich gaming experience to the user.
Example: Facebook, Blogs
Database and game statistics
Database verification using debugging to investigate if the game is using the data correctly. Ensure that the data is loaded in the right place and shows the correct informationWhite-box testing
White Box Testing for Games focuses on the architectural, integration and system aspects of the mobile game.
Code Inspection: Source code is reviewed, Program logic &common programming errors, compliance with coding standards are analyzed.
Focus Testing: Chunks of codes are fed to the isolated modules, and the output is analyzed.
Data Analysis: Data usage, interpretation, and manipulation are analyzed and validated for the different modules.
Path and Flow Testing: Correct sequence of objects are executed.
Algorithm-specific testing: Testing a particular game scenario or feature by setting data variables, data values to the code and executing it in the runtime environment.
Artificial Intelligence Analysis: The run statistic of the programmable moves and plays of the AI component is generated. The result is validated to check if all the programmable moves are used. Example: side grip on the snowboard and plays(combination punch/kick in multidirectional action) are used.Assistive gaming using adaptive technology
Assistive Gaming is also known as accessibility gaming. Features are designed using adaptive technology for individuals with various disabilities like low vision, blurred vision, blindness, inability to distinguish colors, speech, hearing, cognitive, motor & mobility impairments.
Cardinal Direction (CD), Tower of London (TOL) are two popular games that have been modified for the visually challenged users. In these games, Visual stimuli are replaced with audio inputs.
A video game tester should note the following while testing such a game
The colors should flash in a pattern, and the tones would play for each color.
Each color should be accompanied by an audible tone.
Visual data need to be described in words so that visually impaired have not face any issues receiving through the use of screen readers.
The player should hear sounds in the game in three dimensions and must navigate the word using the touchscreen 3D Audio and Spatialized SoundGame Metrics That a Tester should Know.
DAU/MAU (Daily active users/monthly active users): The ratio of active users who play each day over the number of monthly active users. Also commonly referred to as the stickiness factor.
Session: Every time any user opens the app, that counts as a session. Here the focus is on the average number of sessions per DAU.
Retention: Very important metric for an android game tester for a free to play game. To calculate retention, separate the users into cohorts based on the day the application was downloaded.
Performance metrics: This is for tracking the performance of the online games or persistent games. Frame rate at which a game executes on a client hardware platform, or in the case of a game server, its stability and Performance metrics can be used to monitor changing features and updates.Key Risks in Game Testing
The game does not create compelling experiences for the targeted audience.
The game does not have a player-centric design
The fun factor and addictive gameplay missing in the games.
Game not unique, competitive, fast paced.
The game fails because of technical issues, broken features, critical bugs, bad music sound, and poor video.
Game development cost goes over budget
The game should have simple aesthetic design and the gameplay.Summary:
Game development life-cycle consists of three stages of Pre-production, production, testing using game testing tool and deployment
Testing games is a repetitive process every new build may have bugs, and so it must be tested thoroughly using game testing automation tools
The different types of testing are 1) Functional Testing, 2) Compatibility Testing, 3) Performance Testing, 4) Conformance /Compliance Testing, 5) Localization testing, 6) Soak testing, 7) Recovery testing, 8) Security testing
White Box Testing for Games focuses on the architectural, integration and system aspects of the mobile game which includes 1) code inspection 2) focus testing 3) Data analysis 4) Path and flow Testing 5) Algorithm-specific testing 6) Artifical Intelligence analysis
Assistive Gaming is also known as accessibility gaming. Features are designed using adaptive technology for individuals
Some important Game Metrics are DAU/MAU, Session, Download Rank, Retention, and Performance Metrics
The key risk of mobile game testing is that it does not create compelling experiences for the target audience
You're reading Game Testing: Types & How To Test Mobile/Desktop Apps
viewing products, adding and removing items from the cart, purchasing the product, etc.
The number of users is increased to the point, until the app crashes or fails and can no longer handle the traffic.
The results of the tests are examined to discover bottlenecks or drawbacks in the system, performance improvement or optimization areas, recovery mechanism, etc.Tools for Stress Testing
LoadRunner − This tool from Hewlett-Packard Enterprise (HP) is widely used for load testing. The results shaped by LoadRunner are used as a benchmark. It works on the concept of recording and replaying users’ activities and then generates the desired load on the server. It simulates the real-world actions and determines the performance of the system or application by generating virtual load.
Jmeter − This is an open-source tool used for stress and performance testing. It is purely written in Java. It covers types of tests like load tests, functional tests, stress tests, etc. Jmeter requires JDK 5 or higher for functioning. It is mainly used to test web and web service applications. It was developed by Apache Software Foundation to test functional behavior and measure performance. It is also used to measure performance of a variety of services. It is originally used for testing web applications and File Transfer Protocol (FTP) applications. Now, it is also used for a functional test, database server test, etc. It is extremely easy and simple to use, one can get quickly acquainted with this tool. Being a pure Java application, Jmeter is platform independent. The test results can be viewed in different formats, such as chart, table, tree, etc. It supports all the basic protocols including HTTP, JDBC, LDAP, SOAP, and JMS.
Stress Tester − This tool helps in the extensive analysis of the performance of web applications. It is easy to use, and the results can be viewed in graphical format. It gives a good return on investment and does not even demand high-level scripting.
Neo Load − This is one of the most popular tools for testing web and mobile applications. It simulates thousands of users to evaluate the performance of the application under load and analyzes the response times. This tool supports cloud integrated performance, load and stress testing. Neo load is simple and easy to use, cost-effective, and offers good scalability. Moreover, it pinpoints the number of simultaneous users that the Internet, intranet or the mobile app can manage. It enables automated test design, thus providing faster test creation. It supports various protocols such as HTTP, HTTPS, SOAP, REST, Flex Push, AJAX Push, etc.Metrics for Stress Testing
Metrics evaluate the performance of a system and are generally studied at the end of the stress test. Some commonly used metrics in stress testing are −Scalability and performance
Pages per second − Number of pages requested per second.
Throughput − Response data size per second.
Rounds − Number of times test conditions were planned to number of times a client executed.Application response
Hit Time − Average time taken to retrieve a page or an image.
Time to the first byte − Time taken to return the first byte of information.
Page time − Time taken to retrieve all the information in a page.Failures
Failed connections − Number of failed connections refused by client.
Failed rounds − Number of rounds failed.
Failed hits − Number of failed attempts taken by the system.Conclusion
The sole aim of stress testing is to determine system’s performance under extreme conditions or load. It evaluates system resources like memory, processor, network, etc. It also examines the ability of a system to recover from a failure or a crash. It checks if the system displays proper error message upon facing stress.
Endurance Testing is non-functional type of software testing where a software is tested with high load extended over a significant amount of time to evaluate the behavior of software application under sustained use. The main purpose of endurance testing is to ensure that the application is capable enough to handle extended load without any deterioration of response time.
Endurance means capacity so in other words, you can term Endurance Testing as Capacity Testing.
In this tutorial, you will learn-Goals of Endurance Testing
Primary goal of Endurance testing is to check for memory leaks.
To discover how the system performs under sustained usage.
To ensure that after a long period, the system response time will remain the same or better than the start of the test.
To determine the number of users and/or transactions a given system will support and meet performance goals.
Endurance testing is generally done by either overloading the system or by reducing certain system resources and evaluating the consequences.
It is performed to ensure that defects or memory leaks do not occur after what is considered to be a relatively “normal” usage period.What to monitor in Endurance Testing
In Endurance Testing following things are tested.
Test memory leakage– Checks are done to verify if there is any memory leakage in the application, which can cause crashing of the system or O.S.
Test connection closure between the layer of the system – If the connection between the layers of the system is not closed successfully, it may stall some or all modules of the system.
Test database connection close successfully– If the database connection is not closed successfully, may result in system crash
Test response time – System is tested for the response time of the system as the application becomes less efficient as a result of the prolonged use of the system.How to perform Endurance Testing
Below is the basic testing approach for Endurance Test
Testing Environment – Identify the hardware, software, operating system require for the endurance testing, assigning roles and responsibilities within the team, etc. The environment should be ready before the test execution. You also need to estimate common database production size and yearly growth. This is required as such you need to test how your application will respond after a year, two or five.
Creating the Test Plan, Scenarios – Based on nature of testing – manual or automation or combination of both, Test Case design, reviews, and execution should be planned. Testing to stress the system, break point testing, etc. should also be part of the test plan. Testing to stress the system determines the break point in the application.
Test Estimation – Provide the estimation of how long it will take to complete the testing phase. It should be analyzed on the basis of a number of testers involved and the number of test cycles required.
Risk Analysis –Analyzing the risk and taking an appropriate action for the prevention. Prioritization of test cases as per the Risk factor and identify the below risk and issues tester may phase during the endurance test.
Will performance remain consistent over time?
Are there other minor issues that have not yet been detected?
Is there external interference that was not addressed?
Test Schedule – Determine the budget, deliverables within the time frames. As Endurance Testing applies a huge but natural load arrangement of transactions to the system/application for a continuous period of time.Endurance Testing Example
While Stress testing takes the tested system to its limits, Endurance testing takes the application to its limit over time.
For Example, the most complex issues – memory leaks, database server utilization, and unresponsive system – happen when software runs for an extended period of time. If you skip the endurance tests, your chances of detecting such defects prior to deployment are quite low.Endurance Testing Tools
Rational Performance TesterAdvantages of Endurance Testing
It helps in determining how workload can the System Under Load handle.
Provides accurate data that customer can use to validate or enhance their infrastructure needs.
Identifies performance problems that may occur after a system has been running at a high level for longer period of time
Typical issues are identified in smaller targeted performance tests, which means it ensures application remain available even when there is huge load in a very short span time.
The endurance test is also used to check whether there is any performance degradation after a long period of execution
It is often hard to define how much stress is worth applying.
Endurance Testing could cause application and/or network failures that may result in significant disruption if Test Environment are not isolated.
Permanent Data loss or corruption can occur by over-stressing the system.
Resource utilization remains very high after the stress is removed.
Some application components fail to respond.
Unhandled exceptions are observed by the end user.Summary:
In Software Engineering, Endurance testing is a subset of load testing.
Endurance testing is a long process and sometimes last for even up to a year
Checks are done to verify
Test memory leakage
Test response time
Test database connection, etc.
Introduction to Penetration Testing Open Source Tools
Web development, programming languages, Software testing & othersList of Various Open-Source Tools
So, here is a list of various open-source tools.1. Netsparker
Netsparker is an efficient vulnerability scanner for web applications that automatically detect XSS, SQL Injection, and other vulnerabilities in web applications and web services. It is available as an on-site solution and as a SAAS solution.
Features of Netsparker:
The scanner automatically detects custom 404 error pages and URL rewrite rules.
REST API for smooth integration with the SDLC, systems for monitoring bugs, etc.
It is a highly configurable system that Scans 1,000 web applications in 1 day.2. Acunetix
Features of Acunetix:
It scans all variants of XSS, SQL Injection, and 5000+ additional vulnerabilities.
It can detect over 1400 WordPress cores, plugins, and other vulnerabilities.
It is Scalable and fast as it crawls thousands of pages without interruptions in less time.
It provides Integration with popular WAFs.
It is Available Onsite as well as a Cloud solution.3. Indusface
To detect and monitor SANS top 25 and OWASP top 10-based vulnerabilities, Indusface WAS provides manual penetration testing and automated scanning.
Features of Indusface:
Its Crawler scans single-page applications.
It has a Pause and Resumes functionality.
Automated Scanning and manual Penetration testing Reports can be seen on the same dashboard.
It provides Unlimited proof of concept requests as evidence of vulnerabilities identified.
Optional WAF integration to provide Zero False-positive instant virtual patchings.4. Aircrack
Features of Aircrack:
Aircrack supports more cards or drivers.
It is available on all OS.
It provides Support for Fragmentation attacks as well as WEP dictionary attacks.
Improved tracking speed.5. Nexpose Rapid 7
Nexpose Rapid 7 is a widely used and popular vulnerability management tool. It scans and detects vulnerabilities in real time.
Features of Nexpose Rapid 7:
It offers a Real-Time View of the Risk.
It brings progressive and innovative approaches which help the user to secure from attacks.6. Nessus
Nessus is a scanner that is the most robust software vulnerability identifier. It provides a wide range of website scanning, sensitive data searches, compliance checks, IP scans, etc., and helps to find the system’s “weak spots”.
It provides an easy-to-use and interactive GUI.
It is an effective scanning engine.
It helps in Generating vulnerability status reports in different formats.
It has Fast activated and deactivated attack modules.
It provides a pause and resumes a scan or an attack for the pen test.7. W3af
W3af is a popular Web Application Attack and Audit tool. It helps detect and exploit over 200 vulnerabilities in web applications such as XSS, SQL injection, DoS, DDoS, etc.
Features of W3af:
It has a user-friendly console and graphical interface.
It provides security from Cross-Site Scripting (XSS), CRLF Injection, SEL Injection, and Xpath Injection.
It also provides Command execution detection.8. Wapiti
Wapiti is another widely used penetration testing tool. It provides auditing of the security of web applications. Wapiti supports importing cookies, GET, and POST HTTP methods for vulnerability checks.
Features of Wapiti:
It helps in Generating vulnerability reports in different formats.
It can activate and deactivate attack modules quickly.
It Supports HTTP as well as HTTPS proxies.
It provides Automatic deletion of a parameter in URLs.
It offers activation and deactivation of SSL certificate verification.
Users can Extract URLs from Flash SWF files with the help of Wapiti.Conclusion
In this article, we have seen various open-source tools for penetration testing. You can choose any of them based on your requirements. We hope you will find this article helpful.Recommended Articles
This is a guide to Penetration Testing Open Source Tools. Here we discuss the introduction and various Open Source Tools, respectively. You may also have a look at the following articles to learn more –
Difficulties with page rendering and DOM manipulation
To avoid such issues what you can do is:
Do not use global variables
Do not manipulate predefined objects
Design core functionalities based on library
Try to create small pieces of functionalities with lesser dependencies
4. Karma: Karma is an open source productive testing environment. Easy workflow control Running on the command line. Offers the freedom to write the tests with Jasmine, Mocha, and QUnit. You can run the test on real devices with easy debugging.
More than these with upcoming challenges in performing testing there, some more powerful frameworks and tools may get evolved in future.
Introduction to Agile Testing
Project scheduling and management, project management software & othersPrinciples of Agile Testing
The mentioned principles are as follows:
1. Continuous: It provides feedback continuously, on an ongoing basis, so the products meet the needs of the business.
2. Teamwork: In other software, the test team is responsible for testing, but in agile testing, along with the test team, the developers and the business analysts are equally involved in the testing.
3. Time of Feedback Response: Since the business team is involved in agile testing, the feedback is fast and continuous, so the feedback response time is short.
4. Clean and Simplified Code: The defects found by the agile team are corrected within the same iteration, and thus the code is kept clean and simplified.
5. Undertaking Tests: Here, testing is done during implementation, whereas in other processes, testing is performed after implementation.
6. Lightweight Documents: Agile testers use reusable checklists to decide on tests to be taken. The documents can be used for several purposes, and the tools are also light.Values of Agile Testing
Agile testing prioritizes individuals and communication over rigid processes and tools. Agile testing does not overlook procedures and tools but builds upon robust and reasonable processes and tools, leveraging their strengths. The rule here is that testers drive the tools, and the output depends on the testers, not vice versa.
The choice made in agile testing is functional and usable software over unusable and comprehensive documentation. The main goal here is the actual testing rather than elaborate documents whose only objective is pointing towards the goal. The documents are present if a member decides to leave.
Customer participation is the secret here. The project ensures continuous involvement of the client, keeping them informed about the progress. It implies that the client should have regular meetings throughout the project instead of receiving the project directly upon completion. This is extra work but better than working in the wrong direction.
The team accepts and implements any necessary changes. While the project maintains a plan, it remains flexible to accommodate changes in the situation. So one does not have to wait until the end to find out about the changed scenario and have the project dismissed because of the changed requirement.Agile Testing Methods
There are various agile testing methods:1. Behavior Driven Development (BDD)
Behavior-driven development improves communication so all members understand each feature before the process starts. Developers, analysts, and testers are in continuous communication.2. Acceptance Test-Driven Development (ATDD)
The main object here is to involve all the team members, i.e., the customer, tester, and developer, as all three have different perspectives. The customer focuses on solving the problem, the developer focuses on determining how to solve it, and the tester’s objective is to identify potential issues. These tests, known as Acceptance tests, incorporate all three perspectives and describe how the system will function.3. Exploratory Testing Test Plan
In agile testing, the team writes and updates a test plan for each iteration or as required.
Scope of testing
The newly implemented functionalities are undergoing testing.
Level or types of testing
Performance and load testing
Considering the infrastructure
Deliverables and milestonesPhases of Agile Testing Lifecycle
There are 5 phases of the Agile Testing Lifecycle:
Impact assessment means gathering inputs from stakeholders and users, which will act as feedback for the next development cycle.
Agile test planning involves the collaboration of all stakeholders to plan the testing process, meetings, and deliverables.
In the stage of release readiness, the team decides whether the developed features are ready to go live or not.
Daily scrums include a regular standing morning meeting to catch up on the testing status and set goals for the day.
Agility review involves holding weekly meetings with stakeholders to assess the progress made.Benefits
Agile testing has its benefits. It is both time and money-saving software as it reduces documentation and is very flexible and adaptable to the continuous changes in the business. The final stage of the process incorporates regular feedback from actual users, ensuring they may not be fully aware of the ongoing process.
Agile testing is the perfect software for the early detection of defects, and as the problems are fixed early, the cost of fixing is also reduced. The final product is customer-centric and of high quality. Continuous communication between the teams makes agile testing a success.Recommended Articles
This has been a guide to Agile Testing. Here we discussed the concepts, phases, benefits, test plan, methods, principles, and values of agile testing. You can also go through our other suggested articles to learn more –
Update the detailed information about Game Testing: Types & How To Test Mobile/Desktop Apps on the Cancandonuts.com website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!