Testing is vital part of any Software Life Cycle. Given that the time given to testing is very limited and the focus is always on launching the product, it sometimes results in sub-optimal test coverage, often resulting in bad user reviews and low ratings. If you want to avoid getting there, here are some quick tips that would ensure you release products with Minimum Viable Quality (MVQ) every time (Qapitol, 2017).
Ensuring Business Needs
This is the basic and most common need of any product or application which is being developed to solve some real customer challenges. Understanding target market and users, user needs and user journeys, etc., are critical to define the solution that will effectively solve the problem that your application is trying to address. Whether you are solving an under-solved problem creatively or solving a problem that is yet to be solved for the customers, laser sharp focus on core functions that are critical to solving the problem should be persisted with. ‘Featuritis’ is best avoided and test your hypotheses, test your design prototypes (without even a single line of code being written) before you embark on larger investment of time and budget (ibid).
Functionally stability is the heart of any application or product. The first and foremost goal is to test and ensure that the applications helps the users accomplish tasks in a manner that you wish they do. While testing the application, ensure that the functionality is working perfectly, all failure conditions and negative flows are handled, and the experience is seamless. Functionality is generally defined by process which is a business flow and would be a user scenario to perform any action or transact. Please ensure that you have deeper and wider test coverage, ensure that the quantity (number of tests) and quality of testing (test models, frameworks, knowhow, heuristics, oracles, etc...) and ensure the velocity of testing supports your release plans. If these are not accomplished with the developer testing, consider an in-house test team or an outsourced test team. Below are some of the parameters to be taken into consideration to test and ensure that the product is functionally stable:
- End to End Business Flows are working as expected
- Ensuring User Flows are working as targeted
- Tested across different Networks
- Tested across different Devices, Browsers & OS’s
- Tested during interrupts
- Tested with Rendering
- Passes Compliances
Design-intuitiveness is the most important and critical aspect of any applications as it turns the visitors into customers and also makes them loyal to you. A great interface and interaction design that provides seamless user experience leads the user to repeatedly use your product.
Test early, test often, involve real users if you can (test crowd). Please appreciate the fact that your developers may know the shortcuts/fixes/roundabouts to accomplish some tasks and your users may not necessarily know these. Consider the following in your test design and perform tests accordingly with expert testers:
- Good Navigation and Controls
- Consistency across application
- Good Colour & Text Combinations
- Suggestions, Help & Guidelines
- Online & Offline Notifications and SMS’s
- User friendly design
- Screen Orientation
Sustainable to Load
No entrepreneur would ever want to be in embarrassing situation where the great idea which is converted into product or application crashes or hangs because of unsustainable load. Each application or product must pass with the phase of testing in different load conditions which sets the expectations of business target and defines what numbers system can bear and where it would need more support in terms of adding servers or databases. For a start, build robust APIs, test APIs early, and get API test automation in place. Server side API performance testing is a must before you hit the larger customer set or if you are expecting spikes of usage.
Some of the points to be taken into consideration are:
- Less Response Time
- Powered throughput
- Zero Error in App Service Requests
- Sustainable to Load with n numbers of requests
- Peak or Saturation point awareness.
Securing Attacks & User Data
In a digital age that mandates 24x7 connectivity and involves collecting and storing user data for providing personalized services, user sensitive data is a major part of worry. The data, when exposed, may result in fraud, crime, attacks, etc... You must consider building a robust security layer right from the start if you are dealing with extremely sensitive data (ex. health and/or banking) or once the product is functionally stable if you are building a generic product, towards the later part of product journey. If you are short on budget, you may want to utilize the services of progressive security testing experts who will help you uncover the loopholes and charge you per vulnerability detected.
Some of the security parameters to be taken into consideration are:
- Encrypting user data with strong algorithms
- DOS attacks
- Not exposing any sensitive data
- Securing Payments
- Here is another great article about why quality assurance for startups is important: https://www.techstars.com/content/community/startups-should-not-ignore-qa-testing/ (Saeed, 2017)
→Click the View the Lesson Quiz button below and successfully complete the quiz to advance to the next lesson...
Saeed, H. (2017). Why Startups should not ignore Testing and Quality Assurance. Available at: https://www.techstars.com/content/community/startups-should-not-ignore-qa-testing/ [Accessed 1 February 2018]
Qapitol (2017). 5 Key Tips to Tech Startups to Test The Product. Available at: http://startupbritain.org/3keytipsfortestingyourwebsiteorapp/ (shortened version) [Accessed 1 February 2018]