Select Page

Category Selected: Game Testing

6 results Found


People also read

API Testing

Postman API Automation Testing Tutorial

Automation Testing

Top 10 AI Automation Testing Tools

Automation Testing

Talk to our Experts

Amazing clients who
trust us


poloatto
ABB
polaris
ooredo
stryker
mobility
An All Inclusive Mobile Game Testing Checklist

An All Inclusive Mobile Game Testing Checklist

Preparing a checklist is always a great way to make sure you get maximum coverage in any process, even for testing. As one of the leading game QA companies, we always make sure to prepare well-thought-out checklists that will help us avoid any oversight errors along the way. So we have prepared this comprehensive checklist for mobile game testing that will make sure you don’t let any bug go untraced. We have split this Mobile Game Testing Checklist into various categories like UI, Gameplay, Functionality, and so on. So let’s get started.

Downloading and Installation

Downloading the application to install it on their phone is the very first action the user will do. So let’s start our list with that as well.

  • Downloading the application from the store should be supported on both Wi-Fi and mobile networks (3G, 4G, or 5G).
  • If at all the downloading process is interrupted, the user should be able to re-download it again without any issues.
  • Once the download has been completed, the .apk file must get installed on the device seamlessly without any errors.
  • The size of the apk file usually multiplies 3 or 4 times, so make sure it does not occupy too much space or exceed the internal memory of the device.
  • Uninstallation is also as important as installation, it must remove the entire game and its data from the device successfully.
  • Progress must be kept after reinstalling or updating by making it possible to save the game progress online or offline.
  • Reinstalling the game (For example; after the deletion or when overwriting the previous installation) must not trigger any game data files issues.
  • Check if the installation path is decided by the OS and if the app is installed in the right location.

User Interface

A clean UI is always mandatory for any application as it is in most cases responsible for giving the user the first impression of the application itself. So everything ranging from the language to the animations and design should be spot on.

  • The AUT (Application Under Test) must install in the correct language, (i.e.) the current device language.
  • Even if the game language and device language are different, there should not be any issues.
  • Apart from that, the user must also be able to change the language from within the Options section.
  • The grammar & orthographic rules specific to a language have to be respected.
  • You have to make sure that the font is legible even for new users as it has to be easy to read and understand.
  • Ensure that the text doesn’t spill out of the screen.
  • Since it is a product for the global market, you have to ensure that the appropriate date & time formats are displayed based on the country it is used in.
  • It’s not just the date & time, even the number format should be displayed correctly as per that country.
  • If the game’s language is set to Arabic, the buttons must be displayed in the opposite part of the screen.
  • UI must not depend on factors like the device’s theme or font.
  • Not all users will be having the same screen resolutions. So the game should be tested on all the supported resolutions to ensure that the graphics do not get altered.
  • Also, many users might connect to larger screens using the HDMI option, so you would have to test that as well.
  • There should also not be any scaling issues when the game is launched in landscape or portrait mode.
  • The game loading indicator and animations should be smooth.
  • You need to test for clipping to ensure that two or more polygons do not overlap and cancel each other out and test that all required overlaps (semi-transparent objects placed over solid color objects/ backgrounds) are appropriate in size, placement, and purpose.
  • Once the game launches successfully, we will not directly enter the gameplay. Rather, we would first come to the menu. So make sure it is easy to navigate and fully functional.

Gameplay & Functionalities

Next up in our Mobile Game Testing Checklist, we will be exploring the focus points when testing the core of the game, its gameplay.

  • You have to test the different game modes and the various locations or levels in the game.
  • You should check the game flow and see if it is progressive and if it correctly unlocks the elements as the levels increase.
  • Check the gameplay rules as they should not be too difficult or too simple.
  • Collectibles – There should be enough collectibles in the game and there should also be a good variety of collectibles.
  • The Scoring mechanism – It should be accurate and simple.
  • If there are any cheat codes, then you should get them from the development team and check if they are functional.
  • Sound Effects – Check if all the sound effects play correctly at the right moment without any distortion.
  • Check the single function mute button for all sounds in-game.
  • There should also be two mute buttons that allow separate muting of game music or sound.
  • You should also check whether the game is playable without music and sound effects (except for rhythm games).
  • Pay close attention to all the collisions in the game and check if there are any incorrect or inappropriate collisions, so the gameplay looks realistic. For this, you will need to move the character through all objects to observe the consequences (collisions, event triggers, or object triggers).
  • The high scores of the instant game with no progression should not be saved in the cache so that the high scores are reset to 0 upon the user refreshing the page or reloading the game.
  • Test if the auto-save functions work and if the manual save happens correctly as well.
  • It is also important to check what happens when multiple control inputs are given at the same time to see how well the game handles it. A perfect example here would be for a racing game where both acceleration and directional control are needed.

