Hi, my name is Oleg and I'm a part of Exactpro’s Sailfish development team.
At Exactpro, we Build Software to Test Software.
Do check out our website - exactpro.com - if you want to learn more about us.
If you're hearing about Sailfish for the first time,
then this video is what you need.
Today, I’ll tell you what Sailfish is
and what tasks it helps to solve.
If you've already heard about Sailfish,
you may still learn something new.
To check out the Sailfish source code on GitHub,
follow the link in the description below.
Well, let's get started.
Sailfish is Exactpro's original open-source tool
for automating the functional testing of trading systems.
This means that it allows a software tester to make
his routine work on functional testing less routine.
In most cases, this type of testing involves:
connecting to the system via protocol or protocols that it supports;
interacting with the system by sending messages via the previously established connection;
checking the correctness of the response from the system based on the previously sent data.
All these steps are repeated over and over again.
On top of that, each protocol has its own specifics
that should be taken into account when working with it.
Otherwise, you might not even get to sending messages,
because everything will stop working much earlier.
And that's where Sailfish comes in.
It allows you to rise above the protocol and network
communication specifics when writing test scripts.
Instead, testers can fully focus on testing the business logic of the system.
All this is achieved by unifying the communication
with the system, regardless of the protocol,
and the format that describes this communication.
Sailfish supports many network protocols,
including the most common ones such as FIX, ITCH and Native.
In addition, if the protocol used to interact with your system
is not on the list, you can implement its support on your own.
Sailfish architecture has great extension capabilities.
Our development team is also constantly working
to increase the number of supported protocols,
following the new industry trends
and the changing needs of the projects.
Okay, we've successfully established the interaction with the system.
Now, what about getting the reports?
We would like to see the result of script execution for further analysis.
And that's where Sailfish can help too.
Right out of the box, it allows you to generate a report
after running the script, which will lay out the entire interaction with the system step by step.
In its turn, each step will have the information
about the input and the output data that was used.
Also, the report will contain all the messages
received from the system or sent to it.
All this allows us to simplify the analysis of test results.
Another out-of-the-box Sailfish functionality allows you
to automate regression testing and preparation for it.
This can significantly reduce the time it takes QA teams to conduct testing.
We call this functionality the "Big Button"
because all you have to do after some brief configuration
is press one big button to get everything working.
So what is it and what does it do?
Imagine having a test library containing thousands of scenarios.
Some of them are interconnected, and some are not.
You can run them all sequentially on one Sailfish.
It’s the easiest option: all reports will be in one place,
which is convenient for further analysis.
The only downside is that it takes a lot of time.
The second option is to divide the scripts into groups that can be executed
in parallel and execute them on a number of Sailfish instances.
This option will save some time, but you’ll have to do some manual work:
you'll need to break down the scripts into groups,
upload them to the right instances, and, once done, collect the reports
from all instances in one place for further analysis.
And there's a third option - to use the "Big Button".
This approach combines the speed of script execution
(because you can run the scripts in parallel)
and the convenience of further analysis of the results
(because all reports at the end of the work will be in one place).
In a nutshell, here’s how it works.
The "Big Button" functionality is implemented
with the help of several Sailfish running simultaneously:
these are the Master Sailfish and Sailfish executors.
The role of the Master Sailfish is that it guides
the execution of scripts on multiple Sailfish-executors.
Master Sailfish first configures them,
and then runs user-declared script groups on the executors
that have been configured specifically for these groups.
At the end, Master Sailfish takes the reports from all Sailfish executors.
In addition, all the run data goes into a common database,
which lets us analyze it on any other Sailfish connected to it.
Providing all the described functionality and more,
Sailfish allows us to considerably simplify functional testing
as well as the process of script writing.
So, today we’ve talked about Sailfish - Exactpro’s
original tool for automating functional testing.
Sailfish simplifies functional testing and results analysis.
Subscribe to the Exactpro Vlog channel
to be up to date on all the new videos.
If you're interested in working with Sailfish,
we have a playlist of short videos on various aspects of working
with the tool, starting with system preparation
and installing it on your machine.
You’ll find the tutorials by looking among the links below the video.
That's all for today.
Have a nice day and we’ll see you soon.