{"id":343,"date":"2011-09-16T10:42:59","date_gmt":"2011-09-16T17:42:59","guid":{"rendered":"http:\/\/angryweasel.com\/blog\/?p=343"},"modified":"2011-09-16T10:42:59","modified_gmt":"2011-09-16T17:42:59","slug":"lessons-from-tapeop","status":"publish","type":"post","link":"https:\/\/angryweasel.com\/blog\/lessons-from-tapeop\/","title":{"rendered":"Lessons from TapeOp"},"content":{"rendered":"<p>I had a short bit of travel this week, and got a bit of reading done on the flights. I love my kindle, and use it when in the air, but I also pack a magazine or two to read during takeoff and landing. <\/p>\n<p>On the way home, I was catching up on a few issues of <a href=\"http:\/\/www.tapeop.com\/\" target=\"_blank\">Tape Op<\/a>. I haven\u2019t done much with recording in years, but I still love to read about the process \u2013 both the creative and technical aspects are extremely interesting to me. Perhaps I was in a \u201ctesting mindset\u201d, but a few of the articles <em>screamed<\/em> testing at me. I\u2019m sort of tired of the \u201ctesting is like \u2026\u201d metaphors, so I won\u2019t stretch this too far, but still felt the need to share.<\/p>\n<p>The latest issue (#84) has an article by Garrett Haines on Building Troubleshooting Skills. Garrett founded <a href=\"http:\/\/www.treelady.com\/\" target=\"_blank\">Treelady Studios<\/a> in Pittsburgh, and consistently has pragmatic advice for recording enthusiasts of all skill levels. As far as I know, the article isn\u2019t available online, but I\u2019ll summarize the main points with some testing comments and see where it goes.<\/p>\n<h4>Troubleshooting<\/h4>\n<p>One of the most important skills for a recording engineer is troubleshooting. If something goes wrong, you can either figure out what the problem is and fix it, or you can send the band home just when they\u2019re hitting their groove. I\u2019ve always enjoyed the troubleshooting aspect of testing. For me, finding the bug is secondary to <em>isolating<\/em> the bug. I don\u2019t find the exact root cause (or causes), or offending line of code for every bug I find, but I do like to isolate the bug as much as possible. <\/p>\n<p>Let\u2019s say that I get to a login screen and it doesn\u2019t work. I try again, ensuring that my test username and password are correct. I <em>could<\/em> enter a bug and be done with it, but there\u2019s likely some more I can do (even from an entirely black box perspective). I\u2019ll see if <em>other<\/em> username \/ password combinations work, I\u2019ll try variances of case, and compare simple passwords with complex passwords** until I can get some more clues to what\u2019s going on. <\/p>\n<h4>Get in the right frame of mind<\/h4>\n<p>When something goes wrong (all of a sudden the test code won\u2019t run an half of the machines), don\u2019t panic. I don\u2019t often have days when everything goes perfectly, and I doubt you do to. One reaction is to freak out and claim the sky is falling, but it helps to <em>expect<\/em> that things may go wrong and just address those issues as they arise.<\/p>\n<h4>Recreate the problem<\/h4>\n<p>That\u2019s weird \u2013 something isn\u2019t working- the first thing to do is reproduce it. I love the example Garrett uses here. \u201cSometimes reproducing the problem&#160; can lead to an immediate solution \u2013 e.g. lifting the mute on the \u2018track that won\u2019t play;\u201d <\/p>\n<p>I remember working on a product when a tester ran into a colleague\u2019s office, panicked because none of the audio tests he was running were working. My colleague calmly walked to her office, and had her reproduce the problem. He looked at her computer for a moment and informed her that she didn\u2019t have any speakers connected. This is an extreme (yet true) example, but sometimes looking at the problem \u2013 and thinking through how the success path should work is a huge help.<\/p>\n<h4>Isolate the root cause<\/h4>\n<p>Garrett has a few dozen examples of how to use this technique, and most relate to software testing. Tell me if some of the troubleshooting scenarios he lists are familiar to us in the testing world.<\/p>\n<ul>\n<li><strong>Intermittent problems<\/strong> \u2013 these are my favorite to debug and isolate (in software, at least)<\/li>\n<li><strong>Not understanding the studio configuration<\/strong> \u2013 as a tester, you have to have an idea of how the system works in order to isolate many (most?) issues.<\/li>\n<li><strong>Invest in diagnostic tools<\/strong> \u2013 I couldn\u2019t survive as a tester without debuggers, network sniffers, process monitors and other tools that let me know what\u2019s going on<\/li>\n<li><strong>Trace the thunder<\/strong> \u2013 this is the concept of thinking through the flow of how the scenario works. The path from microphone to mixer (which may go through one or more effects), is similar to the flow of logging into a system (keystrokes go to UI, which encrypts the credentials, then sends them to a server (perhaps checking a local cache first), etc.<\/li>\n<li><strong>Make sure you\u2019ve had enough coffee and sugar, but don\u2019t have so much that you\u2019re twitchy<\/strong> \u2013 \u2018nuff said.<\/li>\n<li><strong>Don\u2019t be afraid to call for help if you\u2019re in over your head<\/strong> &#8211; Good advice for anyone.<\/li>\n<\/ul>\n<h4>Repair the problem &amp; test the solution<\/h4>\n<p>Not always necessary for a tester to do, but something you can try if it will confirm your hypothesis. Think your problem is due to a missing configuration file or reg key \u2013 add the file or setting and see if it fixes the problem. You\u2019ll learn more about the system whether the solution works or not.<\/p>\n<h4>Learn from the experience<\/h4>\n<p>Garrett says, \u201cTell your studio mates and colleagues what you\u2019ve learned. Post findings on some of the various discussion forums.\u201d Can you think of better advice for testers?<\/p>\n<p>There\u2019s plenty more to learn, but I think you get the point. Software (like recording studios) are complex environments that break or malfunction \u2013 but a structured approach to troubleshooting will minimize downtime (and yak-shaving time) and you\u2019ll make more progress in the long run.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I had a short bit of travel this week, and got a bit of reading done on the flights. I love my kindle, and use it when in the air, but I also pack a magazine or two to read during takeoff and landing. On the way home, I was catching up on a few&#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":false,"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-343","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\/343","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=343"}],"version-history":[{"count":0,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/posts\/343\/revisions"}],"wp:attachment":[{"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/media?parent=343"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/categories?post=343"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/angryweasel.com\/blog\/wp-json\/wp\/v2\/tags?post=343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}