Software Testing in Bimodal World

Currently two types (Bimodal) of IT work happening - One Enterprise/Industrial IT (Process Digitization, T r a n s f o rma t i o n , Automation, Channel Adoption etc) which is focused on stability and System of Records applications. Another is "new" IT which is exploratory in nature (creating new customers, exploring businesses which not there, innovating new solutions etc.) and focused on developing system of innovations applications.

New IT is fast paced, runs on either cloud or mobile, uses devops and releases frequentbetas. Testing is already done either by the pair programmers or by the end users. Very few testers. They upgrade every week.

Industrial IT which mostly follows traditional way of development & testing (sequential development and longer testing cycles) need to become like new IT and one day it will become so.

In current article, I would like to put across few points to note when creating your testing strategy which are relevant to both modes of IT in varying degree.

1. Test the Process and NOT the Software

Software testers (architects & and designers) should come out of their AC cabins to learn and understand the actual process on the field. Objective of a software is to digitize a process. If you are developing a warehousing solution, understand warehousing operations and map your process to the operations. Each warehouse operations might differ based upon various needs (statutory, regional, external factor). You will not realize these nuances until you have spent time at the warehouse.

Plan and perform physical verification tests. Test the process and not your software. At the end of the day your software is a way to achieve a business outcome not an end unto itself.

2. Apply Hybrid Model of Testing

Deploy hybrid model of testing. Let robots and automated tools perform application functionality testing. Manual testing should be more to verify the results and map them with actual process. Manual testing should focus on verifying that the product/application meets the process requirements and non-functional requirements.

Not all your features are equally important. Famed 80- 20 rule can be very well applied largely with most of the applications. 20% of the features are used 80% of the time. Identify these 20% golden features and ensure that your 80% effort goes in testing these 20% features. However, none of the feature should go untested. Remember, anything not tested will fail.

Prioritize your efforts for maximum returns.

4. Non-Functional Requirements ARE new 'Functional' Requirements and not afterthought

Testing has come a long way from being categorized functional and non-functional testing. Earlier categorized ‘non-functional' requirements have now become very much 'functional' needs. How your application performs in low bandwidth network, what's the availability from different global sites, what’s the behavior when application is not available, how difficult is it to install the software. All these are critical in current ‘flat’ world.

Basic tenet should be -What’s important to users is a 'functional' requirement. Non-functional requirements are core to application and not afterthought.

5. User Experience is a key Differentiator

Currently average user is over exposed to great many applications which are readily available and have awesome user experience like Apple/Google/Amazon products. Be aware that your users will eventually compare any application with the one which he/she is using at home. If your application doesn’t hold against regular ops, adoption will be a challenge.

Contemporize use experience else adoption will be a challenge.

6. Overcome Cultural Challenge- Testing is a 'lowly' job

Unfortunately testing takes least priority over design and development. Less experienced resources are deployed; weekends are utilized for testing to catch-up the lost time due to delay in development. Development teams are appreciated and awarded for fixing a 'bug' and not the testing team which identified the bug at the first place.

Be aware of these cultural anomalies and address them. Ensure that your testing team is motivated and energized.

Always remember your application / product is a good as your testing team.

Software testing is evolving along with development in Digital trends. Always remember the basics in defining your test strategy. Test your customer/users’ needs and not the software features.