Multitasking

As we all know that mobile phones are capable of doing more actions than playing games and that many of us use them mainly for those purposes as well. So the user must be able to seamlessly switch between the game and some other app or functionality of the phone.

  • Verify if the volume gets muted when the user switches to any other app.
  • The Gameplay should pause when the user switches to another app as well.
  • You must also check if the Gameplay resumed from where the user left off before switching away from the game.
  • Make sure the Gameplay gets paused when the user receives a phone call.
  • Check if the Gameplay resumes once the user ends the call or if the user rejects the call.
  • Verify if the user is able to switch to the messaging app using the notification when the user receives a message.

Multiplayer game

Multiplayer games have always been a favorite for many gamers and with mobile gaming, people just took it to the next level. Here you would have to verify the different types of multiplayer games or rounds. For example, you could play as a team against the computer or play against each other as well.

  • So start by checking out if the login and logout functionalities are working well. Login also includes the new user sign-up process.
  • Verifying the account using a verification email is also important to ensure that there is no foul play.
  • You should also check the player profile’s image, the naming capabilities, and so on.
  • It doesn’t matter if you are up against the machine or man, you should be able to challenge, decline, and receive challenges.
  • Check if the user statistics like winning, losing, or even draws are being recorded correctly. We should also check the score constantly.
  • You should also check the performance of the multiplayer mode as lagging performance can be a big deal-breaker for many.
  • Make sure to see if the time-out functionalities work and also if the forfeit or quit options work.
  • With the rise of social media, social integrations should also be tested by checking the users can share results, achievements, and so on.
  • The sharing feature should be checked across the major platforms.
  • If at all there is a chat feature within the game, then make sure to check the vital functionalities like character type, limit, and notifications as well.

Application and Data Storage

The AUT should be tested for all such features listed in our Mobile Game Testing Checklist. But more importantly, we should also make sure that the game is usable across a wide range of mobiles. Here are a few key pointers to focus on.

  • Power consumption is a big area of concern and we have to check how efficient the game is when it comes to power management.
  • During the course of continuous gameplay, there could be high usage of memory and the game must notify the user when the memory goes dangerously low.
  • Test the performance of the game across different mobile configurations like the RAM, processor, and so on.
  • Safety is also a concern, so all games must encrypt their saved files.
  • The AUT must not be present in Running Services once the device has been restarted.
  • Make sure the AUT launches without much delay in the correct orientation for gameplay.
  • Make sure it is not possible to transfer the offline saved files from one device to another.

Conclusion:

The checklist is the first step towards providing unparalleled game testing services, and we hope this Mobile Game Testing Checklist of ours has been informative. Getting a good checklist ready implies that you start your journey on the right track with the correct intent. But that alone is never enough. So make sure to employ the best professionals and use the top-of-the-line methods to test a game thoroughly without facing any hiccups.

4 Important Elements of Mobile Game Testing

4 Important Elements of Mobile Game Testing

Quality assurance testing is a vital aspect of every digital product, and the realm of mobile gaming is no exception. The mobile game industry is booming, with hundreds of new games appearing in the market each day. To help your app stand out among an overwhelming sea of competitors, you need to ensure that it provides the best experience and entertainment to your users. To do so, you’ll need to focus on testing.

Mobile game testing is a crucial step in releasing a well-produced gaming app. It makes use of a systematic process to identify an app’s problem points and help fix them. It allows creators and developers to smooth out the graphics, sounds, functionality, and features of an app. Testing focuses on several essential aspects that help users get the most out of their playing experience. Learning about these elements gives you a clearer picture of what to focus on and ensures that the testing process goes as smoothly as possible. Here are four of the most vital elements that mobile game testing focuses on:

Element #1: Graphics Consistency

