Rainforest tests are done by manual testers, but at the speed of automation. Our testers will need to have access to a testable version of your app. We’ve written this guide to help you prepare your QA environment so that it’s ready for RainforestQA. 

Definitions

Seeding
Preparing data in your application for testing is called “seeding”. If you have a test that creates a report, there needs to be data ready for the report to be created. If you want users to login, there needs to be accounts in the database to do so. 

Isolation
Tests need to be executed independently without adversely affecting the outcome of other tests. On some applications, using multiple user accounts is sufficient. In other applications if the scope of a test’s actions is larger than a single user account, then the scope of their isolation will need to be larger as well. For example, your app may have “organizations” or “teams”, and each tester could need their own.

Resetting
Each time a test is executed, our testers will work with the test account and the data will be modified according to the steps in the test. In order for the test to be executed again in the future, the data will need to be reset to the starting state in order for the test to run properly. Your application should do this with restoring database images or running migrations.

Example techniques to prepare your QA Environment

Factories
A “factory” in testing is a bit of code that creates an object for testing. You can use these in your seeding scripts create realistic data. Factory Bot and Factory Boy are two popular options for Ruby and Python.

>>> user = UserFactory.build(first_name='Joe')
>>> user.first_name
"Joe"

Faker
There are faker packages in most languages. Their purpose is to create believable data. For example, you might call faker.first_name and it would provide you with a first name out of a list.

Python, PHP, Ruby, JavaScript, Java

fake = Faker()

fake.name()
# 'Mars Williams'

Production data
Copying data from production is the most realistic scenario and sometimes the fastest way to create data for testers. However, if you are in a situation where you are using production data we believe it is best practice to anonymize this data before any testing occurs.

Webhooks
Rainforest has webhook support to notify your system when a test has started or stopped, so you can do any setup or teardown steps you need.

Webhooks documentation

Method POST
URL    https://my-staging-app.com/webhooks/rainforestqa
Body   {
            "callback_type": "before_run",
            "options": {
                "run_id": "12345"
            },
            "digest": "ADIGESTSTRING"
        }
Did this answer your question?