December 15, 2017
“The key principle of testing – Testing is context dependent.”
“Quality” means those features of products which meet customer needs and thereby provide customer satisfaction.
Today’s test teams are faced with complex projects. Having only a good technical background is not enough to provide good quality. The most prevalent reasons for difficulty or delay are lack of business knowledge, resources, time and the presence of varying restrictions. For a test analyst (TA), business domain knowledge is important in understanding the user needs for which the software is developed.
Let’s look at some of the benefits to be gained with business domain knowledge:
- Understand business requirements – knowledge of the functional flow of business processes and business rules will be helpful.
- Identify missing or incomplete requirements – if there are additional details or inconsistency, find those issues early.
- Apply effective test design techniques.
- Identify risks and apply a risk-based test design technique to prioritize test cases based on business criticality.
- Issue prioritization – knowledge of likely application use will tell a test analyst whether a given defect is trivial, significant, or critical.
- Good knowledge/understanding of UI and backend features.
- Understanding of technical terminology.
Software is useless if it does not perform as expected. The test basis for determining what a system should do can be found in the requirements or specification documents, as well as knowledge that the test analyst possesses regarding the business domain.
Let’s look at main points that a TA should remember while performing test activities:
- Accuracy – Testing requires knowledge of what a system should or should not do. It is critical for any application of accounting, statistic, engineering or other similar math functionality. Testing accuracy requires a precise test oracle and can be conducted on any test level. But often, software engineers are faced with situations where the specifications do not answer all the questions. When that happens, domain expertise becomes influential in moving the product to success. While doing accuracy testing, we are trying to be sure that the right data is presented to the right user at the right time.
In the healthcare industry, a small deviation in numbers may lead to significant changes and mistakes. For instance, incorrect rounding could cause a dosage to be mistakenly prescribed for a patient; inaccurate report data could be sent to a third-party organization; or produce wrong budget calculations, and so on.
- Localization – Localization is often required in testing healthcare products. A TA should pay attention not only to language but also for customs and culture of a specific market or region where that application is targeted. Some names could have different meaning in different cultures. Some colors are typically accepted in one region or country but not in others. What units of measure are used in the region? What about the format of date/time/address/Zip code/phone number? Do we have issues with the time zone or currency?
In healthcare, displaying the proper date/time format is critical. Some data could be misunderstood or shown to the user incorrectly. In order to avoid this issue, it’s worth practicing to store date/time in the UTC format in the database, which can be applied to any zone, dependant on the user’s location. For example, transactions or scheduled events/appointments created in different time zones will show the local time on the client side – not server time.
- Interoperability – Interoperability testing “only” tests whether two systems are able to exchange information. Does the system communicate properly under different environments, e.g., the hardware, software, middleware, operating systems, related applications, network configurations, etc.? Interoperability testing should be a priority, because fixing the problem can lead to architectural changes. Often, healthcare applications may need to interact with a billing system, CRM, report systems or others.
- Usability – Usability verifies how easy it will be for users to learn and actually use the software to accomplish what they need to do. In terms of usability testing we should think about:
- Who will use the software, e.g., speakers, sales reps, patients, physicians, etc.?
- How will the user utilize the software?
- How will the user attempt to accomplish his goals?
- How much time do you need to complete the action?
- How much time do you need to wait for the software to do something?
- Accessibility – Accessibility testing is a special form of usability testing focused on individuals with particular needs or restrictions that affect how they use technology. With accessibility testing, there are local, national, and industry-specific standards and guidelines that must be considered. For example, a UI may not look the same to you as it does to a person who does not distinguish colors. There may be added functionality that would allow that person to distinguish important UI elements.
- Performance – Applications for the healthcare industry are often used by large numbers of users simultaneously, which can have a negative impact on speed and usability.
- Remote Use – Most healthcare applications are designed to be used on devices, but in the case of presentations or training, several problems can occur. Do we have enough resources to store the data? If not, is it reasonable to filter and load only the latest data? Should the application work in offline mode?
- Conformance – For safety-critical or regulated environments, each quality characteristic may need to comply with specific standards and regulations. This may result in the requirement to perform conformance testing. In healthcare, industry frameworks and security requirements may be required, e.g., Meaningful Use, HIPAA, FDA requirements, etc. In particular, security related to protecting critical data is mandated as it relates to patients and organizational information, health records, payment information and account details.
- Compatibility – It is of paramount importance that the application is compatible across different hardware, operating systems, databases and versions of the browser. Common web browsers are a good example. IE, Chrome, Firefox, Opera, Edge, Safaris work differently. For instance, a control works in Chrome but does not work using IE. Compatibility issues could be everywhere.
In conclusion I would like to add, as one of the software principles states, “Testing is context dependent”, so the profound knowledge about the context can play a vital role in providing software quality.