Most of the Software Industries work on the base of developing Software on Industry Verticals or Business Domains. Well this works to develop Software Applications/Products but the questions that strike my mind as a Software Tester while testing any Product or Applications are
- Are we testing it well ?
- Is our testing Complete ?
- What makes our testing complete ?
- How to test something new ?
- Have I missed any thing ?
Well we can define QA Process to achieve/validate most of the things, but what do we do when we try to test something new. To answer this I again posed this question back to myself, how good am I in my testing domains ? Well the answer is, one cannot be the best in versatile domains of Testing. We might have exceptions, but how good is the knowledge if it cannot be shared or nurtured gradually. The idea that came out of it is "Verticals in Testing". Verticals are required in Software Testing where resources can be groomed in the respective domain and will be updated with the latest trends or technologies specific to that domain. Team involved in it need to do lot of research but at the end the result will be fruitful. The team will be highly qualified to handle any kind of issues and will set a benchmark for the QA who need to perform testing in such domains.
"Verticals in Testing" has always been a debatable topic in the Software Engineering, where most of the organization thinks that it has very less returns. I think it as an opportunity for an organization to get updated with the newest trends, always ready to gear-up to work with the happening technologies which might help them to walk with the future.
Let us look at the Positive and Negative Points on having a "Verticals Unit in Testing".
Benefits:
1. Enough research is done on the respective Testing Domains(Performance, Automation, Database, Security etc) which will help any new Project/Product to start work without investing more time for domain specific testing.
2. A common set of best practices to be adhered to throughout the product teams whose outcome will be a Quality Product.
3. In the software life-cycle the bug found at the early stages will cost very less to fix rather than the one that is caught at the later stages. Verticals Provide us benchmark practices which could be validated/tested with the Product at the stage of design/Architecture.
4. New Horizontal's can easily be adapted or welcomed if the so-called Vertical Tree is Strong. As an example if we consider Mobile as a Horizontal, effort is only required to test the Mobile Domain but not on how to automate it, how to do a Performance Testing or how to perform a Security testing. As an expectation the Vertical unit community have already done their research and their contributions can be readily accepted, which will reduce the burden on the testing team.
5. As a Software Industry/Product based Company the Vertical unit will have better grip on all the products which incorporate the best practices of the Verticals development. This would help the new Products/Project to be reviewed by the best practices that are followed by the Organization.
6. People will start valuing the QA as the standard gets polished with the strong basics.
Disadvantages:
1. Not all organizations would like to maintain or spend money on the teams which do only research and support the teams on the corresponding domains.
2. Limitations on the implementations of the Vertical Domain best practices. Every Product/Project works in its own way and all teams might not agree with the way the earlier teams designs.
Overall the benefits looks more promising, but the disadvantages also lay an important factor for the business. To overcome it, the Vertical Testing teams need to be dissolved in the Product/Project areas and rebuild back on priority basis.
Value of the Software Tester is always recognized when his words makes sense. His words will make sense when his mind is trained to visualize the design and applies his domain skills on it. Verticals Testing enables this capability and elevates the caliber of a Software Tester.