{"id":10105,"date":"2018-08-15T04:58:51","date_gmt":"2018-08-15T04:58:51","guid":{"rendered":"http:\/\/abstracta.us\/blog\/?p=10105"},"modified":"2025-05-05T21:23:41","modified_gmt":"2025-05-05T21:23:41","slug":"webinar-summary-use-automation-increase-test-coverage","status":"publish","type":"post","link":"https:\/\/abstracta.us\/blog\/software-testing\/webinar-summary-use-automation-increase-test-coverage\/","title":{"rendered":"Webinar Summary: How to Use Automation to Increase Test Coverage"},"content":{"rendered":"<h1><span style=\"font-weight: 400;\">Testing is like sweeping, it&#8217;s better with a Roomba\u00a0<\/span><\/h1>\n<p><span style=\"font-weight: 400;\">Recently, I had the pleasure of presenting the concept of test coverage and its relationship with automation for a SmartBear <\/span><a href=\"https:\/\/www.youtube.com\/watch?v=eVkuUVyF75o\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">webinar<\/span><\/a><span style=\"font-weight: 400;\"> featuring <\/span><a href=\"https:\/\/crossbrowsertesting.com\/?utm_source=abstracta&amp;utm_medium=website&amp;utm_campaign=cbtFALSE&amp;utm_content=blog\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">CrossBrowserTesting<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you are someone who would rather read a blog post than watch a video, then this post is for you! As I did in the webinar, I\u2019ll explain the concept and limits of test coverage, present a very simple and useful strategy to increase it over time, and how you can employ automation with tools like CrossBrowserTesting.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Introduction_to_Test_Coverage\"><\/span><strong><span style=\"color: #00b674;\">Introduction to Test Coverage<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"What_is_Test_Coverage\"><\/span><strong><span style=\"color: #3056a2;\">What is Test Coverage?<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Many people say that test coverage is useful to measure the quality of testing, meaning, to say if the testing was good or bad. In my humble opinion, this way of seeing it creates some confusion. We should be careful with how we measure test coverage and how we interpret it.<\/span><\/p>\n<p><b>I prefer to think of the concept of test coverage as a measure of how much we examine a system with our testing based on certain criteria. <\/b><\/p>\n<p><span style=\"font-weight: 400;\">And then, in a separate track, evaluate if it\u2019s good or not, and if it\u2019s enough or not, but not many people take the time to consider this.<\/span><\/p>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.55.14-PM.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-10114\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.55.14-PM.png\" alt=\"disk defragmenter\" width=\"352\" height=\"281\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Remember this tool called Disk Defragmenter? A system utility, this tool arranges something in the disk. It moves disk sectors in order to make the disk more efficient and faster. At least, this is what I can recall!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For me, this tool is showing coverage visually in a very clear way. You see a model of the disk, where it\u2019s clear what the total is, and how it was decomposed into smaller units. You can also see the percentage of progress, which is according to how many of those units have already been examined, and which ones still need to be examined. But, testers might never ask themselves, \u201cHow\u2019s the quality of the examination, how well are we examining it?\u201d<\/span><\/p>\n<p><span style=\"font-weight: 400;\">So, back to testing. We need to model our system, and we need a criterion to decompose the system into different types of entities or elements, which will be the units that we are going to try to cover with our testing, and this is what we will be using as a measure of coverage: What is the percentage of units of our model that we test with respect to the total?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here it is clear that this measure can be useful to determine what is the progress, to see what other things still need to be examined (to increase the test coverage based on the chosen criterion), but not directly to say how great our testing is. <\/span><\/p>\n<p><b>Test coverage helps us know quantitatively the extent of our tests. It does not talk about testing quality nor system quality either!<\/b><\/p>\n<p>It\u2019s a great measuring stick, but even with 100% test coverage, the application isn\u2019t guaranteed to be 100% bug free. Even if you only manage to achieve 20% coverage, it may not necessarily be a bad thing. The ideal amount of test coverage to aim for should be based on your priorities and risk analysis.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Test_Coverage_is_Like_Sweeping\"><\/span><strong><span style=\"color: #3056a2;\">Test Coverage is Like Sweeping<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">This is another analogy I typically use to show what coverage means and its purpose. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you told me that you swept your whole house, I would need to know what is your criteria for considering the house covered! If you only included sweeping the bedrooms for your sweep coverage criteria, would the whole house be clean if you swept 100% of the bedrooms? From my point of view, you should also sweep the dining room, living room, and more!<\/span><\/p>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-2.48.34-PM-min.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-10111\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-2.48.34-PM-min.png\" alt=\"test coverage analogy\" width=\"307\" height=\"277\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Therefore, we must always be careful with test coverage and the associated criteria. We have to decide which criteria is relevant for our context. Talking about criteria helps us to understand what we are covering, and what we are not, which is a very useful thing. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Also, how clean is the house if you have 100% coverage? Even if you did cover them, how clean are the bedrooms actually? It\u2019s like \u201crequirement coverage\u201d meaning that we covered all the <\/span><i><span style=\"font-weight: 400;\">requirements<\/span><\/i><span style=\"font-weight: 400;\"> with our tests. But it doesn\u2019t tell us about how well we tested them. Right?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">I could have different criteria over time: I sweep the kitchen and my bedroom everyday, and once a week I sweep all the bedrooms, the bathroom and the dining room, and maybe spend extra time sweeping those hard to reach spots, because certainly there\u2019s a higher probability (aka risk!) that dust has accumulated in those places. So, I have different strategies for my bedroom, depending on the day, the context and my needs. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is something I can plan in order to have the best results with the optimal use of my energy and time. Can you see where I\u2019m going with this analogy? \ud83d\ude00 <\/span><\/p>\n<p><strong>Replace the broom for tests and the house for code!<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">Not only is coverage useful to show progress, but it also gives ideas as to what other \u201cparts of the house need to be swept\u201d (thus expanding coverage). It also helps to know when to stop sweeping (according to the criteria, because I reached the goal defined in the plan).<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Coverage_Criteria\"><\/span><strong><span style=\"color: #3056a2;\">Coverage Criteria<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">As I mentioning since the beginning, the criteria is very important. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are different criteria, from different perspectives, and also we can say that some of them are more exhaustive than others. So we need to understand them in order to understand how deeply something was tested. We can say that certain criteria subsume others when any test set covering the first criterion also covers the second, meaning that it\u2019s deeper.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For instance, taking into account the code perspective, covering all branches is deeper than covering all lines of code, because if we cover all branches we also cover all lines. So, the criteria named \u201cbranch coverage\u201d subsumes the one known as \u201cline coverage\u201d.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Types_of_Test_Coverage\"><\/span><strong><span style=\"color: #00b674;\">Types of Test Coverage<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Code_Coverage\"><\/span><strong><span style=\"color: #3056a2;\">Code Coverage<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.48.43-PM-min.png\"><img decoding=\"async\" class=\"wp-image-10110 size-full aligncenter\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.48.43-PM-min.png\" alt=\"example of code coverage\" width=\"478\" height=\"275\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Code coverage is the most popular metric for measuring test coverage for unit testing and there are different levels with different depths. For instance, the most popular one is \u201cline coverage\u201d which measures the number of lines covered by the test cases, reporting the total number of lines in the code and number of lines executed by tests. Essentially, it\u2019s the degree to which the source code of a program is executed when a test suite runs. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">This measurement can also be broken down into different levels; not only lines of code covered, but there are also branches, decisions inside logic constructors, some others. The criteria should be selected according to the criticality of the unit tested, or according to how frequently it changes. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Remember that coverage give us hints of what else could be tested. With code coverage tools integrated with IDEs, it\u2019s easy to see which lines are not covered (the ones colored in red in the image above).<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Code coverage is very useful, following a white box approach, to add new unit tests to cover those lines or branches.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Data-Oriented_Coverage\"><\/span><strong><span style=\"color: #3056a2;\">Data-Oriented Coverage<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">With data-oriented coverage, we focus on the input and output parameters, each of them with their own domain (with a different spectrum of possible values that they can have). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Applicable to both white and black box approaches, some typical examples are equivalence partition and boundary values and combinatorial testing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If we think about the values of different parameters, and we want to test all the possibilities, we will end up with a cartesian product, testing every possible combination.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">On the other hand, we can test less and go with \u201ceach choice\u201d coverage, which means that we choose each possible value at least once. There is also all-pairs or pair-wise combination, which is empirically said (according to some studies) to have the best cost-benefit relationship. \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is a great example to show that we need to plan the test coverage according to the risk levels and how much time we have for testing.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Others\"><\/span><strong><span style=\"color: #3056a2;\">Others<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">In addition to those previously mentioned, there are several more ways to cover the product that we are testing such as requirements coverage, different coverage when we model the logic or the behavior of a system with decision tables or decision trees, or with a state-machine. In the latter, we can consider for instance, having tests to cover all the states, or all the transitions, or all combinations of input and output transitions for each state, or maybe more. There is always an error theory behind every test coverage criterion.<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Dont_Forget_Platform_Related\"><\/span><strong><span style=\"color: #3056a2;\">Don&#8217;t Forget Platform Related<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.42.01-PM-min.png\"><img decoding=\"async\" class=\"aligncenter wp-image-10109\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.42.01-PM-min.png\" alt=\"different operating systems and device brands\" width=\"500\" height=\"279\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Additionally, there are other kinds of test coverage that are not related to lines of code or test data. One example is generated by mobile fragmentation, which concerns questions like: are we covering the main mobile devices, operating systems, and screen sizes? <\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is not only for mobile, but also when it comes to web applications, we should plan the coverage across different browsers, not only thinking about how it will look, but also taking into consideration where the client side logic will run (mainly if developing with a Javascript framework).<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cross_Browser_Testing\"><\/span><strong><span style=\"color: #00b674;\">Cross Browser Testing<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Let\u2019s consider this first example of cross browser testing:<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.41.47-PM-min.png\"><img decoding=\"async\" class=\"aligncenter wp-image-10108\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.41.47-PM-min.png\" alt=\"cross browser testing method\" width=\"600\" height=\"221\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">We could apply combinatorial testing here, adding two new variables to our inputs and outputs, which is the OS and the browser. Imagine for example that we already have 4 test cases (covering the data or logic that we need). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Maybe we want to test the cartesian product, which would imply testing all the test cases in all the combinations of browsers and operating systems\u2026in this example, that would mean a total of 36 combinations. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In some contexts we could apply only an each-choice combination, reducing the time invested in testing different platforms. This is the most lightweight option, where we would run only 4 combinations, each test case in one browser, in one OS.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Or we could have something in the middle, using a tool to design the pairwise combination, we would run 12 combinations in total, covering all possible pairs.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">As you can see, testing has quite a lot of things to cover\u2026 and I have only mentioned SOME of the criteria to take into account! <\/span><\/p>\n<p>How can we achieve the desired level of test coverage then? Remember this:<\/p>\n<p><b><\/b>[tweet_box design=&#8221;default&#8221; float=&#8221;none&#8221;]<b>It&#8217;s impossible to test everything\u2014it&#8217;<\/b><b>s impossible to cover everything.<\/b>[\/tweet_box]<b><\/b><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">So, we need to plan and decide what we are testing, which means, we need to decide what to cover. <\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Laying_Out_a_Plan_to_Optimize_Test_Coverage_Over_Time\"><\/span><strong><span style=\"color: #00b674;\">Laying Out a Plan to Optimize Test Coverage Over Time<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Here\u2019s a strategy that Abstracta has used that you could take into consideration in order to improve your approach for test coverage, since, as it happens in most teams, there is never enough time to reach the test coverage you need. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">If this is the case, a good practice is to improve test coverage over multiple test cycles, in the long term.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Imagine we have different features to test on different browsers and have organized different test suites with the corresponding test cases, each suite with its own priority. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The proposal is to run the most critical test cases against all browsers everytime (this is the first row of the table, in green, the one named \u201cpriority\u201d), but, we can decide to run the rest of the test suites on a single browser. A different browser for each suite, so, we are exercising the system in different browsers. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the following test cycles, we can exchange the \u201ctest suite\/browser\u201d combinations. That way, in each test cycle we do not have perfect coverage, but after multiple test cycles we improve it. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Where it says \u201cdate 1\u201d, it could also say \u201csprint 1\u201d, \u201citeration 1\u201d, \u201cday 1\u201d, or even \u201cversion 1.\u201d <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The goal here is to distinguish which test cases we will run in each iteration in each environment.<\/span><\/p>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2016\/05\/Graphs-01-1.png\"><img decoding=\"async\" class=\"aligncenter wp-image-6384\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2016\/05\/Graphs-01-1-1024x797.png\" alt=\"optimize test coverage\" width=\"500\" height=\"389\" \/><\/a><\/p>\n<p><b>When time is scarce, we have to use it wisely and do our best to reduce risk.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">Here is another example applied to mobile testing in order to reduce risk related to device fragmentation. It\u2019s the same idea, but different test cycles are running each test case on a different device.<\/span><\/p>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2016\/05\/Graphs-02-1.png\"><img decoding=\"async\" class=\"aligncenter wp-image-6386\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2016\/05\/Graphs-02-1-1024x379.png\" alt=\"optimizing long term mobile test coverage\" width=\"500\" height=\"185\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">After the third execution, you\u2019d have covered all combinations: each test case on each device.<\/span><\/p>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.40.27-PM-min.png\"><img decoding=\"async\" class=\"aligncenter wp-image-10107 size-full\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.40.27-PM-min.png\" alt=\"mobile test coverage scenario\" width=\"240\" height=\"217\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">It\u2019s a very simple strategy, that doesn\u2019t provide perfect coverage, but it\u2019s better than not doing any cross-browser or cross-device testing at all. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">As I mentioned when discussing pairwise, I believe that this strategy has a better cost-benefit relationship.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Where_Automation_Comes_Into_Play\"><\/span><strong><span style=\"color: #00b674;\">Where Automation Comes Into Play<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Following the sweeping analogy, if we chose to use a Roomba (which we can consider to be a tool for \u201csweep automation\u201d), we can use it to cover those high risk spots for us, or those places that we want to sweep everyday, allowing us to focus on cleaning new areas.<\/span><\/p>\n<p><a href=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/roomba-puppy-A-min.jpg\"><img decoding=\"async\" class=\"aligncenter wp-image-10106\" src=\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/roomba-puppy-A-min-1024x535.jpg\" alt=\"roomba\" width=\"500\" height=\"261\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">To cover different devices or browsers or operating systems, I find it very useful to use tools like <\/span><a href=\"https:\/\/crossbrowsertesting.com\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">CrossBrowserTesting<\/span><\/a><span style=\"font-weight: 400;\">, because we can have quick access to different combinations of platforms and browsers. So, once we have our plan for covering different scenarios in different platforms, we can access them easily through our browser. <\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Watch_a_Demo\"><\/span><strong><span style=\"color: #3056a2;\">Watch a Demo<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Here you can watch\u00a0the portion of the webinar in which I give a six-minute demo for using CrossBrowserTesting live<\/span><span style=\"font-weight: 400;\">. You\u2019ll see how the tool helped me uncover a problem with Abstracta\u2019s own website when someone accesses it using Windows 7 and Internet Explorer 8\u2026 whoops!<\/span><br \/>\n<iframe src=\"https:\/\/www.youtube.com\/embed\/eVkuUVyF75o?start=1398\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Careful_with_Test_Coverage_Automation_Can_Help\"><\/span><strong><span style=\"color: #00b674;\">Careful with Test Coverage, Automation Can Help!<\/span><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To bring it all home, the main takeaways from the webinar are that:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Test coverage is very useful, but it doesn\u2019t signify your software is bug-free when it\u2019s fully met<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">There are different criteria and levels to take into consideration when defining the test plan <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">You can use a simple strategy to increase coverage over time <\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Automation with tools like CrossBrowserTesting can help improve test coverage by automating critical flows and providing access to the platforms we want to cover<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">I really believe that by understanding testing coverage and considering these techniques and automation as part of a test strategy, testers can do a better job of mitigating risks. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Have you used strategies or a tool like this to boost test coverage?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Let me know!<\/span><\/p>\n<hr \/>\n<h2><span class=\"ez-toc-section\" id=\"Recommended_for_You\"><\/span><strong>Recommended for You<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a href=\"https:\/\/abstracta.us\/blog\/software-testing\/6-software-testing-outsourcing-myths-debunked\/\"><span style=\"font-weight: 400;\">[Infographic] 6 Software Testing Outsourcing Myths Debunked<\/span><\/a><br \/>\n<a href=\"https:\/\/abstracta.us\/10-mistakes-companies-make-when-outsourcing-software-testing\"><span style=\"font-weight: 400;\">White Paper: 10 Mistakes Companies Make When Outsourcing Software Testing<\/span><\/a><\/p>\n<p><!-- Go to www.addthis.com\/dashboard to customize your tools --><script src=\"\/\/s7.addthis.com\/js\/300\/addthis_widget.js#pubid=ra-58d80a50fc4f926d\" type=\"text\/javascript\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Testing is like sweeping, it&#8217;s better with a Roomba\u00a0 Recently, I had the pleasure of presenting the concept of test coverage and its relationship with automation for a SmartBear webinar featuring CrossBrowserTesting. If you are someone who would rather read a blog post than watch&#8230;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,60],"tags":[65,111],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v14.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Increase Test Coverage with Automation | Abstracta<\/title>\n<meta name=\"description\" content=\"Testing and sweeping have something in common, it&#039;s better with a roomba! Learn how cross browser testing and automation can increase test coverage.\" \/>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<meta name=\"googlebot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta name=\"bingbot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Increase Test Coverage with Automation | Abstracta\" \/>\n<meta property=\"og:description\" content=\"Testing and sweeping have something in common, it&#039;s better with a roomba! Learn how cross browser testing and automation can increase test coverage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog about AI-powered quality engineering for teams building complex software | Abstracta\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/AbstractaQA\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-15T04:58:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-05T21:23:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/increase-test-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"560\" \/>\n\t<meta property=\"og:image:height\" content=\"315\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fltoledo\" \/>\n<meta name=\"twitter:site\" content=\"@AbstractaUS\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/abstracta.us\/blog\/#website\",\"url\":\"https:\/\/abstracta.us\/blog\/\",\"name\":\"Blog about AI-powered quality engineering for teams building complex software | Abstracta\",\"description\":\"AI-powered quality engineering\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/abstracta.us\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"http:\/\/abstracta.us\/wp-content\/uploads\/2018\/08\/Screen-Shot-2018-08-10-at-4.55.14-PM.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/#webpage\",\"url\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/\",\"name\":\"Increase Test Coverage with Automation | Abstracta\",\"isPartOf\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/#primaryimage\"},\"datePublished\":\"2018-08-15T04:58:51+00:00\",\"dateModified\":\"2025-05-05T21:23:41+00:00\",\"author\":{\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/7421e539de0357d3adb0c69ed469a1c2\"},\"description\":\"Testing and sweeping have something in common, it's better with a roomba! Learn how cross browser testing and automation can increase test coverage.\",\"breadcrumb\":{\"@id\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/\",\"url\":\"https:\/\/abstracta.us\/blog\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/test-automation\/\",\"url\":\"https:\/\/abstracta.us\/blog\/test-automation\/\",\"name\":\"Test Automation\"}},{\"@type\":\"ListItem\",\"position\":3,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/\",\"url\":\"https:\/\/abstracta.us\/blog\/test-automation\/webinar-summary-use-automation-increase-test-coverage\/\",\"name\":\"Webinar Summary: How to Use Automation to Increase Test Coverage\"}}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/abstracta.us\/blog\/#\/schema\/person\/7421e539de0357d3adb0c69ed469a1c2\",\"name\":\"Federico Toledo, Chief Quality Officer at Abstracta\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/abstracta.us\/blog\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6de7ec6536c4028b5c02ad4ec1b9af0d?s=96&d=blank&r=g\",\"caption\":\"Federico Toledo, Chief Quality Officer at Abstracta\"},\"description\":\"Co-founder and COO of Abstracta\",\"sameAs\":[\"https:\/\/twitter.com\/fltoledo\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/10105"}],"collection":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/comments?post=10105"}],"version-history":[{"count":18,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/10105\/revisions"}],"predecessor-version":[{"id":17551,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/posts\/10105\/revisions\/17551"}],"wp:attachment":[{"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/media?parent=10105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/categories?post=10105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abstracta.us\/blog\/wp-json\/wp\/v2\/tags?post=10105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}