The overall feel and appeal of a game comes from its graphics. Whether you’re aiming for an app that’s pixelated and arcade-like or a more realistic one, the visual elements must remain smooth throughout the whole playthrough. 

When a user plays the game for an extended period, there are times when the app shows bugs and inconsistencies in the graphics. These bugs include irregular textures, image artifacts, and other visual glitches. As a result, users can experience unwanted effects that can sometimes make it impossible for them to continue playing.

Element #2: User Interface and Experience

When designing a game, you need to ensure that it remains as functional as possible. Users must navigate through the app with ease, and all the elements must operate well on different devices. If a player gets overwhelmed by all the features or cannot interact with certain buttons, they might as well just delete the app. 

User experience is also an important focus. This involves the overall playability and performance of the app. Battery usage also falls under the overall experience a player is able to enjoy, so it’s essential to test how quickly a game drains the battery on various devices.

Element #3: Audio Effects

Music and sound effects play a huge role in the overall experience of a game. They project certain moods and build a specific atmosphere that helps enhance the other aspects of the whole playthrough. For this reason, audio effects should be monitored as closely as the graphic elements of a game. Audio glitches, inconsistent sound effects, and other bugs can be just as damaging as visual glitches. This is especially important in audio-based applications.

Element #4: Social and Multiplayer Features

Multiplayer features are prominent in many mobile games nowadays, and these aspects are among the most challenging ones to test. The experiences in multiple devices must remain consistent and synchronized. Many things can go wrong when integrating multiplayer features in a game, which can severely affect the overall gameplay. 

Make the Most of Your Mobile Game

Producing a successful mobile game requires a systematic approach to examine each key element. Conducting rigorous testing is thus a crucial process that each game must undergo. Testing helps identify problems with the app’s graphics, interface, audio, and other essential features, ensuring that users get the best possible playing experience.

If you’re looking for mobile testing services in the US, Codoid is here to help. We’re an industry leader in quality assurance, and we provide a variety of services to ensure that your game or mobile app has the necessary elements to stay competitive. Put your game to the test and contact us today!

Why you should use AirTest as your Automation Framework

Why you should use AirTest as your Automation Framework

AirTest is a user-friendly UI Automation framework that is used to test Mobile Games and Apps. So if you are a newcomer to automated testing or mobile game testing, AirTest will be a quick and easy UI automation testing framework that you could use. As one of the leading mobile app testing services provider, we have found AirTest to be a valuable tool in many cases as it works on a write once, run anywhere strategy. Meaning, AirTest provides cross-platform APIs that enable you to execute your code on multiple platforms like Windows, Android, and iOS. AirTest works based on image recognition technology to locate UI elements so that you can automate games and apps without injecting any code. AirTestIDE helps to create and execute the code in a user-friendly way, and it supports a complete automation workflow so that we can easily create -> run -> report.

Now that you have been introduced to the unique features of AirTest, let’s explore more about AirTest and find out how you can start using it.

Scripting Language:

NetEase is the creator of AirTest, and the core aspects of the AirTest project are two frameworks, namely AirTest and Poco. These are third-party libraries of Python, so the scripts written using these tools are essentially normal Python scripts. So you may need to learn some Python grammar in advance.

What about Selenium?

AirTest Supports automated script recording, one-click playback, and good reporting, which makes testing so much easier. In addition to having such stand-out features, AirTest also has a plugin for Selenium that gives you the ability to record and edit the tests for a browser application.

Once you set up the path to the Chrome driver, you can record or directly write the code for the selenium test automation script .

Pre-requisites:

  • Have some basic understanding of automation testing.
  • Python2.7 & above Python3.3+
  • Prepare an integrated development environment, which can be our AirtestIDE, or any code editor like, Pycharm, etc. In this blog, we have used AirtestIDE and Pycharm for explanation purposes.
  • Game or app that you want to test.

 

Installation Process of AirTest:

If you need to use the GUI tool, you can download AirTestIDE from the official Airtest page.

Installing as python package:

If you use a code editor like Pycharm, you can download python packages from the python interpreter.

Use pip to manage the installation of all python dependencies and the package itself.

pip install -U airtest (windows) For Mac and Linux Platforms you would need to grant the adb execute permission.

#For Mac

 
   cd {your_python_path}/site-packages/airtest/core/android/static/adb/mac

