{"id":870,"date":"2014-05-09T18:45:30","date_gmt":"2014-05-10T01:45:30","guid":{"rendered":"http:\/\/angryweasel.com\/blog\/?p=870"},"modified":"2014-05-09T18:45:35","modified_gmt":"2014-05-10T01:45:35","slug":"stop-if-you-want-to","status":"publish","type":"post","link":"https:\/\/angryweasel.com\/blog\/stop-if-you-want-to\/","title":{"rendered":"Stop, If You Want To&hellip;"},"content":{"rendered":"<p>Well \u2013 <a href=\"http:\/\/angryweasel.com\/blog\/stop-writing-automation\/\">that was a fun post<\/a>. The dust hasn\u2019t quite settled, but a follow up is definitely in order.&nbsp; <\/p>\n<p>First, some context. I was committed to giving a lightning talk as part of STAR East\u2019s \u201cLightning Strikes the Keynotes\u201d hour. I purposely didn\u2019t pick a topic before I left, and figured I would come up with something while I was there. On Wednesday morning (the day of the lightning talks), I was out for a run thinking about the conference, when I had the idea to talk about testers writing <em>fewer<\/em> automated tests. I realized that if programmers should be writing more tests (ok, \u201cchecks\u201d for those of you who insist), and that just about every mention of automation I heard at the conference talked about the challenges in automating end-to-end scenarios and equal challenges in maintaining that automation \u2013 that it was a topic worth exploring. I <em>could<\/em> have called the post, Testers Should Stop Writing Some of Their Automation Because Programmers Should Do Some of it, and Some of Your Automation Isn\u2019t Very Good Anyway and it is Getting in the Way of Testing You Should Be Doing, but I chose a more controversial (and shorter) title instead. I purposely left out the types of automation (and other coding activities) that testers still should do, because I was afraid that if I did, that it would distract from the main two points (Programmers need to write a lot more tests, and Testers spend too much time writing and maintaining bad automation). <\/p>\n<p>Also \u2013 I only had five minutes (to talk about it), so I stuck to the main points:<\/p>\n<ol>\n<li>Developers need to own more testing. <\/li>\n<li>Testers need to stop wasting time writing ineffective automation.<\/li>\n<\/ol>\n<p>But the fun <em>really <\/em>began with the comments. I\u2019ve never had more fun reading blog comments, twitter, and my mailbox (for some reason a bunch of people prefer to email me directly with comments rather than comment publically). I thought I\u2019d comment on a few areas where I had a lot of questions.<\/p>\n<h5><strong>Does this work for both services and \u201cthick\u201d clients?<\/strong><\/h5>\n<p>Although I didn\u2019t call it out in my post, this sort of approach works <em><u>really well<\/u><\/em> with services. But \u2013 it can work with thick clients too, you just need to be a little more careful with your deployment, as rollback and monitoring won\u2019t be in real time like your service. I think mobile apps are a great example of where you may run experiments with a limited number of users, but windows (or mac) apps could follow the model as well. For always (or often) connected devices, I see no reason to not push updates \u2013 of course, these updates should probably go through a bit more testing than services before being pushed, as if something is broken, getting back to a safe state will take a bit of work.<\/p>\n<p>The important thing to note for those still in unbelief is that deploying test items to production <em>is done all of the time. <\/em><a href=\"http:\/\/www.ebay.com\/itm\/DO-NOT-BID-or-BIN-EBAY-TEST-item-\/221413960599?pt=LH_DefaultDomain_0&amp;hash=item338d4ceb97\">Ebay<\/a> does it, <a href=\"http:\/\/www.amazon.com\/Twister-Test-ASIN-2-Download\/dp\/B009WXD80A\/ref=sr_1_1?ie=UTF8&amp;qid=1399678604&amp;sr=8-1&amp;keywords=test+asin\">amazon<\/a> does it, <a href=\"http:\/\/www.netflix.com\/WiMovie\/70305261?strkid=562150288_7_0&amp;trkid=222336&amp;movieid=70305261\">netflix<\/a> does it (I could go on, but believe me that it\u2019s done a lot). I don\u2019t have a link, but in the comments, Noah Sussman tells me that <em>NASA<\/em> does it.<\/p>\n<h5><strong>What Do Testers Do? Where did my cheese go. You are annoying!<\/strong><\/h5>\n<p>The fear of cheese moving is strong (\u201cIf developers do functional testing, what will <em>I<\/em> do?\u201d). There\u2019s a lot of testing activity left to do (even when you take away writing developers tests for them and wasting time on unneeded automation). Stress and performance suites and monitoring tools (for example) should give the coding testers on the team plenty of work to do. Data analysis is also necessary if you\u2019re gathering data from customers. And thanks to Roberto for pointing out that sanity checking UI changes, testing for Accessibility or Localization, or color changes all could use an onsite tester (or <em>sometimes<\/em> some code) to help.<\/p>\n<p>And honestly, now that I\u2019ve made you think about it, there are <em>a few<\/em> places where testers writing automation is useful. But it\u2019s about time that testers <em>stopped<\/em> trying to write automation for cases that shouldn\u2019t be automated. Want to try logging in and out 500 times \u2013 automate that (ideally NOT at the GUI level)? Go for it. Want to automate the end-to-end scenario of setting up an account and logging in? Please don\u2019t bother. Instead, just add some monitoring code that lets you know if login is failing and save yourself some frustration.<\/p>\n<p>One other thing \u2013 the point about developers owning more testing \u2013 that one is equally true for services and clients. It doesn\u2019t make sense to me at all to have a separate team verify functional correctness. It\u2019s not \u201ctoo hard\u201d or \u201ctoo much work\u201d for developers to write tests. Developers need to own writing quality code \u2013 and doing this requires that they write tests. I was surprised that some people felt that it was bad for developers to test their own code \u2013 but I suppose that years of working in silos will make you believe that there\u2019s some sort of taint in doing so (but there\u2019s not!).<\/p>\n<p>This is obviously a point (and a change <em>that is really happening now at a lot of companies<\/em>) that causes no small amount of fear in testers. I get that, but ignoring the change or burying your head in the sand, or justifying why testers <em>need<\/em> to own functional testing isn\u2019t going to help you figure out how to function when these changes hit <em>your <\/em>team.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well \u2013 that was a fun post. The dust hasn\u2019t quite settled, but a follow up is definitely in order.&nbsp; First, some context. I was committed to giving a lightning talk as part of STAR East\u2019s \u201cLightning Strikes the Keynotes\u201d hour. I purposely didn\u2019t pick a topic before I left, and figured I would come&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","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},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-870","post","type-post","status-publish","format-standard","hentry","category-allposts"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts\/870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/comments?post=870"}],"version-history":[{"count":0,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts\/870\/revisions"}],"wp:attachment":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/media?parent=870"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/categories?post=870"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/tags?post=870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}