SIMPLE AUTOMATION FOR COMPLEX TESTS
They say there are things only a person can test... Testo begs to differ
System tests — what are they?
System tests are one of the most complex ways to test your software. System testing means putting software under the exact conditions this software will face when interacting with end users. System tests can help you check that your program is functioning correctly in any possible external factors and surroundings. Just because software works on your side doesn't automatically mean it'll work on the user's side.
Integration with the operating system
Inter-software communication
Reliability testing
Various hardware and networks configurations
Testo Framework features
Take a look at what kind of test scenarios you could automate with Testo. All the automation scripts are available on Github. You could download run them on your own computer.
- Example 1
- Example 2
Testing installation and removing a program
For this example, we created a toy-app named MySuperApp and packed it inside an installer. We want to test that MySuperApp is installed and removed correctly. Additionally, we want to check that the installer successfully writes the necessary keys into the register. We automated all these checks with a Testo Lang script.
Open this example on GithubTesting app integration with the operating system
For this example, we created a toy-app named MySuperApp that lists all the users registered in the OS and, additionally, can add new users. We want to test that MySuperApp correctly interacts with the OS under various circumstances. We automated all these checks with a Testo Lang script.
Open this example on Github
Simple language with wide possibilities
We created a special language named Testo Lang, which lets you write down test scripts in the most intuitive and convenient way.
machine my_vm {
ram: 1024Mb
iso: "/opt/iso/ubuntu.iso"
}
Create virtual machines in a couple of lines
You can specify attributes such as disk size, number of CPU cores, and many more. Testo will create the virtual machine when running the first test mentioning this machine and will constantly watch for its state relevance.
test my_first_test {
my_vm {
start
mouse click "Install Ubuntu"
wait "Welcome"
press Enter
...
}
}
Write down your test scripts with simple actions
A test script consists of your expectations (what you expect to see on the virtual machine screen) and your reactions (what you want to do when the screen event has happened). You could use a wide arsenal of actions: from keyboard control to copying files inside the guest system.
test base_test {
...
}
test derived_test: base_test {
...
}
Build your tests into a hierarchy
Create complex tests based on simple ones. When running a child test, Testo automatically brings the virtual test bench into the state it needs to be in order to run the derived test.
If a test can be run by a human, it can be run by Testo
Testo allows you to mimic human behavior. Writing scripts down is like documenting the actions of a real person sitting in front of a computer
- Keyboard
- Mouse
- Plug-n-Play
Keyboard control
The Testo Framework gives you great possibilities to control the virtual keyboard: you can automate press-and-holds of any key and key combination. If you need to type a text, you can call the
type
action, which will press all the necessary keys for you.press LeftMeta+R type "notepad" press Enter type "Hello world!" press LeftAlt+F4 press Right press Enter
We use Artificial Intelligence
We use Neural Networks to detect a virtual machine screen's contents. A screenshot is all that is needed.




Maintaining true black-box method
You don't need to install any additional agents inside virtual machines
No need for Internet connection
Neural networks work locally on your machine. You don't need to be connected to the Internet to make them work.
GPU acceleration support
You may accelerate the neural networks searching algorithm with a GPU. Your tests will run much faster.
One-button launch
Forget about manual set up of virtual test benches — just press one button, sit back and relax, and watch Testo deploy all the required infrastructure for you.
TESTS TO RUN:
my_first_test
[ 0%] Preparing the environment for test my_first_test
[ 0%] Creating virtual machine my_ubuntu
[ 0%] Taking snapshot initial for virtual machine my_ubuntu
[ 0%] Running test my_first_test
[ 0%] Starting virtual machine my_ubuntu
[ 0%] Taking snapshot my_first_test for virtual machine my_ubuntu
[100%] Test my_first_test PASSED in 0h:0m:1s
PROCESSED TOTAL 1 TESTS IN 0h:0m:1s
UP-TO-DATE: 0
RUN SUCCESSFULLY: 1
FAILED: 0
user$
Deploying from scratch
You don't need to create or set up any virtual machines. The Testo Framework will do it for you.
Keeping track of a virtual test bench's state
You could break and modify the bench as you like. When running tests, Testo will restore the required bench state.
VCS-friendly
.testo script files contain only text, so they are super-convenient to store in your VCS. Your test scripts and will always match your software version.
What's next?
Download and install Testo
The Testo Framework is available for Windows and Linux-based OSs.
Read the documentation
You will find instructions on getting started instructions here. We've also prepared a set of tutorials for your quick and convenient learning of Testo's main features.
Ask us a question
Got a problem? We will help solve it.