Business drivers like time-to-market, quality, cost, employee and governance have contributed significantly to the growth of software testing. Further; reduced cycle time and providing clear visibility of app quality by smart testing have resulted in managing Software testing with advanced testing techniques like Agile, CI, and test automation.
We are Agile!
Today’s IT world has become agile in development, testing and requirements engineering. Early marketing, being receptive to changes in the business requirements, and upfront communication for ensuring that right decisions are taken by the stakeholders on a daily basis is rampant.
Agile methodology advocates code every day; test every day! Development of stories and development of automated test suites for the Acceptance testing has been closely integrated in the sprints today. Continuous integration using CI tools and execution of automated test for every build has become the rhyme of modern day testing.
The testers’ role is transforming from just executing the test cases which was the scenario couple of years back to an empowered consultant throughout SDLC / STLC.
It would be advisable to ponder over the tester’s role to identify the skills needed for this.
The requirements analysis phase
Testers should get involved right at the beginning of the requirements engineering phase to understand the user stories and business domain. Testers like software engineers should understand the granularities of the business requirements to add value to their testing. A close collaboration between BAs, Developers and testers can definitely achieve the needed results.
Requirements should also be tested by the testers for ensuring that the requirements are clean, rightly specified with needed business logic and correct work flow. They should be testable and unambiguous.They also should be categorized with respective risks associated in the business.
This concept of static testing of requirements generally takes back seat in the practice. This is due to unavailability of the empowered and experienced testers and lack of domain knowledge by the testers.
I would say that during Requirements Analysis phase, the testers should be able to handle cross team collaboration and communication with BAs and stakeholders and empower themselves to uncover the requirements issues at early stage. Good tester will ask the right questions to get the right information from BAs about the domain, work flow, application / product features and functionalities along with non-functional requirements. This would help them to do what-if analysis and come up with right use cases and scenarios from testing / automation perspective.
Risk management is done at this level by intelligent testers. They can use the risk based requirements to map their test automation scenarios and Acceptance test scenarios. Good requirements analysis produces better tests and good test analysis produces better requirements!
With technology becoming powerful and Cloud testing for services over cloud for SaaS, PaaS, IaaS becoming ubiquitous – testing demands better role from testers. The Cloud testing challenges like scalability testing based on scalability analysis metrics, connectivity protocols testing, API integration testing across clouds, automated interoperability testing and continuous validations of apps upgraded frequently over the cloud are common. Testing really demands more versatile testers.
Additionally; TaaS — Testing as a Service over cloud is emerging as an innovative business opportunity. This would help the industry to get services specific to testing based on “Test as needed, when needed and how needed and pay as per usage!” A very creative and innovative model based testing can emerge out of this exercise. Experienced testers can come up with this model for industry which needs to be perfect in its performance for providing the needed services. Can we imagine what skills would be needed by testers to visualize and come up with such Taas service model and test it?
We can just specify the need of usability/ configurability / reusability / performance and security based test repository for such test services.
Mobile testing is a different beast!
Mobile testing requirements are multifolds. Testing handling emulators, multiple browsers, multiple OS platforms with variety of different versions on the different devices, GUI testing are some of the challenges.
Today’s tester role and Developer’s roles have been merged because of Test Automation. Test Automation Engineers do coding using scripting languages and build the automation suits based on the frame work. FW is a library of files used for providing a base for developing automation scripts focussed on usability and reusability, maintainability and for optimised execution of the automation code along with special test reporting features.
Automation testing is unavoidable in an agile environment. Using core Java, Ruby, Cucumber, VB script, Python, Perl, Java Script and shell programming (and many more) the testers develop the automation scripts. The automation scripts development is not different than software development. Hence understanding syntax, development of program logic using IDE and coding, debugging and optimizing code for execution on the different platforms like Android, iOS etc. are imperative skills needed for an Automation Engineer who tests web and mobile apps today. I believe that the role of a developer and tester are merged due to automated testing.
A look at the future
In 2012, software testers taking the role of business partners rather than bug fixers. We also saw that many of the testers as well as the developers spent time in security testing. If we take a look at some of the major trends in 2013 for software testing, we will see tremendous opportunities and challenges in testing domain based on upcoming technologies.
2013 shall focus more on component testing for reusability and API testing for web services, Security testing, Load testing for cloud based apps, exploratory testing, cloud integration testing, mobile usability and performance testing, client-side performance testing, SOA frame work testing and wireless mobile technology testing based on today’s software environment.
I am convinced that today’s testers should drive themselves to a role of Software Investigator rather than just a test case executor.
They should have latest updates on technology skills, coding and scripting skills for multiple languages and platforms, communication skills, leadership qualities and must possess domain knowledge of testing inputs. They should empower themselves to communicate with confidence to all the stakeholders from different teams for effective collaboration and interactions.
Testers should be able to do Risk Based Testing (RBT) and should be able to communicate to the top management / customers on business risks and their impact based on the issues identified.
Thinking out of box for helping on developing small utilities and tools for reducing test environment set up time, innovating different ways to reduce test execution cycle time etc. can be real value adding ways that testers can work on with their capabilities and skills.
Based on my experience; my concern is test engineers / automation engineers take a back seat in SDLC deployment. But they know the big picture of the AUT and the product under development. This is not the case with the core developers. So why not take a powerful role of an investigator, consultant, and risk manager for the app going to production? Why not enrich the tester’s role by grooming the needed skills? It’s need of the industry!