{"id":26393,"date":"2016-09-05T13:06:42","date_gmt":"2016-09-05T11:06:42","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=26393"},"modified":"2016-09-10T10:13:50","modified_gmt":"2016-09-10T08:13:50","slug":"3-serious-but-common-misconceptions-about-software-testing","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2016\/09\/05\/3-serious-but-common-misconceptions-about-software-testing\/","title":{"rendered":"3 serious (but common) misconceptions about software testing"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>QA Symphony looks at\u00a0<a href=\"https:\/\/www.qasymphony.com\/blog\/3-common-misconceptions-software-testing\/\">3 serious (but common) misconceptions about software testing<\/a>:<\/p>\n<ol>\n<li>Testing is a Cost Center<\/li>\n<li>Legacy Tools are Good Enough<\/li>\n<li>Testing Is Easy<\/li>\n<\/ol>\n<p>These are indeed very common.<\/p>\n<p>Let me just <del>briefly<\/del> focus on the last one. \u00a0Consider how quickly the complexity escalates. \u00a0You are a building a simple website &#8211; nothing fancy, just some modern design and a few pages of content to represent your company. \u00a0Let&#8217;s say you have just four pages: front page, about us, services, and contact us. \u00a0You can quickly check how these four pages look in your browser. \u00a0Easy right?<\/p>\n<p>But wait. \u00a0People use different browsers to access the web. \u00a0So just checking it in your favorite one is not that enough. \u00a0Which browsers should you test for? \u00a0Let&#8217;s say we take the major ones &#8211; Google Chrome, Firefox, Microsoft Internet Explorer, and Safari. \u00a0These should about cover us. \u00a0Until now, your entire test was 4 page loads. \u00a0Now you are multiplying it by 4 browsers. \u00a0That&#8217;s 16 page loads. \u00a0So far so good?<\/p>\n<p>Not really. \u00a0Each browser has multiple versions, which render pages differently. \u00a0Not everyone is using the latest version. \u00a0And new versions are released continuously. \u00a0Let&#8217;s say you decided to support the latest two major versions of each browser. \u00a0So now, that&#8217;s each browser times two. \u00a0So 4 pages by 8 browser comes up to 32 page loads.<\/p>\n<p>But we were just talking about the desktop browsers. \u00a0You do want your site looking good on tablets and mobiles, right? \u00a0Of course you do. \u00a0What does that mean in terms of testing? \u00a0Let&#8217;s say we support only iOS and Android &#8211; two major platforms, both for mobile and tablets. \u00a0And we only support the default browser on each of those. \u00a0That adds 4 more browsers.<\/p>\n<p>By the way, when people browse on mobiles and tablets, sometimes they view your page holding a device vertically, and sometimes horizontally. \u00a0You should probably test for those things as well. \u00a0You know, just to make sure, nothing breaks through to the right, or requires too much scrolling down.<\/p>\n<p>Remember that we are still talking about the simplest of all the websites here. \u00a0Nothing fancy.<\/p>\n<p>Let&#8217;s throw in an additional language. \u00a0Here in Cyprus, for example, most websites are in English and Greek. \u00a0Some add Russian. \u00a0Some have a few languages. \u00a0I&#8217;ve worked in the companies supporting over a dozen languages on the website. \u00a0Each language means that you need to do more tests. \u00a0In each of those browsers and on each of the supported devices.<\/p>\n<p>You get my drift.<\/p>\n<p>Something else. \u00a0So far our tests were simple page loads, just to have a quick look whether or not the page looks fine. \u00a0What if we have multiple tests per page. \u00a0You want the page to look fine. \u00a0But you also don&#8217;t want to have any syntax or grammar errors in the content. \u00a0Especially in those foreign languages, that you don&#8217;t speak yourself. \u00a0And you want the page to be optimized for search engines. \u00a0And you want it to be fast (performance testing).<\/p>\n<p>By now, you&#8217;ll probably give and agree that testing is not easy. \u00a0Not even for the simplest of sites. \u00a0Consider just how much more complicated it can get if your site is slightly more complex than that.<\/p>\n<p>Remember that contact us page. \u00a0That thing was just showing the company mailing address and the phone number. \u00a0Now you want an integrated Google Map and a contact us form. \u00a0Nothing wrong with that, right?<\/p>\n<p>Well. \u00a0Google services are banned in many countries. \u00a0Will your contact us page still work if the user cannot access the Google Maps service? \u00a0You&#8217;ll need to test for that. \u00a0What about your contact form? \u00a0Does it actually work? You can&#8217;t be sure from it just appearing on the page. \u00a0You need to test it now too.<\/p>\n<p>We are still in the domain of simple websites. \u00a0And this is getting too long. \u00a0Let me just through a few more things at you:<\/p>\n<ul>\n<li>more content (imagine a website with dozens or hundreds of pages &#8230; this very blog has almost 10,000 blog posts, which are organized into categories, tags, date archives, etc).<\/li>\n<li>more functionality (fancy things, dynamic page loads, form validations, etc)<\/li>\n<li>even more functionality (online shop, user-driven content, etc)<\/li>\n<li>more integrations with other services (Google, social networks, company CRM\/ERP\/etc)<\/li>\n<li>spreading the site across multiple servers for performance (multiple web servers, caching servers, application servers, database servers, etc)<\/li>\n<\/ul>\n<p>With each and every bit that you throw into your website, the testing gets exponentially more complex. \u00a0You have to consider functionality testing, user interface testing, performance testing, security testing, and so on and so forth.<\/p>\n<p>When you get to all of that, you probably have multiple people working in several teams. \u00a0They all need to communicate and coordinate. \u00a0Which is another layer of complexity.<\/p>\n<p>I&#8217;ll stop here.<\/p>\n<p>Next time you think testing is easy, think again.<\/p>\n<p><strong>Update (September 10, 2016)<\/strong>: here are <a href=\"https:\/\/www.lyontesting.fr\/en\/misconceptions-about-testing\/\">a few more misconceptions<\/a>, which are as common as the ones above.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>QA Symphony looks at\u00a03 serious (but common) misconceptions about software testing: Testing is a Cost Center Legacy Tools are Good Enough Testing Is Easy These are indeed very common. Let me just briefly focus on the last one. \u00a0Consider how quickly the complexity escalates. \u00a0You are a building a simple website &#8211; nothing fancy, just &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/09\/05\/3-serious-but-common-misconceptions-about-software-testing\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">3 serious (but common) misconceptions about software testing<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"3 serious (but common) misconceptions about software testing #WebDev #QA #testing","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[3074,1108],"keyring_services":[],"class_list":["post-26393","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-quality-assurance","tag-testing"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":20144,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/01\/nightwatch-js-browser-automated-testing-done-easy\/","url_meta":{"origin":26393,"position":0},"title":"Nightwatch.js &#8211; browser automated testing done easy","author":"Leonid Mamchenkov","date":"February 1, 2014","format":"link","excerpt":"Nightwatch.js - browser automated testing done easy","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"demo","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/demo-500x374.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27239,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/01\/12\/headless-browsers\/","url_meta":{"origin":26393,"position":1},"title":"Headless Browsers","author":"Leonid Mamchenkov","date":"January 12, 2017","format":false,"excerpt":"Headless Browsers is a\u00a0list of (almost) all headless web browsers in existence. \u00a0These are browsers without graphical user interface, controlled programmatically, and useful for testing, automation, and other similar tasks. I've used one or two. \u00a0I'v heard about three of four. \u00a0I had no idea there was such a variety\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":19976,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/01\/28\/browserling-interactive-cross-browser-testing\/","url_meta":{"origin":26393,"position":2},"title":"browserling &#8211; interactive cross-browser testing","author":"Leonid Mamchenkov","date":"January 28, 2014","format":"link","excerpt":"browserling - interactive cross-browser testing","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"browserling","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/01\/browserling-500x371.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":18905,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/12\/03\/optimizely-ab-testing-software-made-easy\/","url_meta":{"origin":26393,"position":3},"title":"Optimizely &#8211; A\/B testing software made easy","author":"Leonid Mamchenkov","date":"December 3, 2013","format":"link","excerpt":"Optimizely - A\/B testing software made easy Interestingly, CEO's direct phone number is one of the options on the pricing page.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":18921,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/12\/09\/browser-sync-keep-multiple-browsers-devices-in-sync-when-building-websites\/","url_meta":{"origin":26393,"position":4},"title":"browser-sync &#8211; Keep multiple browsers &#038; devices in sync when building websites","author":"Leonid Mamchenkov","date":"December 9, 2013","format":"link","excerpt":"browser-sync - Keep multiple browsers & devices in sync when building websites","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":18239,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/05\/27\/ua-testing-with-selenium-and-phpunit\/","url_meta":{"origin":26393,"position":5},"title":"UA Testing with Selenium and PHPUnit","author":"Leonid Mamchenkov","date":"May 27, 2013","format":"link","excerpt":"UA Testing with Selenium and PHPUnit","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/26393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=26393"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/26393\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=26393"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=26393"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=26393"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=26393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}