Tech Insights from Innovative Minds: Diana Bărculescu, Head of QA
Welcome to a new edition of Tech Insights from Innovative Minds featuring Diana Bărculescu, Head of QA at ASSIST Software. Within our team, she's renowned for her eagle eye and intense focus on quality. As a manager, she guides her team to ensure every software product passes with the highest marks.
But first, there's a myth we'd like to debunk about QA engineers: they're not bug hunters! They are an integral part of the software development process that helps build confidence and trust, ensuring products work seamlessly in the real world.
Besides her role in the QA department, Diana is also a good mentor, sharing her knowledge and experience with colleagues and future tech professionals. She never skips a one-on-one discussion about careers during Open Doors ASSIST or an opportunity to be a mentor for students at the ASSIST Tech Challenge.
All in all, one thing is sure: Diana is always ready to support and inspire.
Diana and her team make sure every project exceeds clients' expectations. As a leader, she promotes continuous improvement by accepting new challenges and refining skills with each new project. This is her perspective, and it's also reflected in her mentorship style.
We asked Diana to share some of her insights as the Head of the QA department. Here's a peek:
Catching bugs early in development is critical for reducing costs. That's why QA must be included in the project in the very beginning, preferably in the requirements and design phases, to catch ambiguities or inconsistencies.
Practices like code reviews and pair programming enable collaborative error identification, while static code analysis tools catch vulnerabilities before runtime. Writing comprehensive unit tests, automating the repetitive tests, and following TDD ensure the functionality is validated as code is developed. Clear and detailed requirements also help avoid misunderstandings that may lead to errors.
Start with clear goals or focus areas for each session and allocate a specific time. Exploratory testing doesn't require pre-defined scripts, but creating exploratory test cases and writing detailed notes on the checked scenarios and found defects is very helpful.
Also, using testing techniques like Boundary Values, Equivalence Partitioning and Error Guessing could be very effective. Exploratory is more effective based on the tester's experience, as it can predict issues that may occur in specific areas, but understanding the system, requirements, and potential risk areas can guide your testing as a beginner.
Ideally, we should test in environments that mirror the production setup as closely as possible, where we use load tools, like JMeter, to simulate user actions and create traffic patterns that mimic real usage.
Also, we use tools to simulate different network scenarios, such as varying bandwidth or latency. In case of system constraints, we also use simulators, but I usually prefer to test on real devices with that specific configuration.
In this case, it's essential to have constant communication with the stakeholders to understand and prioritize the changes and to collaborate closely with the developers in order to identify potential issues early.
This kind of project requires adopting an iterative testing approach, meaning that test documentation must be kept up to date, regression testing must be done to ensure no existing functionality is broken, and CI/CD pipelines must be for frequent automated testing.
Automation can be that helping hand we really need in this case. Focus on the automated unit, integration, and regression tests to speed up feedback and implement TDD to align testing with development. Also, prioritizing high-risk areas and integrating testing early in development can make a huge difference.
Quality Assurance is an essential part of software development. It ensures that every product meets high functionality, usability, and reliability standards. QA helps create software that works smoothly, delivers user value, and meets the highest expectations.
The QA team works closely with developers, designers, and project managers to test every feature and fix any issue early. They check the software's performance under different conditions and ensure it can handle real-world challenges. Through careful planning and testing, QA ensures the final product is polished and ready to use.
Nowadays, mentorship has become a set-off for innovation and strategic thinking. Besides providing answers, mentors challenge their mentees to view problems from different angles and encourage a deeper understanding of complex issues. In industries like IT, where disruption is constant, mentorship is seen as an asset for navigating uncertainty, pushing people to test their limits and think beyond the conventional.
Moreover, it's a great way to access experiential knowledge that is rarely found in textbooks or courses. This dynamic exchange helps individuals and companies evolve in tandem, maintaining a cycle of continuous improvement.
We are fortunate to have Diana on our team. Her ability to focus on both quality and mentorship helps us grow continuously. With her on board, we can maintain the high standards our clients expect while also pushing the boundaries of innovation and excellence in every project we undertake.
- Read the previous part of Tech Insights from Innovative Minds with Agageldi Durdyyev, Front-end Developer.