Monday, 21 August 2017

What Factors Influence Medical Devices Testing?





Modern medical care depends a lot on technology, be it in the form of critical care equipment or as crucial diagnostic tools. It goes without saying that if an equipment malfunction occurs, (due to inadequate medical device testing), it will lead to 'wrong' diagnosis for critical care patients and could even turn out to be fatal. Also, as most medical practitioners of today increasingly rely on checking the health parameters of patients in order to arrive at a correct diagnosis, the diagnostic tools should be in perfect working order. 

Let's understand with an example. If the ECG report on account of a software glitch gives a wrong reading, the medical practitioner can make a wrong diagnosis based on that. Thus, the prescribed medicines can put the patient in danger. 

The above example has put forth the critical importance of medical devices to perform as per specifications, for any deviation can lead to disastrous consequences. This calls for medical device performance testing wherein every function of a device is not merely validated and verified but checked according to the crucial parameters that are laid down by regulatory bodies such as the FDA or BIS. 

What can happen if medical device software testing is ignored?
As most modern medical devices have built in software their testing becomes crucial for the following reasons:
·         A software glitch can deliver wrong health readings thus leading to a wrong diagnosis
·         Crucial health parameters may not get picked up by critical care devices such as Heart Lung Machine or EEG thus delaying prompt intervention of critical care experts.
·         A wrong diagnosis can prove fatal for patients
·         Company manufacturing such devices can get sued
·         Regulatory bodies can impose huge penalties thus hitting the bottomline of such companies
Medical device performance testing should be guided by a few key factors as given below:

Proper verification: Once a device is built the software parameters should be verified against specific inputs. For example: in the absence of medical device performance testing of an X ray machine or devices related to radiation therapy, the resultant dosage can prove fatal if goes beyond the permissible threshold.
Part of the Hospital network: Modern healthcare facilities run on a comprehensive information technology network in which medical devices form a crucial part. Carrying out medical device software testing would ensure these devices continue to function seamlessly as part of the network and provide information access as and when needed.
Ensuring security: Any software is prone to intrusion, which if not prevented by taking adequate security measures, can lead to their manipulation. Such a situation can have grave consequences for the patients as well as hospitals. Therefore, by carrying out medical device software testing vulnerable points in the software can be plugged and firewalls can be put in place.
Prevention of human input error: Humans are prone to make mistakes, which if left unchecked, can lead to difficult situations. For instance, giving a wrong command inadvertently while operating a system or device can have unintended but grave consequences. This can be prevented by undertaking medical device software testing. 

Conclusion
A comprehensive medical device performance testing can go a long way in addressing the concerns of patients as well as the healthcare community. A comprehensive medical device testing framework can prevent patient mortality, costly litigations and ROI for the company. 

Michael works for Cigniti Technologies, which is the world's first Independent Software Testing Services Company to be appraised at CMMI-SVC Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.

Thursday, 17 August 2017

Effective Strategy & Best Practices of QA in DevOps






DevOps aims at continuous development, testing, improvement, and deployment of software applications in order to cut down on delays in time to market and response to customer queries. In this software development approach every coding segment is tested post development and is followed by integrating the same with the rest of the application. As continuous testing, DevOps forms the crux of this approach, it should be carried out effectively. DevOps testing services include performance, functionality, usability, and security related tests, and post deployment gets monitored on a continuous basis to see whether it performs to its optimal level. A significant aspect of DevOps quality assurance is using automation mainly sourced from the cloud. Automation can quicken the pace of testing besides possessing the ability to check glitches that might be missed during the monotonous rigmarole of manual testing.

Before delving into the best practices to be followed in DevOps quality assurance framework it is important to know the benefits that accrue to the organisation by using the same: 

·         Brings about a synergy among Development, Testing, and Operations teams by making them function as one unit
·         Increased automation in continuous testing DevOps helps in faster detection (and elimination) of glitches
·         Ensures faster delivery of software in the market and quicker response to customer queries
·         Ensures faster updation of software as per changing market dynamics and shifting of customer preferences
·         As stakeholders form part of the planning, development, testing, and deployment exercises in DevOps quality assurance, the overall goal doesn't get shifted
·         Greater efficiency among teams leads to cutting down on flab and better realisation of ROI

