Part 1: Customer Brief
We start the MVP discovery session by a brief introduction to the idea, the vision and what makes this new ATF different from others in the marketplace.
A. Core audiences and what they care most in an app like this
Target Market: Small and medium businesses with a web app or a complex website
Speed to deployment: get the product to market 30% faster.
Cost-effective: 60% reduction in total QA costs.
Productivity: Up to 90% less development time for QA engineers.
B. Market overview:
SaaS Online Strategy: We’re currently using our Beta to refine our usage-based pricing model by tracking customer habits.
Value Added Resellers: We plan to provide our software to web app dev shops that provide in-house QA for other companies.
Direct to Company: Personally connected sales fostered by involvement in the Romania tech community
C. Platforms and support
Cross Browser Testing: Chrome & Firefox
D. App financials
$0.10 - Per Test Run
$200 - Test Search
Our smallest plan starts at $500/month and includes 2 discoveries and 1000 tests. Plans average at ~$3.500/month
E.
Goals:
fianancial, strategic, customer - related, market-share related
F.
Creation of a freatures table
Based on
Validation, the customer needs are:
Feature 1: Building and running automated tests/test suites
Feature 2: View test results
Feature 3: Identify and resolve client errors
Feature 4: Compare results and execution times for different automated test and suite results
Feature 5: Re-run failed tests in an automated test suite
Feature 6: Cancelling automated tests and test suites
Feature 7: Copy automated test
Part 4: Low-Fidelity Wireframes
Easy data management;
Faster test execution;
Short and concise scenario;
2 steps to get to any point in the application process
No confusion where to look for;
Meaningful name of the components (be it a button, field or an error message);
Team
We are a team of thinkers and doers who are passionate about better QA.
ATF was built with a singular purpose: to level the QA playing field by simplifying user interface testing. We wanted to bring large-scale testing capabilities to the masses; no matter what your size, budget, or technical expertise.
A. Product Manager (requirements from the users - create epics: define the user personas that will consume the product and how they are expecting to consume it)
B. UX (User Experience & Design) - work hand in hand with software engineers to build an appropriate interface and experience according to users' expectations.
C. BIZ (Business Analysis & Requirements)
D. DEV (Software Development)
E. TEST (Testing Quality Assurace)
F. DEVOPS (DevOps & Infrastructure Management)
G. DB (Database Development & Ops)
Front-End Engineer
Full Stack + QA Engineer
Backend Architect + QA
Front-End Engineer
What we have done:
We used 2 virtual machines (1xCPU, 1GB RAM) with CentOS, allocated in the cloud provided by Microsoft Azure. The first one for the application itself and the second one for the selenium grid.
For the application, we used Symfony framework for the backend side, and Boostrap for the frontend. We stored all the data in a PostgreSQL instance.
For the MVP, we developed the following features:
A. Users are able to create test steps using simple Codeception commands:
$I->amOnUrl('http://site.com/login');
$I->fillField('username', 'davert');
$I->fillField('password', 'qwerty');
$I->click('LOGIN');
$I->see('Welcome, Davert!');
B. After creating basic tests, users can group them into test plans, having the ability to run both the created plans and each individual step.
C. We also have 2 pages for reporting and user can see a summary of all the tests run: for example, how long did the tests run, which browser they were running, the step they had failed, and screenshot of the page where the test failed.
D. We also have a reporting page where you can see how many tests have been run in the last week and rates of failures and passes.
To create the Selenium grid, we used the Docker images provided by Selenium. We currently use docker-compose to manage the containers, but we are planning to use kubernates to scale and distribute the containers on multiple machines. We currently have only one node for the Firefox browser and one for the Chrome, but the grid can scale up very quickly as we can create almost instantly new docker containers with the desired browsers.
Future work:
As for further implementations, we aim to add:
ability to create teams to share existing tests with other users
ability to create schedules to run tests automatically on a specific time
ability to import already written tests from a repository
.