So, what is this Agile Testing? It’s kind of fancy term and everybody use it in software development and QA world, but do we really understand it? What is different in agile approach to testing than in classic ones?
I will try to highlight core concepts, that stands for Agile Testing approach. Please don’t consider this as any kind of manifesto, rather that I want to summarize list of good practices for testers and QAs working in agile teams.
Gathering Requirements: Starting from gathering requirements, ones should validate them in terms of consistent, logic or comprehensibility.
Development: Through the development stage, testers should continuously test smaller pieces of the feature, working close (or pair) with developers.
Testing: During dedicated test time, features needs to be validated in terms of acceptance requirements. I believe our role here is to be bridge between product owners and developers, checking correctness of the implementation with business guidelines.
Continuous Integration/Continuous Deployment: Nowadays, when software delivery introduced CI/CD and DevOps, there’s huge demand for test automation. I’m far from saying that manual testing is dead and I think will never be, but in my opinion – test automation is the future, whereas manual testing would become limited verification of some narrow test cases. Having said that, automated test should be part of the CI/CD pipelines. Of course there is no need to run for eg. all selenium acceptance tests (which are usually slow) while building every pull request, and in those cases we can limit automated test scope to unit and integration test. However, full blown test suite should trigger at least once a day, could be in separate job, and also ideally before every deploy on production.
Maintenance: Obviously, bugs will always happen – also when our feature is on production. Depending on organization of your company, usually product owners are the ones who enter them to backlog. Role of the tester here is to analyse bug reports and provide product owners necessary technical knowledge, to make issues fully understandable both to business and developers.
IT is a domain that constantly needs to adapt to more and more demanding industry requirements. Agile movement have had huge impact on software development, like so on testing and quality assurance. In order to test well and deliver reliable software, we also need to adapt to these needs, and improve our work methodology. In my opinion the key concept of agile testing is to treat testing not as a stage that start and ends with a test stage, but as a continuous process.