- April 9, 2014
- Posted by: AFourTech
- Category: Blogs
In a typical agile environment software products / services are built in phases such as conceptual phase, early implementation phase and production phase. It is therefore very important for software testing services organization to be able to align test efforts with these phases. A small investment in Software Test Strategy enables us to do that.
In a software testing company, a Software Test Strategy exercise is usually carried out by Software Test Architect or hands on QA manager, who has overseen releases of multiple similar software applications. Depending on the current product phase, product complexity and product size; tentatively, it takes between 2 to 6 weeks to conduct the test strategy activity. During test strategy exercise (Test Architect) TA / QA Manager works closely with product team as well as engineering team and prepares a document that outlines test roadmap for the product.
Product life cycle phases and software testing
Every software product is initially a concept. This concept is developed, to an extent, by the promoters of the concept for the purpose of self “proof of confirmation”. During this phase testing needs of the software application are usually ad-hoc and minimal. However, these testing efforts can be effectively used for test team ramp-up or seeding the testing; thus saving ramp-up cost.
After successful conceptualization, the product is taken to market to identify market readiness and also for right positioning of the product in the market. Initially, first few product implementations are done on pilot basis or in some cases they may even be paid customers. This is “Early Implementation” phase of the product. It is during this phase that the product team gets frequent feedbacks regarding issues and enhancements. Product teams even may have to shake the very foundation of the product to tune the product in the market. Good testing during this phase is very important for winning early customers and to stabilize the product quickly. Also during this phase engineering iterations (release cycles) are considerably small. In many cases, there are usually daily or weekly releases. During this stage, it is a good idea to design test data such that it can double up as customer demo data (instead of testing with some abstract or generic test data). The product code undergoes a good amount of churn in this phase and hence code testing/code review/code walk through is important to test activities for identifying regression/functionality issues in short span of time. API testing/unit testing is the best test automation opportunity during this phase. Usually, this is the first phase when the product is used by multiple users simultaneously (concurrent users). Hence concurrent user behavior testing is important. This testing need not be a very exhaustive performance/stress/reliability testing. If one goes for concurrent user testing, test automation can also be leveraged for concurrent user behavior testing and base test data generation.
Once the product has a good customer base, the product position in the market is clear and the core product structure is established. At this stage, one cannot make changes to core product features at will. Product team needs to extend the product without affecting core structure/core features of the product. This is “Production Phase” of the product. During this phase, product releases are more planned and scope is clearly defined. Each release has a good mix of new features, enhancements, bug fixes. Elaborate regression testing is very important during this phase. Since the existing user base is considerable and tends to grow day by day, elaborate performance, stress and reliability tests are important during this phase. A good number of test automation opportunities exist during this phase. These opportunities include smoke test automation, regression test automation, volume test data generation and performance testing.
Test strategy for a software product is designed keeping in mind the current phase of the product. Test strategy is tweaked/renewed as the product moves from one phase to another phase.
Test strategy essentially summarizes all testing needs during current product phase. It helps in identifying overall QA efforts, nature of test organization to be involved (completely onsite, completely offsite or mix of two). This information is valuable in arriving optimum Cost of Quality (CoQ) for the product.
Test strategy also sheds light on testing tools and methodologies. E.g. Process automation is an important aspect of the agile cycle. It talks about right CI tools and integration of automated test cases with CI. Test strategy describes pertinent test documentation approaches like Behavior Driven Development (BDD) approach and also discusses its integration with functional testing, unit testing, etc. Cross browser and cross device testing is an important aspect in many cases and hence pertinent tools for that (e.g. BrowserStack / Modern.IE) are discussed in this document.
Every software product must do a test strategy exercise; either a quick one or a detailed one (depending on the size and phase of the product). This exercise surely helps in identifying test roadmap and ensuring the optimum cost of quality.
Software Testing Services Include
- QA Testing Services
- Compliance Testing
- Performance Testing
- Security Testing
- Database Testing
- Compatability Testing
- IT Infrastructure
- Web Automation
- Mobile Automation
- Desktop Automation
- Device Lab
- IT Infrastructure
- Interop testing