May 17th, 2023 by Shivani Sinha
June 3rd, 2020 by Suyash Dubey
Test cases are the first step in any testing cycle and are very important for any project. If anything goes wrong at this step, the impact gets proliferated in the entire software testing process. This can be avoided if the testers use proper procedure and guidelines while creating the test case template.
In this blog, I am going to share some simple yet effective tips which you could use for writing effective test cases. These tips will save you time and effort while optimizing the use of resources.
How to write test cases in a better way
Let’s have a look a the tips to write better test case template.
1. Detailed Domain Knowledge
Domain knowledge in information technology means deep knowledge of business and operational dynamics, the risks involved and the opportunities in that particular project. It is required to follow the best practices in the domain.
2. Break long test cases into many smaller ones
It is better to break the test case into a group of smaller ones if it has too many steps. It would be easier for the developer to backtrack and repeat the test steps if an error occurs somewhere in the test script. If not done than there are high chances that the developer will miss the bug.
Before starting on the test case it is suggested confirm all the assumptions that apply to the test and the preconditions that must be met before execution. There can be data dependency or the dependencies on the test environment or any other test cases.
4. Attach Artifacts
Relevant artifacts should be attached to the test cases. This can be done using a test management tool. At the time of product delivery, It will help to track the changes in the application. I will be easy to understand the flow of the function when there is a change at any step which will not be easy to relate otherwise.
5. Test data input
While writing a new test case a tester can share test data wherever applicable to be used for the Test Case within the test case description or add with the specific test case step. This will save time as there is no need to look for the test data anywhere else.
If the values are to be verified then testers can specify the value range or describe what values are to be tested for a particular field. Choose a few values from each class which will give good coverage for your test.
It’s better not to mention the real test data value but the type of data which is required to run the test. In projects where multiple teams use the test data and it keeps changing, mentioning only the type of data will be a wise choice.
6. Organize your work
Use a test management tool to manages your test cases instead of using a spreadsheet. There are many test management tools that can be used to organize the test cases in one place which will increase the productivity of the team.
7. Stop Assuming
It is better to refer to the specification document. Assumptions about the features or functionalities can lead to disagreements between the client and the developers. This gap between the client’s requirement and the application under development will impact the business.
8. Test Case Naming Conventions
To write tests which are easy to understand, we have to stop coding on autopilot and pay attention to the naming conventions. It is required to name our test classes, fields of our test classes, test methods and the local variables while writing automated tests for our application.
It does not matter which team member wrote the test, others will know what feature is tested under what scenario without even looking at the test code.
9. Meet Customer’s Requirements
If the testers miss a bug or write test cases that do not relate to the real world scenarios then it’s just a waste of resources and time. The goal is to meet the customer’s expectations and that can be attained only if the testers think from the users perspective.
10. Cover All Verification Points
It is important to write well-defined test case verification steps covering all the verification points for the feature under test. To make sure that the test Case covers all the verification points match your test case steps with the artifacts given for your project.
11. Avoid Repetitions
Do test automation when needed as it will reduce the manual effort and save a lot of time. The test scripts should be written in such a way that they can be used afterward for some other project.
12. Make it Reusable
Create test case template which could be re-used in the future by other teams. Also, before writing a new test case for your module, find out if there are similar test cases written already for some other project. Doing this you will avoid any redundancies in your test management tools. Call the existing test case in pre-conditions or at a specific design step if there is a need for a particular test case to execute some other test case.
13. All-Inclusive Test Coverage
Test cases should include all the features and functionalities mentioned in the software requirement. Requirement traceability matrix will help in finding the untested functions of the application.
14. Group Similar Test Cases
A test run is a collection of test cases that testers should execute in a particular order. Test cases are often grouped in test runs. It’s preferred to put preconditions at the beginning of a test run rather than inserting them into each test case.
Actually, only a few of the test cases need preconditions, so the field is often left empty. A test management tool will help to customize your forms and create a test case template which will save your time and effort when writing test cases. Another thing to keep in mind is to avoid writing the same instructions several times by moving repeated preconditions to a test run.
15. Easy to Understand
The test cases should be well defined with comments where ever needed so that any other software tester can work on it in the future. Whatever project you work on, when designing test cases, you should always consider that the test cases will not always be executed by the one who designs them. Therefore, the tests should be easily understandable and to-the-point.
In a scenario where the person who wrote all those test cases leaves for some reason and you have a completely new testing team to work with, the entire effort spent during the design phase could go down the drain.
16. Test Case Description
In the description, the testers need to mention all the details about what is going to be tested, what needs to be verified, the test environment and test data.
The information mentioned below should be there in a well-written test case description:
- Test to be carried out
- Testing tools
- Test Environment Details
- Behavior being verified
- Any dependencies like preconditions and assumptions
- Test Data to be used
17. Maintenance and Update
All the test cases should be updated with the new requirements so it’s easier to execute them in the future if there is a need. Even if some other tester wants to use the test case he/she wouldn’t have to go through the details of the script.
The tester needs to have good domain knowledge and should write presentable test cases from the users perspective. A good test case template will make it easier for testers to write good test cases. If there are only a few test steps, consider making a checklist instead and have a look at some relevant test case examples before working on your test case. A test case example will be helpful in creating test case templates too. A test management tool will definitely help in improving the way test cases are created and managed.
February 24th, 2020 by Suyash Dubey
Healthcare organizations are largely dependent on digital technology to deliver quality products and services. In the last 5 years, we have seen the healthcare sector going through a digital transformation and mobile apps are at the core of this transformation. Healthcare mobile apps are used by patients as well as healthcare professionals to handle daily tasks like medical references and maintaining databases. Meeting the quality standards set by healthcare regulatory authorities like FDA is crucial as in many instances, people’s lives are at stake. So let’s see how mobile apps are helping healthcare companies to enhance productivity and deliver quality services.
The Evolution of Mobile Healthcare Apps
Since the arrival of smartphones, we have witnessed a rise in the number of mhealth apps and the type of services they offer. In the initial stages, we saw apps that offered information about the healthcare centers in the vicinity and these apps also provided the option to book appointments. The advancement in mobile and wearable technology opened the doors for healthcare organizations to unleash their full potential.
In the last couple of years, enterprises are using technologies like AI and predictive analytics to develop better mHealth apps. Now we can see a variety of mHealth apps in the market providing different solutions to the healthcare professionals and the patients. Let’s have a look at the categories of mHealth apps that we can find on Google Play Store and Apple App Store.
The most downloaded apps are among healthy lifestyle and women’s health categories. Smart fitness bands are in trend these days and fitness tracking apps are also one of the most used apps around the world. Apart from this, apps that provide health insurance services also come under mHealth apps. It bridges the gap between the policyholders and the insurance company by providing all the information on the fingertips.
Challenges in healthcare app testing
By the first quarter of 2020, there were more than 45,000 mHealth apps available on the app store. This shows how competitive the market has grown in recent years. But to stay ahead of the competition you need to overcome the challenges in testing and deliver a quality app. So let’s look at some of the major challenges in mHealth app testing.
Meeting the usability expectations
Whether it’s patients or healthcare professionals, usability is the most sought for quality in a mHealth app and EHR systems are a good example. So if the app is being built to maintain and search health records or to recommend a nutritional diet, the app should be convenient to use for all age groups.
There can be emergency scenarios where an elderly patient needs help and the app needs to alert the doctor or the caregiver. In this scenario, the elderly patient should be able to tap on the button quickly or the app should have a function to initiate a video call so that the caregiver can help the patient without wasting time.
This was just one scenario where only the caregiver and the patient were involved. But a healthcare app can be multifunctional and can be used by other stakeholders like administrative staff, insurance advisors, nurses, and more. This is why testers need to make sure that the app supports different workflows by creating user stories and scenarios as per the user’s needs. For instance, an insurer might want to track a patient’s treatment plan activities, including tests, office visits, and procedures remotely. While a physician might want to review a patient’s treatment progress remotely. Also, a caregiver should be able to access the supervisee’s current health status remotely.
Some patient management apps might need to access their medical documents to monitor the care receiving activity. In such cases, testers and developers can create a list of documents that can be accessed by the caregiver using some category filters. The documents can include medical prescription, procedure notes, lab and imaging results, consent forms, identification form, and medical conditions.
Building a foolproof app
It is crucial to develop a secure healthcare app that can withhold all the confidential data safe from malicious attacks, viruses, and other types of security breaches. To achieve this level of safety the app needs to be compliant with a legislative regulation like HIPPA.
The Health Insurance Portability and Accountability Act focuses on the security and privacy of confidential healthcare data and testers need to have knowledge of this act to make the app compliant. Some of the key areas to focus while checking the app’s HIPAA compliance are access control, encrypted data transfer, audit log, data sanitization, load testing, and information on correct/incorrect data usage.
Ensuring quality in healthcare apps
Overcoming the challenges in healthcare app testing is essential but not enough to deliver a quality healthcare app. There are certain aspects of healthcare apps that need to be taken care of. So let’s take a look at the best practices that we need to focus on to achieve the level of quality that users expect from a healthcare app.
1. Continuous testing
Continuous testing gives you the confidence you need to meet the user expectations from a healthcare app. By implementing continuous testing you will be testing the code continuously at each and every step of the testing cycle. Continuous testing also means that you will use automation often to reduce the chances of human error while reducing the release cycle. The added advantage of shift left in testing will result in test automation scripting and defect identification in the coding phase resulting in a superior quality build. The best way you can deliver a flawless app is through implementing continuous testing.
2. Data confidentiality
While testing healthcare mobile apps, authentication, and user authorization process has to be given due attention. But there are still some areas that a quality engineer sometimes forget like report generated data and departmental boundaries. Restrictions on data availability should be implemented in the main EHR (Electronic health record) work process of an app. Also, protected health information (PHI) should be available for the patient care team. EHR restrictions should be included in the reporting module for drill-down reports. Reporting is regularly executed as a part of the data warehouse. If the caregiver does not access the patient’s data then the relevant PHI fields must be concealed.
3. Test Data Management
To get better test coverage and get better results of testing you need diverse test data. Especially in the case of testing clinical and non-clinical workflows through test automation. Therefore for successful automation testing of healthcare apps, you need to have production-like data including the inconsistencies that might be there in the production data. The app should be able to retrieve data swiftly whenever required. Protected health information must be organized to assure compliance. The data that mirrors its authenticity in production must be the foundation of a current test data management strategy.
4. User experience
Attributes of usability should be fixed prior to reaching the testing phase. However, a QA is not directly responsible for this. IT must be focused on the issues related to the usability, during the QA process. The reason is that IT adoption is the biggest issue in healthcare, unlike other sectors. Similarly, usability related problems can give rise to clinical issues. A recent example of this is when a patient in UCSF Benioff Children hospital got overdosed by 300%. The main reason was that the medication management interface was unsuccessful in preventing the user from committing the mistake.
5. App performance
Health apps usually serve a small number of users in a definite geographical boundary, unlike social media apps that have users across the globe. Still, a healthcare app should go through a rigorous load and scalability testing process. There can be scenarios where the user traffic might spike and the app should be able to handle the load smoothly. insights from performance systems would assist product managers to define areas such as archival strategy, local data size, scalability model, and so on. If the mHealth app does any CPU intensive actions or uses storage more often then there must an extensive evaluation of its performance.
In this blog we shared insights into the evolution of mHealth apps, challenges in healthcare app testing and ways to ensure quality in healthcare mobile apps. But to implement the new healthcare app testing trends, enterprises are opting for cloud solutions. A cloud testing platform like pCloudy provides the option to test healthcare apps on hundreds of real devices from anywhere, anytime. Refer to our case study where you will see how pCloudy helped a US-based multinational to achieve accelerated app adoption. In the recent turn of events, the flexibility of testing apps from anywhere in the world is much required. And you can make sure that you deliver a great app using next-gen features like an autonomous testing bot and Wildnet.
February 17th, 2020 by Suyash Dubey
Automation testing forms the core of any CI/CD pipeline and enterprises are keen to practice test automation to enhance the efficiency of the development process. Test automation saves resources and reduces the cost of any project in the long run. But there are some important points to keep in mind while testing to avoid automation failure. Let’s have a look at these salient points.
Leverage Parallel Execution
Once you are done automating the test cases, the challenge will be the complex test suites taking a long time to get executed. It affects the quality of the test queue in the test automation framework or IDE. This leads to queue timeout issues and test cases being halted abruptly due to the sequential execution of the test cases.
Parallel execution in different test environments is preferred over sequential execution as it saves a lot of time. Although in automated testing, unintended code interactions could happen. This is why you need a thorough reporting mechanism to debug the causes of test failure.
Pick The Right Tools
Choosing the right tool for test automation is critical to the success of automation testing. There has to be a set of clear requirements/parameters on the basis of which the tools have to be selected. Some important points that are to be kept in mind while selecting the tool are:
The team should be clear about the test tool requirements.
The testing requirements of the application under test (AUT) should be analyzed thoroughly.
The team’s skill set should be accessed accurately.
The cost-benefit analysis should be performed to calculate the return on investment.
Tool vendor and capability should be evaluated as technical support might be required while using the tools.
One tool might not be enough to meet any organization’s automation needs. Also, test automation engineers have to be a part of the tool evaluation process so that they can help in selecting the right set of tools. For example, you can use Appium for test automation but you need pCloudy to perform automation testing on multiple real devices in parallel.
Analyze The Test Reports
Test reports provide insights into the underlying issues that are to be resolved. A detailed test report gives an idea of the efficiency of the test automation and the automation team can analyze the report to look for the scope of improvement. While selecting an automation tool you need to make sure that the tool generates test reports to be analyzed by the test automation engineer. There will always be some tests that will fail to execute and it is necessary to analyze the test report to get an understanding of the scenario.
Test Automation Metrics
Test automation metrics will help you gauge the quality of the tests performed based on some essential parameters like test duration, unit test coverage, path coverage, number of defects found, percentage of broken builds, etc. The test metrics will give you a clear picture of how well the code is tested. In an agile process, there are frequent iterations to the builds and it becomes important to track the quality of each build. With test automation metrics you can figure out what is the percentage of your tests that passed and what was the reason behind the failed tests.
Optimum Device Coverage
Test automation is effective when the tests are executed on multiple devices in parallel. Device coverage is the most prevalent challenge as we have witnessed growing device fragmentation across the world. To ensure the smooth functioning of mobile apps on all the devices, you need to perform automation testing on hundreds of device-OS combinations.
Test automation should be designed to make the app compatible with most of the popular devices. The frequent release of new versions of OS from both Android and iOS is a major factor that drives device fragmentation. The only way to overcome this challenge is by testing the app on a cloud-based testing platform. In pCloudy, you will get the benefit of testing the app on more than 5000 device browser combinations in parallel ensuring optimum device coverage.
Summing It Up
Test automation has many benefits like better test coverage, faster feedback, and accelerated results which reduces the time to market of any application. Using the practices mentioned above you can ensure coherent test automation and increased productivity. Apart from these points, there are many other things you can do like writing original code and not copying it as the code taken from other sources might not work in your test environment. But you will always find new roadblocks which you will have to deal with spontaneously.
Intelligent Digital Mesh is the entwining of people, devices, content, and services enabled by digital models, business platforms and a rich, intelligent set of services to support digital business. We have witnessed the implementation of AI in every technology to leverage the benefits of autonomous systems. Enterprises are now focusing on using AI with technologies like blockchain and immersive technology which will create new categories of apps. In this type of environment, attaining optimum device coverage will be essential to ensure quality services. Now let’s understand the fundamentals of the intelligent digital mesh.
In the near future, most of the mobile applications and services will use artificial intelligence or machine learning at some level. AI will be the inconspicuous force of most of the popular app categories while creating some new ones. Intelligent apps also create a new intelligent layer between people and systems as seen in enterprise advisors and virtual user assistants. Augmented analytics is also gaining ground and helping enterprises in enhancing business intelligence and data analytics using ML and NLP. Another use of AI and ML is in intelligent things like smart vacuums, drones, autonomous farming vehicles. Intelligent devices are getting smarter to serve better and reduce human dependency to a minimum.Source: Gartner.com
When we talk about digital, we mean digital twins, cloud to the edge, conversational platforms, and Immersive Experience. A digital twin is a digital representation of real-world objects. It offers information on the state of the counterparts, improves operations and adds value to the operations by responding to the changes. In the near future, all the aspects of human life and the real world will be interconnected with their digital representation capable of advance simulation, analysis, and operation. This combined with immersive technologies like AR, VR, and MR will take extended reality to a new level.
Mesh is the connection between devices, people, businesses, services, and content to build a digital ecosystem that yields high-quality results. Here mesh refers to technologies like Blockchain, Event-driven, and continuous adaptive risk and trust (CARTA). Enterprises are keen to find new ways to sense the new business events to get the most out of it. A business event can be a change in the status of the deal like finalizing a deal. Using new technologies like AI, it will be easier to detect a business event and analyze it in greater detail.
Security is one of the most important and ever-evolving processes in digital businesses. There is a need to think beyond infrastructure and parameter protection. Continuous adaptive risk and trust assessment is a people-centric security approach that allows for real-time risk and trust-based decision making. New methodologies like DevSecOps and adaptive honeypots should be implemented to strengthen the security of digital businesses.
Automation Testing For Intelligent Apps
Intelligent apps are at the core of the intelligent digital mesh. Nowadays most of the apps use artificial intelligence, machine learning or predictive analysis to make suggestions to the customers. The apps use real-time and historical data from user interactions and other sources to predict the needs of their users.
To ensure the quality of apps it is important to test the apps using futuristic tools. Manual testing is just enough and even automation needs to be scalable to get better results. Testing the app on a cloud-based app testing platform is the best choice as you can use as many devices as you want to test your app. Also, parallel testing increases app testing efficiency by multifold.
pCloudy’s AI-powered autonomous testing bot steals the show when it comes to testing intelligent apps. The bot tests the app on real devices with just a single click and generates a detailed report based on the test result.
Mobile devices, by and large, are the focal point of most of the innovations that are happening around the intelligent digital mesh. Whether it is Ai driven development, autonomous things or immersive experience, mobile apps still used as a foundation to provide the technology to the masses. But the growing complexities of intelligent apps makes it crucial to implement new methods of app testing. A cloud-based app testing platform like pCloudy is suitable to ensure quality at speed in mobile app testing. The freedom of accessing hundreds of real devices from anywhere at any time and perform manual or automation testing using futuristic features is the correct way to test intelligent apps.