Friday 7 September 2012

Software Testing – Where is next place?

Software Testing in VN has been growing rapidly in recent years. Ten years ago, when asked about Software Testing, most new IT graduates did not know exactly what it was, the career of their choice was only Software Development. Most testing certifications were not known.
However, all just changed - KMS Technology has recently celebrated a great milestone of achieving over 80% of testers certified ISTQB. I don’t talk about what value of this certification, the only having said that is how KMS Technology is aware of testing value.
 LogiGear and QASymphony have launched Test Architect (TA), qTrace & qTest and are in progress of commercializing their products. Other companies have dedicated testing services that they have not had it in their strategic plans before.
Most universities include testing major as an important subject of their training program. They are proactively cooperating with IT firms to build up the practical programs that adapt to the diverse needs of testing

1. Introduction
All are being transformed both quality and quantity as the nature of “All Models Are Wrong but Some Are Useful”

Those transformations are also posing challenges to engineers who commit to pursuing a SW testing career path. What will SW testing be in the coming years? What changes will be required to the skill set that testers should have? Especially, when Agile-based development is promoting its values in industry, the changes become stronger.

In this article, I would note personal opinions on the testing career path and thoughts of how testing may be reshaped in the future.

2. From transformation of traditional testing to Agile-based testing  
In traditional testing, testers often start their work in late phases of the process. They use specs, requirement documents … for designing test-cases. Any changes made to requirements cause many test-cases require updates. Therefore, if those documents are not stable, testers are better off waiting. Testers are keeping the primary role to confirm readiness of SW for release, testing responsibility is put on shoulder of the tester.

In contrast, Agile-based testing is a different story. It requires testers to participate during early phases of process. Light documentation is a principle of this testing (only high level test-cases or no test-cases needed) while automation is focused. Software testing is over comprehensive test documentation. In Agile-based testing, any change is welcome because very little effort is needed in updating documents. Testing responsibility is shared among everyone; SW is released when “DoD” (Definition of Done) is met.

3. To transformation of mindset and skill set of testing 
New trends in testing are asking test engineers have to “refresh” themselves from skills to mindset.

It’s time to change – the change of mindset to be more “agile”

Testing should be smarter by prioritizing what needs to be tested; what focused area of effort spent. An escaped may not be fixed immediately, it must be considered as a story which will be prioritized by product owner. The testing approach, then, is very important to gain the level of testing quality.
 
An approach I’ve recommended to my teams was to have a ‘to-do checklist’ and ‘item (or test cases) checklist’, that were used to replace traditional test-cases but did not take as much time for updates/ enhancements while still guaranteed level of testing coverage. The automation test is required in Agile model to serve regression testing.

Using the Agile model, testers may think of “playing” Software instead of trying to understand it. Because only when playing the software, testers won’t need a lot of documents to know what it is and why it has to be that; they have to proactively communicate with ‘the team’ (including both client and their team) instead. Their minds are not driven by any requirement documents that constrain their understanding about SW in only one way. In addition, they can quickly focus on changes of SW made that may be at risk of being wrong. However, it does not mean testing facets as principles; types and techniques ignored. Regression testing, for example, is still very important, which promotes the value of automation testing in the Agile model.

The changes stated in the table below are posing pictures of testers in new uniforms


4. From project-based testing services to OTC (Offshore Testing Center) and will be Testing by Work Order or Cloud-based testing?
In a project-based contract, the client doesn’t take care of the number of testing resources in the team, testing is under the plans of Project Manager, a tester may take assignments on multiple projects at a given time. Therefore, projects can use a diverse range of testing skills from organization. However, high pressure is put to testers in release periods. Soft skills are really not focused by mostly time of working with internal teams.

In OTC (Offshore Testing Center) contract, a dedicated testing team is built at the service provider site (usually offshore or near-shore) with agreed headcount. The team is responsible for all tasks assigned by the client. Offshore managers in this model are keeping roles of resource management & utilization and risks & issue management. While testers must own the techniques of both black-box and white-box testing, soft-skills (especially communication skill) are more focused by having more opportunities to directly work with the client.

I’m thinking of other forms of testing models that may be deployed in the future. When client don’t want to invest the time & cost of forming & training the testing team (OTC model) as well as not willing to have contracts in terms of project-based that take risk of losing Intellectual Property (IP) . The cloud-based applications with size small enough to not take a lot of time for testing or project domain is not too complicated to have specific training. Then, testing service providers may play the role of contractors for work order on demand. A work order can simple be a mutual agreement on completion of particular testing level (often being user acceptance test) for an application or a complex contract for the whole product. If this model is taken, testers may be required to own highly-skills on various testing types to quickly adapt to diversity of orders. Ability on quickly catching up changes of the technology and the most importance is to have high degree of tolerance under high pressure.

5. Conclusions
No matter what the testing is reshaped, the testers need refresh themselves. I don’t say that there is no room for Traditional Testing or Project-based or whatever, however making changes to mindset and skills will enable more opportunity in testing career. Where will you want to come? Is it time for you to gear up?