# For Linux 

 
   # cd {your_python_path}/site-packages/airtest/core/android/static/adb/linuxchmod +x adb
Connecting a mobile device:

Mobile devices can be connected using a USB cable or by providing the device’s IP address and port number. AirtestIDE supports both methods.

AirTest Connection Method

Connecting via USB:
  • Connect the phone to your system.
  • Click the refresh ADB button to display the connected devices.
  • When the device becomes ready to connect, the ADB status is turned to “Device”. Now you can click on the ‘Connect’ button for the device screen to appear.
Connecting via Remote:
  • Get the details of the device (IP address and Port Number).
  • Enter the details in the remote device field and click on the ‘Connect’ button in the remote connection area, the device screen will appear.

 

How to launch the application using AIRTEST in Pycharm:

  • As you have already installed the Airtest package, you have to import airtest.core.api
  • Using the connect_device API, you can connect to any android/iOS device or windows application.
  • Then perform the simulated input to automate the game or the app.
  • DO NOT forget to make assertions of the expected result.
Example Code:
 
from airtest.core.api import *

from poco.drivers.unity3d import UnityPoco

poco = UnityPoco()

# connect an android phone with adb
init_device("Android")
# or use connect_device api
# connect_device("Android:///")

start_app("com.demoapp.panel2")
Code Explanation

A simple explanation of the above code is as follows,

  • init_device: Initializes device if not yet initialized and sets as the current device. (It returns the device instance).

Example: init_device(“Android”)

  • start_app: Start the target application on device

Parameters:

Package – the name of the package to be started, e.g. “com.demoapp.panel2”

 

Performing Action Statements in AIRTEST:

Just by using a set of commands, we can easily perform various actions on the device. Let’s take a look at these statements one by one.

1. touch(v, times=1)

This statement can be used to perform the touch action on the device screen.

Parameters:

v – the target that has to be touched, either a Template instance or the absolute coordinates (x, y)

times – the number of touch actions that should be performed.

2. Swipe(v1, v2)

The swipe action is used to slide from one location to another location, and the above statement can be used to perform the swipe action when needed.

Parameters:

v1 – the start point of the swipe, either a Template instance or absolute coordinates (x, y)

v2 – the endpoint of swipe, either a Template instance or absolute coordinates (x, y).

3. Wait(v)

Wait to match the Template on the device screen.

Parameters:

v – the target object to wait for, Template instance

4. Exists(v)

This statement can be used to check whether the given target exists on the device screen. If the statement returns to be ‘False’, then it implies that the target was not found. If the target was found, then it returns the coordinates of it.

Parameters:

v – the target to be checked.

5. text(text, enter=True)

The above statement is used to input text on the target device. It is crucial to verify if the text input widget is active in the first place.

Parameters:

text – input text

enter – Enter key event after text input, default is True. If it is false, then it is doesn’t move to the next input field.

6. AirTest provides a dedicated assertion statement for us to verify the test script:

1. assert_exists(v, msg=”)

Assert target exists on the device screen.

Parameters:

v – target to be checked.

msg – short description of assertion, it will be recorded in the report.

2. assert_not_exists(v, msg=”)

Assert target does not exist on the device screen.

Parameters:

v – target to be checked

msg – short description of assertion, it will be recorded in the report.

Capture Screenshot with AIRTEST:

1. snapshot(filename=None, msg=”, quality=None, max_size=None)

This is a very useful feature that takes a screenshot of the target device and saves it to the file.

Parameters:

filename – the name of the file where to save the screenshot.

msg – a short description for the screenshot that will be recorded in the report.

quality – the image quality, should be an integer in the range of 1 to 99, the default value is 10.

max_size – the maximum size of the picture, e.g 120

 

A complete Test Case:

Now that you know about the common statements used in AirTest, you will be able to implement them in a simple test case with a small piece of code. Here’s the test case,

  • Open the Application to be tested.
  • Log in to the application.
  • Verify the Home screen of the application.

 

Sample Code:

 
from airtest.core.api import *
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()
# connect an android phone with adb
init_device("Android")
# or use connect_device api
# connect_device("Android:///")
start_app("com.DemoApp.panel2")  # launch the application
wait("LoginScreen.png")  # waiting for the login screen
exists(Template("LoginScreen.png"))  # Verifying the login screen exists
touch(Template("DBToken.png"))
text("Demo.test.com", enter=True)
touch(Template("UserName.png"))
text("Codoid2", enter=False)
touch(Template("Password.png"))
text("C0doid", enter=False)
touch(Template("Btn_Connect.png"))
assert_exists(Template("HomeScreen.png"), "Verified Home Page")

