Test Driven Development & Role of QA
Syed Rehan Ahmed
Manager SQA | Test Automation | Test Architect | OTT | Fintech | Ride Hailing | MS Project Management | ISTQB-CTFL? Certified
Software development is an evolving field, theres always new trends and technology enhancements with every new day, in Pakistan's echo system specially, shift left and TDD is currently a topic of discussion in tech leaders. With this adapting change there are some concerns and discussions within QA community specially for the role of QA in TDD.
Though both are very different things TDD is basically a development methodology, a style of development as described by Kent Beck in his book, which starts with a failed automated test and later theres Red-Green-Refactoring mantra. It has nothing to do with the QA or QAE role in any of the organisation.
But certainly with writing tests before the actual code it triggers this question if we are testing everything through then why need a dedicated QA engineer or the tester. Well, QA professionals has vital/crucial role of the successful delivery of the product and achieving the quality results out of the development. Here, are few areas that in TDD practicing environment QA professionals can help or sometime necessary, lets touch briefly,
Scenarios Creation
With QA team we can help product and the development teams in User Stories Writing and with Test Case Writing, so with agile environment we start with requirement refinement and user stories with some descriptive acceptance criteria, QA can help alot in those areas with their domain understanding, being technically evaluating things etc. Also when we start writing failed test cases as part of the TDD, pair programming helps alot in this and I have seen this helped alot in scaling. With each organisation practices the role can vary but the foundation of this would remain same as we need someone who can think beyond code coverage and product's refinement.
Exploratory Testing
A QA professional has been brought up with certain analytical skills which help them to go above and beyond when bringing up the areas of the applications that might get neglected during refinement and development, one of that is the Exploratory Testing (which is an approach defined in ISTQB) where QA professional analyze the testable and bring things that might get missed before it could cause a catastrophe in the production
System performance
System performance is one of the major concern and QA team helps alot with help of different tools to monitor and initiate the performance initiative. I have seen some QAs create dashboards in the monitoring tools and creating alerts to enhance performance of the Databases, production loads and increase of certain error in the production which might be affecting the customers. There are certain areas in different products where QA can help scripting the performance monitoring maybe for website load time, mobile applications slowness, backend latency or maybe the conventional load, spike, endurance and stress tests. There can be thousands of use cases based on the product requirement with respect to the performance where we need a dedicated team to look after, as this can be easily missed in any of the development methodology that organisation is following
领英推荐
Quality Advocates
QA team can work or should work as the quality advocate in the organisation with helping the teams to adhere with the practices that has been governed by the tech leads, and being able to drive those initiatives which can help to maximize the productivity, like following the TDD practices, smooth CICD pipelines, securing the product, devising the mechanism to automate the code quality in terms of coverage, linting, customise development practices, security adherence etc.
Feedbacks and Reporting
QA team help in getting user feedbacks, generate reports, creating RCAs to help the tech teams to continually improve the product. Also, team can help in setting up regressions so the continuous feedback from the automated scripts can be achieve periodically, defining the KPIs and generating the deviation report based on that so teams can come back align, user experience reports can help in generating directly with the users and tech team can take it for further improvements and even devise a mechanism to implement end to end feedback integration
Key Takeaway
These are just of the few areas from many where QA can help the teams where we have shift left approaches, but for the QA professionals since the things are evolving rapidly, so the use of automation and enhancing their skills in those areas are now mandatory, also with TDD as well QAs and testers also need to get understanding of how things are working with this methodology, then only they can help in such scenarios. In a TDD environment, QA’s role extends beyond traditional testing to include guiding test strategy, validating test coverage, and ensuring that tests align with real-world scenarios. QA professionals bring a holistic view of quality, ensuring that the TDD process not only meets technical requirements but also addresses user needs and business goals. Role of QA in TDD compliment this practice and help bridging the gap of test automation and quality objectives of the product.
Do let me know your thoughts ??
#TDD #QA #SDET #Agile
Salesforce Consultant @ IBM I QA Tester / Automation
7 个月HI Syed, I am interested in this job.