Synergy QA: How does Symless test software?
Quality Assurance (QA)
Synergy QA (quality assurance) is very important; it's essentially a structured form of testing. Symless is currently a tiny team of 10 people: 4 C++ developers, 1 web developer, 2 in customer service, 2 in business operations, and a CEO (that's me). This means that instead of having a dedicated QA engineer, everyone at the company chips in. Everyone at Symless uses Synergy, including the business operations people! This is known in the software industry as dogfooding; eating your own dog food. As well as this ad-hoc day-to-day testing, we also follow a structured QA (quality assurance) process.
Our QA Process
We have a QA process guide, that we've actually made public so you (the customer) can see how we test. If you like, you can follow it and submit your own test results! If you do give it a try, make sure you fill in the form on a mobile device. The process involves rebooting all of your Synergy-enabled computers, which means you'll lose whatever you've typed into the form.
Don't you test during development?
We absolutely do! The thing is, with software development, we tend to get very focused on the issues we're fixing in a particular version (which takes about 2 weeks to develop). Rarely will it work out that we have a balanced mix of operating systems, so it's easy to accidentally introduce a bug and not notice. That's where QA comes in.
How does Synergy QA testing help?
Disciplined QA is important because it shows up new bugs that we missed during development. Ad-hoc dogfooding is also important, as it exposes things that the QA process doesn't. But structured QA testing is always necessary, as it ensures that you cover scenarios also experienced by customers (not just the desktop setups here at Symless).
Platform Testing Matrix
These are the 16 different platform configurations that we test! A little internal Symless lingo here that Synergy 1 users will know already; a server is the Synergy computer that is sharing its mouse and keyboard, and a client is the other computer.
What sort of things do we test?
- Update, uninstall, then reinstall
- Auto switching
- Move mouse from client to server and back 20 times
- Type “Hello world” on the client
- Copy and paste from client to server
- Copy and paste from server to client
- Change WiFi network, then move mouse to client and type
- Sleep and resume, then move mouse to client and type
- Reboot computer, then move mouse to client and type
In the software industry, eating your own dog food — or dogfooding — is a common approach for companies to test their product or service by letting employees use it in real-life scenarios. The idea is that by using your own software just as a customer would, you can proactively validate and incrementally improve it before releasing it to the world. Besides quality control, relying on your own product also makes for good marketing.
Our office mascot, Bella, actually doesn't do Synergy QA, but she does eat dog food!