
We can read a large number of technical books but we don't know for sure whether this knowledge will be implemented exactly as it is in these books. I compare my work experience to a flight.
Under my belt I have 5 years of experience and baggage of manual QA. When I talk about baggage, I don’t just mean the 23 kg of checked luggage, but also the 10 kg of hand baggage we place on the belt, declaring there are no prohibited items — no liquids over 100 ml, and no more than 1 liter in total. What I mean is: even our hand baggage has strict limits, just like the essentials we consider necessary for the journey of life. My flight was successfully completed and now I can share what I gained.
My colleagues recommended to me Robert Martin’s book Clean Code: A Handbook of Agile Software Craftsmanship, and as I started reading it, I finally understood what they expected from me at work. A lot of moments from this book helped me realize my project. It feels like I have been painting my own Mona Lisa for years - sometimes the colors don’t come out right, sometimes the sunlight gets in my eyes. Just like in the books where writing code is compared to creating a masterpiece, where the process is long, detailed and full of unexpected challenges.
Because of a large amount of information, I recommend approaching it with intelligence and care.
Always there are lot of tasks that have to be done yesterday. As the result, delays in product releasing have happened, because team leader is aware of the risks, especially those related to funding.
Nowadays all people and things depend on money. Accept that if a factory worker knew how much is the contract, I am 90% sure he would be lazy like a turtle.
I couldn't make my team leader understand that the factory worker isn't a CNC machine, but the one who manages it. The team leader is like a person who chooses the colors and poses like the Mona Lisa. Creativity and freedom of thought are her defining qualities.
The key moment in my experience is parsing HTML-code to write automated tests using the Selenium framework. I agree that not all buttons have frames and issues with the DOM do exist and will continue to exist. I don’t blame the previous developers, nor do I want to.
The organization where I work deals with energy distribution in Russia, including border areas with Ukraine, Kazakhstan, Mongolia, China etc.
The first step was the most difficult. It involved creating a dispatching application, with many features including selecting from the list, entering values, handling local date and datetime, as well as value validation and registration. Sure, I had one sleepless night with all the fields running through my mind. Taking the starter code, I had many ideas for additional checks, but I decided to stop, even though I was 90% sure they were valid. The main goal was to create a draft, refactor, and repeat the actions in selected methods. The task of creating the methods was assigned to my mentor who is a developer.
After these changes my hands started to drop, because the code transformation caused the test case to fail. In conclusion, I had to move from a Junior QA with Selenium to a Middle QA, with the book Java 8 in hand and knee-deep in code. During the work, I encountered the problem of generating a receipt file containing the date, login, password, UUID object and its properties. I also worked on cleaning the code for one and a half months.
I think organizational leaders can understand that issues of this kind are solved with pentest and vulnerability assessments. Such specialists are available on the market, but budget-focused organizations often don’t consider it a priority.
My experience with tutorials, a few bug reports and community work probably doesn’t fully meet their requirements.
The first authorizations tests were running for 2 months, although I wrote them in 2 hours with several test runs. I failed to convince my colleagues that a manual automated test should have a maximum of 10 steps. As a result, the initial tests had about 20 steps, which led to business logic errors.
For example, when opening the dialog window to create a dispatcher application using LocalDateTime, after filling all the fields and at the checked step, the generation graph started to increase, but the system did not recognize that the generation value had changed from 120 to 300.
In conclusion, the last 70% of the test case steps didn’t fail because of synchronous data display. The main point is that "pesticide paradox" doesn't apply here.
And finally, the result has been obtained — see the year-by-year breakdown in the table.
| Год 2024 | Год 2025 | Год 2026 | Год 2027 | Год 2028 | Год 2029 |
Количество ручных тест кейсов | 306 | 216 | 146 | 46 | 6 | 0 |
Количество автоматизированных тест кейсов | 0 | 90 | 160 | 260 | 300 | 306 |
Количество циклов регресионного тестирования в год | 27 | 27 | 27 | 27 | 27 | 27 |
Время на выполнение тест кейса (ручное) (ч) | 0,8 | 0,8 | 0,8 | 0,8 | 0,8 | 0,8 |
Время на написание автоматизированного теста (ч) | 0 | 6 | 6 | 6 | 6 | 6 |
Время на поддержку тест кейса (автоматизированное) (ч) | 0 | 0 | 1 | 2 | 2 | 2 |
Время на разработку тест плана (автоматизированное) (ч) | 0 | 30 | 20 | 20 | 20 | 20 |
Время на разработку архитектуры (ч) | 0 | 160 | 80 | 80 | 80 | 80 |
Время на адаптацию тест кейса для автоматизации (ч/тест кейс) | 0 | 0,5 | 0,5 | 0,5 | 0,5 | 0,5 |
Репорт и анализ отчетов по тестированию (ч) | 0 | 3 | 3 | 3 | 3 | 3 |
Издержки на тестировщика в час (руб) | 1 500,00 ₽ | 1 500,00 ₽ | 1 500,00 ₽ | 1 500,00 ₽ | 1 500,00 ₽ | 1 500,00 ₽ |
Стоимость инструмента автоматизации в год (руб) | 0,00 ₽ | 300 000,00 ₽ | 300 000,00 ₽ | 300 000,00 ₽ | 300 000,00 ₽ | 300 000,00 ₽ |
Совокупные затраты на ручное тестирование (ч) | 6609,6 | 4665,6 | 3153,6 | 993,6 | 129,6 | 0 |
Совокупные затраты на автоматизированное тестирование (ч) | 0 | 856 | 726 | 1151 | 961 | 820 |
Совокупная стоимость тестирования (руб) | 9 914 400,00 ₽ | 8 582 400,00 ₽ | 6 119 400,00 ₽ | 3 516 900,00 ₽ | 1 935 900,00 ₽ | 1 530 000,00 ₽ |
Кумулятивная экономия | 0,00 ₽ | 1 332 000,00 ₽ | 3 795 000,00 ₽ | 6 397 500,00 ₽ | 7 978 500,00 ₽ | 8 384 400,00 ₽ |
Инвестиции в автоматизацию | 0,00 ₽ | 1 584 000,00 ₽ | 1 389 000,00 ₽ | 2 026 500,00 ₽ | 1 741 500,00 ₽ | 1 530 000,00 ₽ |
ROI (кумулятивный) | 0% | 84% | 273% | 316% | 458% | 548% |
My performance in the second year, compared to previous years, has improved. I am very happy with this experience because troubleshooting, refreshing and retesting after every merge have become my key skills on this project. Knowledge and experience combined and completed — go on…
I'm packing my suitcase for my new flight.