Best practices to adopt in continuous testing DevOps

DevOps testing services should ensure that any stage of the application development process should be ready for deployment into the next phase. And to let that happen, the following practices are needed to be adhered to as a part of DevOps quality assurance.

Automation and Monitoring: Continuous testing DevOps involves testing of the test environment, strategies, data, tools and execution methods, and with automation leads to greater validation of codes and faster identification of glitches. In fact, any user response gets quickly attended leading to better monitoring of the development process or creating better versions of the product.

Testing on a continuous basis: Every aspect of the SDLC undergo testing on a continuous basis, thus leading to an overall better end product. Here continuous testing DevOps involves the following approaches:

1. Shift left and Shift right: The Shift left process forms a part of continuous integration of software while Shift right comes into being when the coverage area of testing is expanded following feedbacks from users.

2. TDD & BDD: These methods lay down the priorities, requirements, functionalities and risk factors of an application to be developed for all stakeholders. These can be used to generate better and faster automated test cases.

3. Continuous integration: Thanks to continuous testing DevOps, there is quicker as well as continual integration of individual segments into the overall jigsaw of SDLC. This leads to faster time to market and deployment of the application.

Inclusion of non-functional testing: In a traditional testing framework, non-functional testing such as performance, load, usability, etc. is done infrequently as opposed to functional testing due to its longer time requirement. However, in DevOps testing services it is integrated into the continuous test environment by tweaking the CI test process.

Conclusion:

Effective planning of the test environment and implementing proper strategies ensure the success of DevOps testing services. 

Michael works for Cigniti Technologies, which is the world's first Independent Software Testing Services Company to be appraised at CMMI-SVC Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.

Wednesday, 16 August 2017

The Importance of Load testing in Software Testing



 


As more users as well as businesses get into the internet bandwagon, companies big or small have their task cut out. Companies can no longer remain contented by just being on the internet, for the challenge is to remain a step ahead of one's rivals. This calls for making the website robust in terms of performance, functionality, security, and user experience. The last one is extremely critical as any error message while working on the site can mean a bad user experience, which might lead to probable junking of the site for rival ones. A satisfied user on the other hand can mean more business for the company.

To illustrate the same by an example: If a critical number of users get on an ecommerce portal to carry out purchases concurrently, there might be chances that the portal suffers from latency or worse, downtime. Such an eventuality can have a severe impact on users (by corollary, on the company as well) for not only they will end up not making purchases but worse, might lose money (on a temporary basis though) if the portal hangs while they are in the process of entering the card details. Consequently, apart from subjecting the company to costly lawsuits this can damage the reputation of the company, its brand and can impact the overall ROI. So, what needs to be done to escape such a 'doomsday scenario'? The answer lies in using load testing services or taking the load testing approach.

What is a load testing approach?

This is a process in which an application is exposed to load pressures – normal and beyond. By using load testing methodology an application's response time to concurrent users commands, its capacity to handle load, and speed of processing commands can be tested. On the face of it, load testing services figure out glitches that can lead to the above mentioned issues. Thus, before the software is released into the market and users are allowed to handle the same, load testing services amongst others should be engaged to test its quality. 

How load testing is done?

The load testing approach in most cases involves the use of cloud or virtualization. For example, if an application is anticipated to be used by 5000 users at a time, these many users should be generated virtually to test if the application behaves normally or otherwise. In other words, check if all the functions and links work seamlessly. In fact, automation is the key to load testing approach as manual testing will not be able to cope with its sheer scale. In fact, load testing services not only include subjecting a system to multiple concurrent users but deal with other processes as well such as getting a large number of files from the server, send multiple processing requests to the server or printer, or overwhelming the network with huge service requests.

Types of Performance testing

Load testing approach can be of three types:

Capacity testing: Also known as scalability testing this type of load testing methodology identifies and tests the maximum capacity of an application and its response time.

Stress testing: This is a type of load testing methodology wherein the system is subjected to extreme load conditions to test how it behaves.

Soak testing: In this type of load testing methodology the system's performance is checked for a longer duration.

Conclusion:

Carrying out load testing services is important to check an application or system's efficacy when the number of users is more.

Michael works for Cigniti Technologies, which is one of the top Independent Software Testing companies in the world to be appraised at CMMI-SVC Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.