Code Explanation:

Let’s break down the above code so that you will have a clear understanding.

  • start_app(“com.DemoApp.panel2”) – It will start the provided application.
  • wait(“LoginScreen.png”) – This line will wait until the provided image becomes visible.
  • exists(Template(“LoginScreen.png”)) # Verifying the login screen exists – This line will verify if the provided image is present on the screen.
  • touch(Template(“DBToken.png”)) – It will click the DBToken Input field so that we can enter our input values.
  • text(“Demo.test.com”, enter=True) – It will enter the input values into the field.
  • touch(Template(“UserName.png”)) – It will clicking the UserName Input field.
  • text(“Codoid2”, enter=False) – This line will enter the input values into the field. If the key event is “enter = False”, it implies that it should not focus on the next input field. If it is “True”, then it implies that the focus should move to the next input field. This makes it unnecessary to check if the input field is active enabling us to directly enter the values.
  • touch(Template(“Password.png”)) – In the above code the key event I entered is “False”. So it doesn’t focus on the next input field as explained above and so I have clicked on the input field.
  • text(“C0doid”, enter=False) – This line will enter the input values into the field
  • touch(Template(“Btn_Connect.png”)) – Here I am clicking the ‘Login’ button to log in to the application.
  • assert_exists(Template(“HomeScreen.png”), “Verified Home Page”) – This line is used to verify if the Home screen is present or not.

Conclusion

We hope this blog article has fulfilled its purpose of introducing you to AirTest in an enjoyable manner. It doesn’t matter if you are just starting out with automation testing or if you are an expert at it, AirTest will always be a valuable asset to have in your career. As one of the best game testing companies, we will be sharing more of such resourceful blogs in the future. So make sure to subscribe to our blog. Got thoughts to share about AirTest or this blog? Head over to the comments section and share your thoughts.

How to Effectively Test Mobile Games

How to Effectively Test Mobile Games

With the gaming world expanding day-by-day, the game testing industry is also expanding with this time. People are actually getting paid for playing mobile games in order to test them, and this method is getting pace with each day. Moreover, it is not only about playing games while sitting on your couch, but it is about performing different tests on the game to know more about its design and gameplay.

However, there are some key areas that you can follow to test a game. The list is given below with a brief description.

Interface Testing

The first thing that the developers should test is the interface, as it is that feature that appears first when a game opens/starts. In this testing phase, you can view how does the game looks? How is the user-interface? Is it user-friendly or not?

You can start from the onboarding point because this section lays the first impression of the game. If this section is too long, it will bore your customer, and he will end up switching to some other game with a better start.

The layout of the elements present on the main page of the game should be clear, well arranged, and these elements should adjust themselves according to the screen of the cell phone.

Graphics Performance

Even if your UI is great and the layout is amazing, if your graphics are not up to the standard, you are not getting the right attraction. The game testers need to ensure that your game’s performance remains the same on all the devices and graphics stay intact and clear. A slight issue can put the gamer off, and he/she is not coming back to play your game.

Security Testing

After testing how the game will be played and how its graphics will be on every supported device, then comes the part where the game’s security must be tested. Game Testers must ensure that the ads and other third-party gateways must not be used by the hackers to intrude into the user’s cellphone and take away all the data.

This security testing has become a make or break area for the developers because everyone loves their privacy. If a hacker can hack into your phone with the help of a game, we are sure you will never play that game again.

External Devices

Nobody wants to keep playing a game on a small screen, and those who play games non-stop want the cell phones to be connected with bigger screens. Game Testers should ensure the devices’ smooth attachment to the bigger screen and then the streamlined working of the game.

Functional Testing

This kind of testing can help you to know when your game is performing high and when it is going low. With this test’s help, you can work on the performance, graphics, and compatibility of your game with different devices.

Conclusion

Overall, we have listed the most important tests, but there are some more which the game testers can adopt while testing the game. You can perform tests like Performance, Localization, and many other tests.

Game Testing Techniques

Game Testing Techniques

Game testing is an important part of the development of games because these tests and gaming testing techniques tell the developers whether their game is ready for launch or not. These gaming testing and techniques provide a critical eye for constant searches such as errors, coherence, completeness, etc. So, without wasting any time, we will provide you the top best seven different types of game testing techniques.

Functionality Testing

This testing is done to confirm the end product’s smooth working with all the specifications and modifications. The Quality Assurance testers go for the graphics, user interface, stability and audio-visual issues, and other mechanical problems in this testing. Game testers also ensure the user-friendliness of the game through this game testing technique.

Combinatorial Testing

This test allows you to check the game’s compatibility according to the given requirements on different devices. Through this testing, you can analyze and scrutinize the game’s inputs to get a clear image that is concerned with different images and combinations. This technique helps the developers to see the effectiveness of their game during the execution and phase containment.

Ad Hoc Testing

A general testing is often referred to as Ad Hoc testing because, in this testing, game testers can test any section of the gaming application randomly. However, this testing focuses on guessing the errors, and they require no documentation or planning for this. Game testers can adopt Adhoc testing such as Pair testing, Buddy testing, and Monkey testing.

Compatibility Testing

This testing’s main aim is to detect the defects which are present in the functionality of the game and helps the developers to meet the essential requirements of the software, hardware, and graphics. Through this testing technique, game testers can ensure that the game can be played on all kinds of screens and handsets.

Clean Room and Tree Testing

The clean room testing technique ensures the gaming software’s stability and reliability. The main aim is to get a product that has negligible errors and what’s good about this testing is that you don’t have to prepare any content for it to start your test. While Tree testing basically helps the game testers choose tests that are best suitable for their game, they can generate their codes.

Regression Testing

Game testers can use this testing technique to scrutinize all the features of the game and analyze its working. This testing’s core idea is to check whether the game is working fine or not and whether any changes in the game development can cause bugs. Moreover, this testing technique helps maintain the quality of the products, and testers can spot all the bugs present in the gaming software.

Performance Testing

It could be considered the last testing technique, as it determines the application’s overall performance. This can include the load time, real-time scenarios, detects any delay time in the game, and much more. Game Testers can use this technique to optimize the product speed, network connectivity, battery consumption, response time, etc.

Latest Mobile Gaming Trends

Latest Mobile Gaming Trends

Mobile technology has taken our lives by storm, and the time people are spending on phones, especially for the non-violent content, is five times the past few years.

Although people are spending time on social media applications, the use of mobile gaming apps is increasing day by day. This is becoming one of the biggest industries in the market, earning billions of dollars.

Top Trends in Mobile Gaming

Every year a new array of trends in the mobile gaming industry is coming to the market. With the introduction of new devices and amazing features by mobile companies, the gaming industry is bringing new and improved trends to the mobile gaming platform. Some of the latest trends are listed and briefed below:

1. Rise of Mini-Games:

These are small games, which crop up in larger games and allow you are your friends to promote sharing and compete with one another. These kinds of games increase the engagement of people and their retention of gaming.

2. Mobile Games for all Ages:

Some of the mobile games are not restricted to any age, and people of all genders and ages can play it. As people from all the age groups are becoming more tech-savvy, they are also shifting towards playing games.

3. Rapidly Rising CPIs:

The cost associated with finding new players for mobile games who can generate more revenue is already high. The growing competition and the cost per install will keep increasing with time, and this will make it difficult even for the big franchises to find and retain players.

Mobile Game Testing

Mobile game testing is as important as it is necessary to test any device or its core software. The Quality Assurance engineer has to make sure that the game is clean, bug-free, up-to-date, and perfectly fits the requirements provided by the developers.

The QA engineers test the interface of the game from colors to effects and instructions and resolutions. Then comes the Graphic testing part through which a designer can easily tell whether the game was designed by a professional developer or an amateur one. After that, security, AI features, 3D, and other processes are tested.

In Conclusion

Codoid is a Game Testing Company that offers services in Gaming testing and ensures that your game performs well across all platforms. The Games Tester of Codoid is responsible for checking the game works correctly, and they can write accurate and detailed bug reports. The QA team of Codoid dive deep in to the whole testing procedure as the mobile apps developments are on the rise. Overall, the best thing about this platform is that they test apps on real phones and keeps accurate reports always ready.