tag:blogger.com,1999:blog-68909581530066124592024-03-16T11:50:21.212-07:00TESTHEADThe Mis-Education and Re-Education of a Software TesterMichael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.comBlogger1372125tag:blogger.com,1999:blog-6890958153006612459.post-31729865757499659432023-12-25T06:00:00.000-08:002023-12-25T06:00:00.246-08:00Software Testing Strategies is NOW AVAILABLE!!!<p> I realize that I am terrible at self-promotion at times but I have a very good reason to step up my self-promotion for a change.</p>
<p>I WROTE A BOOK!</p>
<p>OK, now that that's out of my system, Matt Heusser and I co-wrote a book. That's the much more honest answer but hey, my name is on the cover, so I'm claiming that credit ;).</p>
<p><iframe allowfullscreen="" frameborder="0" height="550" sandbox="allow-scripts allow-same-origin allow-popups" src="https://read.amazon.com/kp/card?asin=B0CLLDMJW9&preview=inline&linkCode=kpe&ref_=cm_sw_r_kb_dp_P6NGR65YTN1TVT4NB7VK" style="max-width: 100%;" type="text/html" width="336"></iframe></p><p>Matt and I spent more than a year working on this project that has become "Software Testing Strategies" and its subtitle is "A Testing Guide for the 2020s". We have endeavored to create a book that is timely and, we hope, timeless. Additionally, we did our best to bring some topics that may not be in other testing books. Through several years of working on podcasts together, writing articles together for various online journals, presenting talks at various conferences, and developing training materials to deliver as training courses as well as online and in-person classwork, we realized we had enough experiences between us to inform and develop a full book.<br /><br />From our Amazon listing:</p><p><i><b>Software Testing Strategies</b> covers a wide range of topics in the field of software testing, providing practical insights and strategies for professionals at every level. With equal emphasis on theoretical knowledge and practical application, this book is a valuable resource for programmers, testers, and anyone involved in software development.</i></p><p><br /></p><p><i>The first part delves into the fundamentals of software testing, teaching you about test design, tooling, and automation. The chapters help you get to grips with specialized testing areas, including security, internationalization, accessibility, and performance. <br /><br />The second part focuses on the integration of testing into the broader software delivery process, exploring different delivery models and puzzle pieces contributing to effective testing. You’ll discover how to craft your own test strategies and learn about lean approaches to software testing for optimizing processes. <br /><br />The final part goes beyond technicalities, addressing the broader context of testing. The chapters cover case studies, experience reports, and testing responsibilities, and discuss the philosophy and ethics of software testing.</i></p><p><i>By the end of this book, you’ll be equipped to elevate your testing game, ensure software quality, and have an indispensable guide to the ever-evolving landscape of software quality assurance.</i></p><p><b>Who this book is for</b></p><p><i>This book is for a broad spectrum of professionals engaged in software development, including programmers, testers, and DevOps specialists. Tailored to those who aspire to elevate their testing practices beyond the basics, the book caters to anyone seeking practical insights and strategies to master the nuanced interplay between human intuition and automation. Whether you are a seasoned developer, meticulous tester, or DevOps professional, this comprehensive guide offers a transformative roadmap to become an adept strategist in the dynamic realm of software quality assurance.</i></p><p><br /></p><p><b>Table of Contents</b></p><p></p><ol style="text-align: left;"><li>Testing and Designing Tests</li><li>Fundamental Issues in Tooling and Automation</li><li>Programmer-Facing Testing</li><li>Customer-Facing Tests</li><li>Specialized Testing</li><li>Testing Related Skills</li><li>Test Data Management</li><li>Delivery Models and Testing</li><li>The Puzzle Pieces of Good Testing</li><li>Putting Your Test Strategy Together</li><li>Lean Software Testing</li><li>Case Studies and Experience Reports</li><li>Testing Activities or a Testing Role?</li><li>Philosophy and Ethics in Software Testing</li><li>Words and Language About Work</li><li>Testing Strategy Applied</li></ol><div>Sound interesting? If so, please go and visit the link and buy a copy. Have questions? Want us to delve into some of the ideas in future articles here? Leave a comment and let's chat.</div><p></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-81232286336025969292023-10-27T11:29:00.005-07:002023-10-27T11:29:37.184-07:00Feeding on Frustration: The Rise of the "Recruiter Scam"<p> This is truly not an article I wanted to write, but my hope is my experience may help some people out there.</p><p>To put it simply, I have been applying for a variety of jobs because, well, that's what you do when you are between jobs. I have, for the past several months, been working with an organization performing training for a cohort of learners. That started at the beginning of June, and it has recently been completed. With the classes finished, I am now the same "free agent" I was in May.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEim72TbFL3vueHDCsRa4fsL6th7TILc-YUnoWZhS9YNQIM3j3LBFbYPpiwxvrU_FG3e-YvWp4k8bt5O4zKqX8hCl5Vt2ve3ReVhhPSX1m2oFAxi6JoSkGFBo68zcE9oAysSJlzaabjgBPIMD8hv6UroAFnSfSvlrVQnVuhx6il79hZSR_-WDxOthj2ZOLYP" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" data-original-height="194" data-original-width="259" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEim72TbFL3vueHDCsRa4fsL6th7TILc-YUnoWZhS9YNQIM3j3LBFbYPpiwxvrU_FG3e-YvWp4k8bt5O4zKqX8hCl5Vt2ve3ReVhhPSX1m2oFAxi6JoSkGFBo68zcE9oAysSJlzaabjgBPIMD8hv6UroAFnSfSvlrVQnVuhx6il79hZSR_-WDxOthj2ZOLYP" width="320" /></a></div><br /><br /><br />Thus, it should come as no surprise that I am applying for the jobs that are being posted and that I feel might make for a good fit. Additionally, this is part of my certifying for unemployment benefits. You have to show a paper trail of the companies you are applying to and demonstrate your active job search and the results of that search. Thus, I am making several inquiries each week. It's not surprising that the deluge of messages one gets when they are actively involved in this process makes it difficult to determine what is legitimate and what might be a scam.<br /><br />Last weekend, as I was working through some things while waiting in my car to get an oil change, I received a message saying that they had reviewed my application and wanted to "short-list" me for interviews and potential hiring. To help with that, they sent me a questionnaire to fill out. I've done many of these, so I didn't at first think anything of it, though as I worked my way through the questions, I started to think, "Wow, this is pretty cool. So many of these questions feel almost tailor-made for me." Part of me was getting suspicious, but I thought, "Ah, you're being that paranoid tester again. It's not like there's anything in here they're asking that weird or harmful." So I decided to submit it.<br /><br />A few days go by, and I receive an email message saying, "Congratulations! We are pleased to offer you the job of Remote Quality Assurance Engineer at (Company). To facilitate a formal job offer, please provide us with the following (full name, address, phone number, and email)". Again, at first, it seemed logical, but then... hang on... if they have my resume, it already contains all of that information. Why would they need to have me send it again? Now my tester spidy sense is tingling. This is starting to feel like a scam. Do I disengage at this point, or do I see if I can catch them red-handed?<br /><br />I figured, "What the heck? Let's roll with it". My name, address, phone number, and email are readily available. We can discuss if that is an intelligent practice another time. In this case, I figured, "Let's go with it."<p></p><p>I received an offer letter. The company looks legitimate. It's a company I applied for. The job description looks beautiful. It matches all of the items I would be looking for... <i>all of them</i>. Now, for anyone who has applied for a job, have you ever seen a job description that was a perfect 10/10, or in this case, a perfect 13/13? Everything felt tailor-made for me. The pay rate also felt right in the pocket. However, here's where things started to go sideways.<br /><br /><i>"We will send you a check so that you can procure the needed equipment from our preferred vendors. Once you are set up and have everything in place, we can start the necessary training and get you up to speed. We can set up the payment for this procurement by direct deposit, or we can send you a check."</i> <br /><br /></p><p>Ohhhhh, yeahhhhhh!!! Now they are feeling confident (LOL!). </p><p>They have someone willing to give them sensitive information. Did I mention that with the signed cover letter, I was to also send them a copy of my driver's license, front and back? I understand the idea of verifying identity and ability to legally work, but that's what I-9 verification services are for. They are also secure entities. I am not sending my license details over email. With this, I was pretty certain that I had a scammer. Thus I went and did the next things that felt obvious to me. I went back to look up the company and determine if the information they were sending me was accurate. Company name? Checks out. Address? Yes, accurate. Let's do a little search on the name of the person recruiting... oh, would you look at that? There is no LinkedIn profile for this person associated with this company. Hmmm, let's see their job listings... okay, there's the Quality Assurance Engineer's job listing. A quick review... now that's interesting. These are not the same requirements they sent to me. Not only that, but that perfect 13/13 job match was now reduced to an 8/13, with a few of the requirements that I was qualified for not even in the listing, and a few additional items that were not aligned with what I was working with. Yeah, that's a lot more typical. Also, the pay rate was lower than what the scammer was advertising.<br /><br />With that, I scanned to see who the company listed as their official recruiters and I reached out to them via LinkedIn and simply asked if they were familiar with the individual who contacted me and if they were aware of the odd request to send me a check to buy equipment. The net result was that, less than an hour later, I saw a post from the company warning people to steer clear of any email communications from one "Maxwell Keen" as they were posing as a recruiter for the company but did not nor had they ever worked with them.</p><p>All's well that end's well, right? We caught the scammer, I reported them, and now that's all done, right? Maybe, but I have a feeling that this person is still out there and probably looking for their next target, so with that, consider these some quick safeguards you an take.<br /><br />- If you need to keep track of your job search, create an intermediate table in Excel or elsewhere that stores the information about the job and who you are communicating with, if possible. At the very least, review the job descriptions on LinkedIn and on their site and verify that they match.<br /><br />- If there is a contact information space, note it down, especially if there is a contact person with a phone number. You don't need to contact them immediately, but you will want this information should you receive a reply back.</p><p>- Getting a questionnaire is fairly standard but it also makes it easy to "cheat" and write down the answers you search for. Again, it's not the most red of flags but I'd argue it's also not very helpful so be leery of anyone sending these and not asking for a phone call/screening.</p><p>- If you get an offer for a job where there has been no interview or phone screen or a direct conversation with a human being (either over Zoom or in person), expect that this is probably a scam of some sort. Otherwise, how are they vetting these people?</p><p>- Look to make sure that, if you receive an offer letter, there are no misspellings in the document. It's a simple thing, and perhaps petty, but offer letters have a fair amount of boilerplate text for legal purposes. Any legal document will be fine-toothed for any grammatical errors or misspellings. There may be some grammar variation but misspelled words should automatically give you pause.</p><p>- Any reputable company will either work with you to set you up with VPN or other security details to use your equipment as is or they will ship you out a system set up with the software they expect you to use. Being asked to receive a check to procure equipment is an indication that something illegal or shady is happening.<br /><br />- References are something worth having and including upon request. as my friend Timothy Western pointed out, though, if they are asking for them too quickly or at the very beginning of the process, hold off on providing those. They may be harvesting that information from your references to target them. </p><p>Some additional items you can do that should help determine if you are dealing with a reputable recruiter or a scammer:<br /><br /></p><p>- Look up recent news about the company to understand its current market and technical position and future outlook. Discussing the latest product launches, partnerships, or corporate changes can help flush out what they know or don't know about the company.</p><p>- Read up on employee testimonials on sites like GlassDoor and see if they match what the recruiter is telling you. While this may not necessarily tip you off if they're a scammer, it will help give you some inside perspectives on working conditions and employees' perspectives on their work culture.<br /><br />- If possible, try to connect with current or past employees who can offer firsthand insights into the company. definitely see if there is a secondary recruiter there who can at least confirm the interactions you are having.</p><p>- If publicly available, review financial reports to assess the company's stability. Ask them some questions to determine what they might know and if their answers corroborate or refute your findings. </p><p>Finally, make sure that everything you see in any communications can be traced back to interactions you initiated and make sense/match the experience you started with. </p><p>Do not trust. Absolutely verify. </p><p>Many of us are struggling with the reality of needing to find work. Let's do what we can to stop these parasites from making this already challenging search even more so.</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com2tag:blogger.com,1999:blog-6890958153006612459.post-57095439053032519952023-10-10T16:46:00.003-07:002023-10-10T16:46:53.392-07:00Empathy is a Technical Skill With Andrea Goulet (PNSQC)<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3WnZn7uyytnfGqeOjarK9u2Fnz9s0U33J_6erVu5yrckr02KvoMcvYg8DlL6mKRMR1dqCWDUCbnchoYEy882rJWCOs-g6K2u4pzKx__Dsc0ilsLhGBuQu_2RZBc-JzjiIfCeMAj9wjBR19LzDy5l_0oCz94UsVhCjfOqB9P23A_kmUwtLCsZqvk2lt-q0/s1024/website-header-banner_1024px-x-170px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="170" data-original-width="1024" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3WnZn7uyytnfGqeOjarK9u2Fnz9s0U33J_6erVu5yrckr02KvoMcvYg8DlL6mKRMR1dqCWDUCbnchoYEy882rJWCOs-g6K2u4pzKx__Dsc0ilsLhGBuQu_2RZBc-JzjiIfCeMAj9wjBR19LzDy5l_0oCz94UsVhCjfOqB9P23A_kmUwtLCsZqvk2lt-q0/s320/website-header-banner_1024px-x-170px.jpg" width="320" /></a></div><div><br /></div>Today has been a whirlwind. I was up this morning before 5:00 a.m. to teach the penultimate class of my contract (sorry, I just love working that word into things ;) ) but suffice it to say the class is still happening while PNSQC is happening. That has made me a little tired and thus a little less blogging today. Add to that the fact I was called in to do a substitute talk in the afternoon (glad to do it but that was not on my dance card today) and I'm really wondering how we are at the last talk of the day and formal conference. regardless, we are here and I'm excited to hear our last speaker.<div><h3 style="background-color: white; box-sizing: border-box; color: #ed701a; font-family: Rubik, sans-serif; font-size: 27px; line-height: 1.2; margin: 1em 0px 0.3em; padding: 0px; text-transform: capitalize;"><img class="img-responsive" src="https://pnsqc.org/photos/125949P.JPG" style="border: 0px; box-sizing: border-box; display: block; float: left; height: auto; margin: 5px 10px; max-width: 100%; vertical-align: middle; width: 200px;" /></h3><p style="background-color: white; box-sizing: border-box; margin: 0px 0px 0.75em;"><span style="color: #5a5a5a; font-family: Rubik, sans-serif;">I appreciate Andrea talking about this topic, especially because I feel that there has been a lot of impersonal and disinterested work from many over the past several years. I was curious as to what this talk would be about. How can we look at Empathy as a technical skill? She walked us through an example with her husband where he was digging into a thorny technical problem that was interrupted by Andrea asking him for a moment. His reaction was... not pleasant. As Andrea explained, she realized that he was deeply focused on something so all-consuming that it was going to be a big deal to get his attention for needful things. Instead of it being an ugly altercation, they worked out a phrase (in this case, "Inception") to help see when a person is on a deep dive and needs to be in their focused state, at least for a little while longer. While I don't quite know that level of a dive, I have times in my own life when I get caught up in my own thoughts and I bristle when someone interrupts/intrudes. By realizing these things, we can not just recognize when we ourselves are focusing on deep dives, but we can also recognize when others are as well. This is a development of our own empathy to aid us in the process of understanding when people are dealing with things.</span></p><p style="background-color: white; box-sizing: border-box; margin: 0px 0px 0.75em;"><span style="color: #5a5a5a; font-family: Rubik, sans-serif;"><br /></span><span style="color: #5a5a5a; font-family: Rubik, sans-serif;">Okay, that's all cool, but why is this being called a technical thing? Because we are free and loose with the use of the word "technical". Technical comes from the Greek word "Techne", and techne means "skill". That means any skill is technical when we get down to it. It also means it's a skill that can be learned. Yes, we can learn to be empathetic. It's not something we are born with, it's something we develop and practice. Motivation likewise drives empathy. In many ways, empathy can be a little mercenary. That's why we get it wrong a lot of the time. We often want to reach out and help in ways that we would want to be helped, and thus our empathy is highly subjective and highly variable. Additionally, empathy grades on a curve. There are numerous ways in which we express and experience empathy. it's not a monoculture, it is expressed in numerous ways and under different circumstances and conditions. There are a variety of components, mechanisms, and processes that go into our understanding and expressions of empathy. It's how we collaborate and solve complex problems. In short, it's a core part of our desire and ability to work together.<br /><br />Andrea showed us a diagram with a number of elements. We have a variety of inputs (compassion, communication) that drive the various mechanisms that end up with a set of outputs. Those outputs come down to:</span></p><p style="background-color: white; box-sizing: border-box; margin: 0px 0px 0.75em;"></p><ul style="text-align: left;"><li><span style="color: #5a5a5a; font-family: Rubik, sans-serif;">Developing an understanding of others </span></li><li>Creation of Trust</li><li>A Feeling of Mutual Support</li><li>An overall synergy of efforts </li></ul><p></p><p style="background-color: white; box-sizing: border-box; color: #5a5a5a; font-family: Rubik, sans-serif; font-size: 16px; margin: 0px 0px 0.75em;"> Empathy requires critical thinking. It's not all feelings. We have to have a clear understanding and rational vision of what people want, and not specifically what we want. <br /><br />On the whole, this is intriguing and not what I was expecting to hear. Regardless, I'm excited to see if I can approach this as a developed skill.</p><div><br /></div><div class="row" style="background-color: white; box-sizing: border-box; color: #5a5a5a; font-family: Rubik, sans-serif; font-size: 16px; margin-left: -15px; margin-right: -15px;"></div></div>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-29087922715304694952023-10-10T12:17:00.004-07:002023-10-10T12:17:42.443-07:00Automation, You're Doing It Wrong With Melissa Tondi (PNSQC)<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilomhHweTU73Y2LkOyGJWLnVXkze9gKBmGYJ02tcbJiLY7uJSK1TMyCRajhJDeKnqksyvmQmpG0ZUYc_IMV4s9Y6O_1nywDAKbLIeb_MFFGzOTPw-gaczWwr07uV22df0WaiwcgPKOAQjL8CfJRPRuOEyEp_6u2lE-Os-Uwb02Ca8vzIM0Wfo7KvfkAN7E/s1024/website-header-banner_1024px-x-170px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="170" data-original-width="1024" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilomhHweTU73Y2LkOyGJWLnVXkze9gKBmGYJ02tcbJiLY7uJSK1TMyCRajhJDeKnqksyvmQmpG0ZUYc_IMV4s9Y6O_1nywDAKbLIeb_MFFGzOTPw-gaczWwr07uV22df0WaiwcgPKOAQjL8CfJRPRuOEyEp_6u2lE-Os-Uwb02Ca8vzIM0Wfo7KvfkAN7E/s320/website-header-banner_1024px-x-170px.jpg" width="320" /></a><br /><br />This may feel a bit like deja -vu because Melissa has given a similar talk in other venues. The cool thing is I know each time she delivers the talk, it has some new avenues and ideas. So what will today have in store? Let's find out :).<div><br /></div><div><br /></div><br /><div>What I like about Melissa's take is that she emphasizes what automation is NOT over what it is. <br /><br /></div><div><img src="https://pnsqc.org/photos/127924P.JPG" />I like her opening phrase, "Test automation makes humans more efficient, not less essential" and I really appreciate that. Granted, I know a lot of people feel that test automation and its implementation is a less than enjoyable experience. Too often I feel we end up having to play a game of metrics over making any meaningful testing progress. I've also been part of what I call the "script factory" role where you learn how to write one test and then 95 out of 100 tests you write are going to be small variations on the theme of that test (login, navigate, find the element, confirm it exists, print out the message, tick the pass number, repeat). Could there be lots more than that and lots more creativity? Sure. Do we see that? Not often.</div><div><br /></div><div>Is that automation's fault? No. Is it an issue with management and their desire to post favorable numbers? Oh yeah, definitely. In short, we are setting up a perverse expectation and reward system. When you gauge success in numbers, people will figure out the ways to meet that. Does it add any real value? Sadly, much of the time it does not. </div><div><br /></div><div>Another killer that I had the opportunity to work on and see change was the serial and monolithic suite of tests that take a lot of time to run. I saw this happen at Socialtext and one of the first big initiatives when I arrived there was to see the implementation of a docker suite that would break out our tests into groupings split into fours. Every test was randomized and shuffled to run on the four server gateways. We would bring up as many nodes as necessary to run the batches of tests. By doing this, we were able to cut our linear test runs down from 24 hours to just one. That was a huge win but it also helped us determine where we had tests that were not truly self-contained. It was interesting to see how tests were set up and how many tests were made larger specifically to allow us to do examinations but also to allow us to divvy up more tests than we would have been able to otherwise. <br /></div><div><br /></div><div>Melissa brought up the great specter of "automate everything". While granted, this is impossible, it is still seen forlornly as "The Impossible Dream". More times than not, it's the process of taking all of the manual tests and putting them to code. Many of those tests will make sense, sure, but many of them will not. The amount of energy and effort necessary to cover all of the variations of certain tests will just become mind-numbing and, often, not tell us anything interesting. Additionally, many of our tests that are created in this legacy manner are there to test legacy code. Often, that code doesn't have hooks that will help us with testing, so we have to do end runs to make things work. Often, the code is just resistant to testing or requiring esoteric identification methods (the more esoteric, the more likely it will fail on you someday). Additionally, I've seen a lot of organizations that are looking for automated tests when they haven't done unit or integration tests at lower levels. This is something I've realized having recently taught a student group to learn C#. We went through the language basics and then later started talking about unit testing and frameworks. After I had gone through this, I determined if I were to do this again, I would do my best to teach unit testing, even if at fundamental levels, as soon as participants were creating classes that processed actions or returned a value beyond a print statement. Think about where we could be if every software developer was taught about and encouraged to use unit tests at the training wheels level!</div><div><br /></div><div>Another suggestion that I find interesting and helpful is that a test that always passes is probably useless. Not because the test is necessarily working correctly and the code is genuinely good but because we got lucky and/or we don't have anything challenging enough in our test to actually run the risk of failing. If it's the latter, then yes, the test is relatively worthless. How to remedy that? I encourage creating two tests wherever possible, one positive and one negative. Both should pass if coded accurately but both approach the problem from opposite levels. If you want to be more aggressive, make some more negative tests to really push and see if we are doing the right things. This is especially valuable if you have put time into error-handling code. The more error-handling code we have, the more negative tests we need to create to make sure our ducks are in a row.</div><div><br /></div><div>A final item Melissa mentions is the fact that we often rely on the experts too much. We should be looking at the option that the expert may not be there (And at some point if they genuinely leave, they WON'T be there to take care of it. Code gets stale rapidly if knowledgeable people are lost. Take the time to include as many people as possible in the chain (within reason) so that everyone who wants to and can is able to check out builds, run them, test them, and deploy them.<br /></div>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-14148076508009972502023-10-10T09:57:00.004-07:002023-10-10T09:57:19.259-07:00 Continuous Testing Integration With CI/CD Pipeline (PNSQC)<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_4sJp2VBZiZD-mcDvY-IwbwC_FUXEADoW5eKOKyFSWG6AczClGAq7k4fX8_YKT0YPeR00HdQ3FTSTie2z6nO5-KaaM7PKidUz217hbsHobQkAMvFDJ1Nj6j9d3cdPW4OH48czJLfl-a0SpezLobbKHf946VgUsstqKwaz5AOdilV19gQq_D4jbTFTOsp_/s1024/website-header-banner_1024px-x-170px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="170" data-original-width="1024" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_4sJp2VBZiZD-mcDvY-IwbwC_FUXEADoW5eKOKyFSWG6AczClGAq7k4fX8_YKT0YPeR00HdQ3FTSTie2z6nO5-KaaM7PKidUz217hbsHobQkAMvFDJ1Nj6j9d3cdPW4OH48czJLfl-a0SpezLobbKHf946VgUsstqKwaz5AOdilV19gQq_D4jbTFTOsp_/s320/website-header-banner_1024px-x-170px.jpg" width="320" /></a></div><p>Today, I'm taking a walk down memory lane. I'm listening to Junhe Liu describe integrating various automatic tests into the CI/CD pipeline.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjYqLEbdDkQzkIrVqzR3PBuwQ5_8ULXSyy94na-FpSkgC-SPDomCRnUpN5xbpfSc9SxTJad9gS8uFE0HjH7QwP-ixNNADO_HFEdpAszVLyXBOPOknIr_kiPDXv6L344Ec30Grtej3Uz2zy10BPRBGp4QvDwL0o_gEoa-3MwOnEpAsBcGeRhlXwS4wTN77ft" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" data-original-height="706" data-original-width="568" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEjYqLEbdDkQzkIrVqzR3PBuwQ5_8ULXSyy94na-FpSkgC-SPDomCRnUpN5xbpfSc9SxTJad9gS8uFE0HjH7QwP-ixNNADO_HFEdpAszVLyXBOPOknIr_kiPDXv6L344Ec30Grtej3Uz2zy10BPRBGp4QvDwL0o_gEoa-3MwOnEpAsBcGeRhlXwS4wTN77ft" width="193" /></a></div><br />It's interesting to think about where we are today compared to 30 years ago when I first came into the tech world. Waterfall development was all that I or anyone knew (we may not have wanted to call it that, or we'd dress it up. Realistically speaking, any given release was a linear process, and each sequence flowed into each other. While I had heard of Agile come the early 2000s, I didn't work on such a team (or one that presented itself as such) until 2011. <p></p><p>Likewise, it was around the mid-200s that I started hearing the idea of Development and Operations being two great tastes that went better together being discussed ;). Again, it wouldn't be another decade until I saw it in practice but over time, I did indeed start to see this and I was able to participate in it. </p><p>One of the interesting arrangements in the group I was working at (Socialtext), every member of the team had their turn at being the "Pump King". That's a piece of lore that I miss and it is a long story involving an old USB drive that was kept in a toy jack-o-lantern bucket, hence the person who took care of the protective pumpkin became known as the "Pump King" and after everything went online, the name stuck. The key point was that the Pump King was the person responsible for the Jenkins system and making sure that it was working, up to date, and patched when necessary, as well as running it to build and deploy our releases. Every few weeks, it would be my turn to do it as well. </p><p>Thus it was that I was brought into the world of Continuous Delivery and Continuous Deployment, at least in a limited sense (most of the time this was related to staging releases). We actually had a three-tiered release approach. Each developer would deploy to demo machines to test out their code and make sure it worked in a more localized and limited capacity. Merging to the staging branch would trigger a staging build (or the pump king would call one up whenever they felt it warranted, typically at the start of each day. We'd run that and push changes and version numbering to our staging server, and then we'd run our general tests, as well as all the underlying automated tests with the Jenkins process, of which there were a *lot* of them. Finally, due to our service agreements, we would update our production server and then push uploads to customers who opted in to be updated at the same time. We never go to production daily pushes but weekly was more common towards the end of my time on that product. </p><p>It was interesting to get into this mode and I was happy that we were all taught how to do it, not just one and when needed but that all of us were expected to be able to do it at any time. Thus all of us knew how to do it and all of us were expected to do it every time it was our turn to be Pump King. </p><p></p><p><br /></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-47585657622213354892023-10-09T15:46:00.005-07:002023-10-10T06:52:09.343-07:00Learning, Upskilling, and Leading to Testing (Michael Larsen with Leandro Melendez at PNSQC)<p>You all may have noticed I have been quiet for a few hours. Part of it is that I was giving a talk on Accessibility (I will post a deeper dive into that later, but suffice it to say I shook things up a little, and I have a few fresh ideas to include in the future).</p><p>Also, I was busy chatting with our good friend Leandro Melendez (aka Señor Performo), and I figured it would be fun to share that here. I'm not 100% sure if this will appear for everyone or if you need a LinkedIn login. If you can't watch the video below, please let me know.</p>
<iframe allowfullscreen="" frameborder="0" height="200" src="https://www.linkedin.com/video/embed/live/urn:li:ugcPost:7117203132513705986" title="A Conversation with Senor Performo" width="350"></iframe> <div><br /></div><div>We had a wide-ranging conversation, much of it based on my recent experience being a testing trainer and how I got into that situation (the simple answer is a friend offered me an opportunity, and I jumped at it ;) ). That led to talking about ways we learn, how we interact with that learning, and where we use various analogs in our lives. This led us to talk about two learning dualities I picked up from Ronald Gross' "Peak Learning" book (Stringers vs. Groupers) and a little bit about how I got into testing in the first place.<br /><br />It's a wide-ranging conversation, but it was fun participating, and I hope you will enjoy listening and watching it :).</div>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-40378766922694293352023-10-09T10:19:00.000-07:002023-10-09T10:19:06.000-07:00Common Pitfalls/Cognitive Biases In Modern QA with Leandro Melendez (PNSQC)<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcuVLB2mPWFr4gGfg3asJza3DSsLmeTqGmrau3XVWHi2votD1JOo_HeZ8ck8XZdW08dDkvtm9w9j8PsZUIMIPGcXb5nIf91vVC4c971TqqGHjlU4qURx9aFmd7cBK5Tljyg9kO6fNU5yZbyiHTYwZxzY0xO9TuGWqGyy6fDM4nq_1DC-CglekhRWE6Dzuz/s1024/website-header-banner_1024px-x-170px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="170" data-original-width="1024" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcuVLB2mPWFr4gGfg3asJza3DSsLmeTqGmrau3XVWHi2votD1JOo_HeZ8ck8XZdW08dDkvtm9w9j8PsZUIMIPGcXb5nIf91vVC4c971TqqGHjlU4qURx9aFmd7cBK5Tljyg9kO6fNU5yZbyiHTYwZxzY0xO9TuGWqGyy6fDM4nq_1DC-CglekhRWE6Dzuz/s320/website-header-banner_1024px-x-170px.jpg" width="320" /></a><div><br /></div><div>Ah yes, another date with the legendary Señor Performo :). <br /><br />Leandro is always fun to hear present and I particularly liked the premise of his talk as I frequently find myself dealing with cognitive biases, both in the way of locating them when others use them but also to admonish myself when I do (and yes, I do fall prey to them from time to time). <br /><br /><img src="https://pnsqc.org/photos/118152P.JPG" /><br /><br />I've been in the process of teaching a class for the past few months related to software test automation, specifically learning about how to use a tool like Playwright with an automated testing framework. To that end, we have a capstone project that runs for three weeks. As anyone involved in software development knows, three weeks is both a lot of time and no time at all. This is by design, as there is no way to do everything that's needed, and because of that, there are things that we need to focus on that will force us to make decisions that will not be optimal. This fits into the conversation that Leandro is having today. How do you improve and get better when you have so many pressures and so little time to do it all? </div><div><br /></div><div>Note: I am not trying to throw shade at my students. I think they are doing a great job, especially in the limited time frame that they have (again, by design) and seeing what choices they make (as I'm literally a "disinterested shareholder" in this project, meaning I care about the end product but I'm trying my level best to not get involved or direct them as to what to do. In part, it's not the instructor's role to do that but also, I'm curious to see the what and the why concerning the choices that are made).</div><div><br /></div><div>We often act irrationally under pressure and with time limitations. Often we are willing to settle for what works versus what is most important or helpful. I'm certainly guilty of that from time to time. An interesting aspect of this, and one I have seen, is the "man with a hammer" syndrome, where once we have something we feel works well, we start duplicating and working with it because we know we can have great wins with that. That's all well and good but at times, we can go overboard. Imagine that you have an application with navigation components. You may find that many of those components use similar elements, and with that, you can create a solution that will cover most of your navigation challenges. The good thing? We have comprehensive navigation coverage. The disadvantage? all of that work on Navigation, while important and necessary, has limited the work on other functionalities with the unit under test. Thus, it may be a better use of time to do some of the navigation aspects and get some coverage on other aspects of the application rather than have a comprehensive testing solution that covers every navigation parameter and little else to show for it. <br /><br />Another example that Leandro gives is "Living Among Wolves" or we can consider this an example of "conformance bias" meaning that when we do certain things or we are part of a particular environment, we take on the thinking of those people to fit in with the group. Sometimes this is explicit, sometimes it is implicit, and sometimes we are as surprised as anyone else that we are doing something we are not even aware of. </div><div><br /></div><div>The "sunk cost" appears in a lot of places. Often we will be so enamored with the fact that we have something working that we will keep running and working with that example as long as we can. We've already invested in it. We've put time into it, so it must be important. Is it? Or are we giving it an outsized importance merely because we've invested a lot of time into it? </div><div><br /></div><div>One of the lessons I learned some time back is that any test that never fails is probably not very well designed or it offers little value in the long run. It's often a good idea to approach tests both from a positive and a negative perspective. It's one thing to get lucky and get something that works in a positive/happy path test (or not necessarily lucky but limited in what's being done. Now, does your logic hold up when you inver the testing idea? Meaning can you create a negative test or multiple negative tests that will "fail" based on changing or adding bogus data or multiple bogus data examples. Better yet, are you doing effective error handling with your bogus data? The point is, that so many of our tests are balanced to only happy path, limited depth tests. If you have a lot of positive tests and you don't have many tests that handle negative aspects (so that the incorrect outcome is expected... and therefore makes a test "pass" instead of fail), can you really say you have tested the environment effectively? </div><div><br /></div><div>Ending with a Shameless plug for Leandro. Leandro is now an author, having written "<a href="https://amzn.to/37wqpyx" rel="nofollow" target="_blank">The Hitchhikers Guide To Load Testing Projects</a>", a fun walkthrough that will guide you through the phases or levels of an IT load testing project. https://amzn.to/37wqpyx<br /><br /></div>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-37929980130016860572023-10-09T09:01:00.001-07:002023-10-09T09:01:16.490-07:00Amplifying Agile Quality Practices with Selena Delesie (PNSQC)<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpCufDT_ZyJr87Rb9pe2yzfDpS3SSZiz0j50LIkT2I5xS-eHdQ3_8_IqtmHEbhIcYT0ULiJ_-0c8Yotac6nJn1yObX7a6ugWmBLri7qryPib_LagOXHdtWRza3lmB-us7HjvPnpTW2eZd1TOMlEvSCHSqxIucCeGK0pVtAejh0cGWDTs3HS3MX-nBQoLnr/s1024/website-header-banner_1024px-x-170px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="170" data-original-width="1024" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpCufDT_ZyJr87Rb9pe2yzfDpS3SSZiz0j50LIkT2I5xS-eHdQ3_8_IqtmHEbhIcYT0ULiJ_-0c8Yotac6nJn1yObX7a6ugWmBLri7qryPib_LagOXHdtWRza3lmB-us7HjvPnpTW2eZd1TOMlEvSCHSqxIucCeGK0pVtAejh0cGWDTs3HS3MX-nBQoLnr/s320/website-header-banner_1024px-x-170px.jpg" width="320" /></a></div><p>I had the opportunity and privilege to introduce Selena Delesie on the program today. It was fun to reminisce a bit because Selena and I were both in the same Foundations class for Black Box Software Testing all the way back in 2010. We also both served on the Board of Directors for AST, so we had a lot of memories and fun/challenging things to deal with over the years. Thus, it was a pleasure to introduce Selena as our first Keynote speaker. Also, part of her talk was discussed on a recent <a href="https://www.qualitestgroup.com/insights/podcast/the-testing-show-assessing-quality-practices" rel="nofollow" target="_blank">The Testing Show podcast</a>, so if you want a sample, you can listen to that :).</p><h3 style="background-color: white; box-sizing: border-box; color: #ed701a; font-family: Rubik, sans-serif; font-size: 27px; line-height: 1.2; margin: 1em 0px 0.3em; padding: 0px; text-transform: capitalize;"><img alt="Selena Delesie" class="img-responsive" src="https://pnsqc.org/photos/126181P.JPG" style="border: 0px; box-sizing: border-box; display: block; float: left; height: auto; margin: 5px 10px; max-width: 100%; vertical-align: middle; width: 200px;" /></h3><div>The tool that Selena and Janet Gregory put together is called the Quality Practices Assessment Model (QPAM). The idea behind this is that there are ways to identify potential breakdowns in the quality of our work. Areas we should consider are:</div><br /><ul style="text-align: left;"><li>Feedback Loops</li><li>Culture</li><li>Learning and Improvement</li><li>Development Approach</li><li>Quality and Test Ownership</li><li>Testing Breadth</li><li>Code Quality and Technical Debt</li><li>Test Automation and Tools</li><li>Deployment Pipeline</li><li>Defect Management</li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgyyfHZdTk-zrtgWdsdQDVjBM-tTA-BAm1KuO2DhMkV7458lVTp0aos3KzFqA_FNi9kMTfsviFh0QXh9Jrrt-W5_sCiuax2pQ6CctVFuI5hJChFO7vEme3EgIczrljSjtAQ-qY_axBI2IYUIiHj0QvF32gGgpwWMBcyHi6xjgvqHL7s8JDuxm0GnAyo37Jx" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" data-original-height="914" data-original-width="609" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEgyyfHZdTk-zrtgWdsdQDVjBM-tTA-BAm1KuO2DhMkV7458lVTp0aos3KzFqA_FNi9kMTfsviFh0QXh9Jrrt-W5_sCiuax2pQ6CctVFuI5hJChFO7vEme3EgIczrljSjtAQ-qY_axBI2IYUIiHj0QvF32gGgpwWMBcyHi6xjgvqHL7s8JDuxm0GnAyo37Jx" width="160" /></a></div><br /><div>The fascinating thing is the order and how these are identified and examined. Selena makes the case that the order in which these are presented and examined is important and by examining them in this order or weighting, the best chances for overall and lasting improvement are possible. Yes, Defect management is important but it will be less effective if more weight is not given to the previously mentioned items.</div><br />A key aspect to this is that quality is not just a technical issue, it's also a social issue and it should not be dealt with in isolation. Selena introduces us to a group code-named "Team Venus" and identifies many of the issues they are facing and where those issues fall on the ten quality aspects. The key element is that each area is looked at holistically and in conjunction with the other areas, not in isolation. As anyone familiar with GeneralSystems Thinking can tell you, there is no such thing as a standalone and isolated change, any modifications made will have ripple effect. It's also critical to realize that a process alone is meaningless if the overall values are not solid or agreed upon. <div><br /></div><div>In the ten quality aspects that Selena referenced, there are four quadrants/dimensions to consider:<br /><br /><ul style="text-align: left;"><li>Beginning</li><li>Unifying</li><li>Practicing</li><li>Innovating</li></ul></div><div><br />What I like about considering these as quadrants is the fact that these areas are not separate from each other but they are dependent on each other. Some areas of the ten practices will be closer aligned with a particular dimension. Additionally, it's common for teams to spend more time in a given quadrant/dimension for the ten areas than others. I like the diagram Selena uses that looks like a spider web. The center of the web means that that is an informational or foundational level, and the farther out from the center, the greater the expertise and experience. Ideally, of course, all of the aspects should be on the outer rim of the spider web but in practice, there will be color splotches in all four of the dimensions. That is normal and should not be discouraged, especially since each new team member will typically need to start from zero.<br /><br />For those interested, the book and full model example for Team Venus is available in "<a href="https://leanpub.com/qualityassessmentpracticesmodelqpam" rel="nofollow" target="_blank">Assessing Agile Quality Practices with QPAM</a>" so if you want to learn more, go there.</div>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-56277164783246086222023-10-09T08:15:00.004-07:002023-10-09T08:15:59.631-07:00Amping It Up!: Back at the Pacific Northwest Software Quality Conference<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqNgYuc5qGpzRRi97sJ_VIvv7RKbO9ouUKrzH9FvAVxFpF835AAqramPWt4xSddfE15mPcvrKocIboPoJ4hyphenhyphenRJ_LtEK59AAWtPShQFNvKg2G4pFuNK4u9M5XDIxH9_nRUC-rIF6qbRe3V8l78T4Mp7JrIINZIGyQSArYwgBqpqNh0kiLegoRS4PUzwQW_I/s1024/website-header-banner_1024px-x-170px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="170" data-original-width="1024" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqNgYuc5qGpzRRi97sJ_VIvv7RKbO9ouUKrzH9FvAVxFpF835AAqramPWt4xSddfE15mPcvrKocIboPoJ4hyphenhyphenRJ_LtEK59AAWtPShQFNvKg2G4pFuNK4u9M5XDIxH9_nRUC-rIF6qbRe3V8l78T4Mp7JrIINZIGyQSArYwgBqpqNh0kiLegoRS4PUzwQW_I/s320/website-header-banner_1024px-x-170px.jpg" width="320" /></a></div><br />It's that time of year once again. I'm excited to be at PNSQC and in a new location. We are at the University Place Hotel and Conference Center, which is part of Portland State University. This is the first time PNSQC has been here but not the first time I've been here. A few years back, in 2018, they had run out of rooms at the primary hotel, so I had to find someplace else to stay. <p></p><p>I happened upon University Place, and while it was a walk from the previous venue at the Portland World Trade Center, it was a comfortable hotel, and I liked my stay. As we were looking for different places to hold the conference this year I mentioned my experience and thought it would make for an excellent possible venue. And thus, here we are. It wasn't solely up to me but I definitely put in a good word ;).</p><p>This year's conference is a strange feeling for me, as it is one in which I am feeling unsure and unsteady after many years. I am at the tail end of a contract I've been working for several months. In a few weeks, barring any changes or new contracts, I will be out of work again. Thus I am attending this conference from a different headspace than usual. Previously, I was looking for small tips I could bring back to do my current job. This year, part of me feels the need for a literal reinvention. I'm having that uneasy feeling that I have too many potential options and not enough time to consider them all, so this year's talks are probably going to be focused on my current mental state. If you see me attending talks that may seem different or out of character, that's why.</p><p>Additionally, this year had an additional challenge and excitement in that I was the Marketing Chair for PNSQC this year. If you felt that there was either too much or not enough of a marketing presence for the conference, I get both the praise and/or the blame. Either way, for those who are here and for those following along, I'm happy you are here.</p><p> </p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-48486535107193731542023-05-24T11:09:00.005-07:002023-05-24T11:09:39.662-07:00The Different Dimensions of Accessibility: Cognitive: Training for Accessibility (Part 6)<p>While often overlooked, cognitive disabilities are perhaps one of the most common yet least seen of the disability families we have discussed. Cognitive disabilities are varied and present some challenges that can affect how navigate and interact with online content. </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-YnzDPtKaAn-hdrC-hjdUcFQd96d2hcJ3_R58Y_x1SYXhEKJllBLFSUUxHTFSpTYI2XNZePiIq1E_ZxsflUK60S6eokMoM1FGW_IiMjEVJWXjFG-Bg3Z3Utq6n4by2letEQQ3V57mXqEefWVeSR3IT7XPKFhZCobUx5XxgeMt3dp5-8U_zHvyc68RTg/s572/Screen%20Shot%202023-05-24%20at%2010.29.34%20AM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="word cloud for cognitive disabilities: words include cognitive, disability, area , attention , experience, fatigue , hemingway, memory , situation , stress , user" border="0" data-original-height="342" data-original-width="572" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-YnzDPtKaAn-hdrC-hjdUcFQd96d2hcJ3_R58Y_x1SYXhEKJllBLFSUUxHTFSpTYI2XNZePiIq1E_ZxsflUK60S6eokMoM1FGW_IiMjEVJWXjFG-Bg3Z3Utq6n4by2letEQQ3V57mXqEefWVeSR3IT7XPKFhZCobUx5XxgeMt3dp5-8U_zHvyc68RTg/w320-h191/Screen%20Shot%202023-05-24%20at%2010.29.34%20AM.png" title="word cloud for cognitive disabilities" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">word cloud for cognitive disabilities: words include cognitive, disability, area, attention, experience, fatigue, Hemingway, memory, situation, stress, user</td></tr></tbody></table><br /><p><br /></p><p>Cognitive disabilities cover a broad range of conditions. Memory, attention, comprehension, and problem-solving are all affected, and for some people, all of the boxes are checked. </p><p><b>Primary Disabilities</b></p><p><b>Down Syndrome:</b> a genetic condition where people have an extra copy of chromosome 21. Cognitive impairments, delayed development, and distinctive physical features are often seen in this condition. Levels of cognitive impairment can vary from mild to severe.</p><p><b>Dyslexia:</b> a learning disability that can affect reading, spelling, and language comprehension. They may swap letters or read certain characters out of order or need to step back and slowly read the text to process what they are seeing.</p><p><b>Dyspraxia:</b> Also referred to as Developmental Coordination Disorder. While often considered a mobility disability, dyspraxia can also have an effect on the actions of writing and typing and cause stress to cognitive functions as well.</p><p><b>Traumatic Brain Injury: </b>A sudden impact to the head such as a concussion or bone breakage in the skull can cause long-term issues with memory, attention, and problem-solving.</p><p><b>Fetal Alcohol Spectrum Disorders: </b>people exposed to pre-natal alcohol in high amounts during their development in pregnancy can develop a range of disabilities. these can affect memory, attention, impulse control, and social skills.</p><p><b>Secondary/Situational Disabilities</b></p><p>Cognitive disabilities are perhaps one of the areas where situational disabilities may be the most prevalent. There are numerous situations that can put a strain on our mental faculties and can cause us issues that are not necessarily long standing. Many of these share similarities but these are all situations any of us could find ourselves dealing with.</p><p><b>Cognitive Overload:</b> stressed, fatigue, or just having a million things coming at us all at once. These situations can make it more difficult for us to process information and make decisions.</p><p><b>Reduced Attention Span: </b>again, stress and fatigue can contribute to this, as well as side effects of medication or recreational alcohol or drug consumption. </p><p><b>Memory Impairment: </b>there can be a lot of situations that lead to this. Again, stress and fatigue but also just being in an unfamiliar or foreign environment, especially one where the language that is spoken/written is foreign to you. </p><p><b>Design Considerations for Cognitive Disabilities</b></p><p>When we want to address Accessibility and accessibile design for cognitive issues, it's important to realize that each area is unique, and individuals within these categories can have varying strengths, challenges, and needs. This is definitely the area where one size will not fit all and a lot more judgment calls are required. Still, here are several suggestions that should help considerably and make the experience better for all users.</p><p><b>Avoid Complex Navigation: </b>having multiple layers of nested content or menus of menus is not ideal. It's easy to lose track of where a user is and then trying to get back to that location could be challenging if not impossible. Try to limit menus to one layer at maximum if possible.</p><p><b>Avoid Overwhelming With Information:</b> A wall of text is not welcoming to anyone and for people with cognitive disabilities it is even more daunting. Try to use space, break up large paragraphs, and aim for a simplicity of message where it makes sense. </p><p><b>Allow for Longer Time Limits:</b> Aim to make it so that timers or time pressures are minimized. Some systems require this but make it so that the value can be adjusted reasonably</p><p><b>Provide Alternative Means for Content Display:</b> Have clear labels and do not assume that users will get by inference what is meant by using a color in isolation or a metaphor that may be well known but some people may not be aware of that meaning. Provide clear labels and alternatives that will provide more context if necessary.</p><p><b>Avoid High Contrast or Flashing Content: </b>this is an example of where a suggestion that works well for one group could be a distraction or a problem for another. High contrast screens that help those with vision issues could be too stressful to read or look at for people with cognitive disabilities. Having the ability to easily adjust the contrast can be a big help. Overly aggressive flashing and strobing is just a bad approach overall, IMO.</p><p><b>Use fonts that are not overly busy or decorative: </b>font choice can have a profound effect o the readability of online text and for people with cognitive issues, overly fancy fonts can be a struggle to read. aim to make sans-serif fonts and typical typefaces a standard or make it easy for these typefaces to be selected. <br /><br /></p><p><b>Write For Everyone (and Learn to Love Hemingway):</b> this is perhaps one of my favorite cognitive tools to use, <a href="https://hemingwayapp.com/" rel="nofollow" target="_blank">the Hemingway Editor</a>. I get occasional raised eyebrows when I mention that I think of Hemingway as an Accessibility tool but I really see it as such. Hemingway is designed to help you improve writing from a clarity standpoint and also to help fix/avoid overly complex prose or impenetrable walls of text. You can also set a reading comprehension level and see how well your writing falls into that level (or doesn't).</p><p>As I stated at the beginning, cognitive disabilities are perhaps the most common and also the most neglected because we don't necessarily "see' them. Understanding how many there are and how varied they are, we can see a lot of areas that we can do better and can look out for to help make the experience of being online and using digital products better and more usable. Again, it doesn't take much in this stressful and fast-moving world to feel overwhelmed. These additional Accessibility features might be the ticket to making better interfaces and experiences for all of us.</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-91153399903187459222023-05-22T10:10:00.003-07:002023-05-22T10:10:51.627-07:00The Different Dimensions of Accessibility: Mobility: Training for Accessibility (Part 5)<p> When we think about accessibility and people with disabilities, mobility is the area that we are most familiar with and the most obvious of disabilities. We also refer to these as physical or motor disabilities. Most of the accessibility options that we see in public and in infrastructure are specifically for mobility disability. This is also the disability family we are most familiar with and can most readily see. </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgCXWzlGEZouAb80Ofo60X5CIuZlXm7IcI6z0LHbzERDk_wlJ2Kw5EWDSBCy3Xv7Jf8fz-_AeDUAZGMl7AogXSV-J7mRg9i0CJn5jW6MLwh2UTKxpstg5DrIxDL6aA0i33AgAXZNQD5AbpfkheqBgR3Yhg6-lqdI-Ygha9lh3bOeFYDu5F28y4l24S7A/s526/Screen%20Shot%202023-05-22%20at%2010.08.04%20AM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Word cloud related to mobility and motor disabilities. Words include: hand, individual, arm, system, finger, limb, mobility, situation, paralysis" border="0" data-original-height="343" data-original-width="526" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgCXWzlGEZouAb80Ofo60X5CIuZlXm7IcI6z0LHbzERDk_wlJ2Kw5EWDSBCy3Xv7Jf8fz-_AeDUAZGMl7AogXSV-J7mRg9i0CJn5jW6MLwh2UTKxpstg5DrIxDL6aA0i33AgAXZNQD5AbpfkheqBgR3Yhg6-lqdI-Ygha9lh3bOeFYDu5F28y4l24S7A/w320-h209/Screen%20Shot%202023-05-22%20at%2010.08.04%20AM.png" title="Word cloud related to mobility and motor disabilities." width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Word cloud related to mobility and motor disabilities.</td></tr></tbody></table><br /><p><br /></p><p>There are many aspects that create unique challenges when it comes to mobility disability. On one hand, you could have someone with paralysis from the waist down with a spinal injury. this person will need to use a wheelchair to get around but they have full use of their arms, hands, and fingers, as well as eyesight and hearing. In the digital world sense, they are as able-bodied as anyone else. That is not the case for a person with severe arthritis, cerebral palsy, or paralysis that includes their arms or hands. In addition, limb amputation or missing limbs or parts of limbs create challenges in interacting with devices. </p><p><b>Primary/Persistent Mobility Impairments</b></p><p>There are various mobility or motor disabilities that fall under the category of primary or persistent issues. </p><p><b>Spinal Cord Injury: </b>Individuals with spinal cord injuries may experience paralysis or limited mobility in their limbs. This can range from paralysis in their legs only but full control of arms, torso, hands, neck, etc., and then variations that also include fingers, hands, arms, neck, etc. </p><p><b>Cerebral Palsy: </b>Cerebral palsy is a neurological condition that can result in difficulty with moving or coordinating limbs and extremities. Fine motor control or the ability to use fingers independently may be limited or not possible. </p><p><b>Muscular Dystrophy: </b>This is a range of genetic conditions that often result in muscle weakness or limited dexterity due to difficulty in movement. It's a progressive condition that gets worse over time.</p><p><b>Multiple Sclerosis:</b> This is a disease caused by an attack on the central nervous system, specifically the myelin that coats the nerves. It can impact the brain, spinal cord, and optic nerves. MS is an issue for visual and cognitive disabilities as well as mobility.</p><p><b>Arthritis: </b>This is inflammation and pain in the joints. Holding onto items or typing on individual keys with multiple fingers or moving around and navigating a touch screen can be painful.</p><p><b>Amputation: </b>A loss of limbs due to amputation is a significant issue when it comes to inputting information or navigating on systems, especially those designed around a keyboard and mouse or touch screens.<b> </b></p><p><b>Tremors/Convulsions: </b>Tremors can be caused by a number of conditions, Parkinson's Disease being a common and well-known example. This makes fine movements or steady controlled touch or sliding motions challenging.</p><p><br /></p><p><b>Secondary/Situational Mobility Impairments<br /><br />Injuries: </b>fractures to the arm, hand, or fingers can hinder the ability of an individual to perform tasks that they might otherwise be able to were they not injured. The same goes for post-surgical procedures. These are situations that can render our extremities in a limited range of motion or in some cases no motion at all. On the plus side, we may be back to normal in a few weeks or months but during that injury/recovery period, we may have little to no use of our arms, hands, or fingers.</p><p><b>Otherwise Engaged Hands: </b>This may sound silly but<b> </b>numerous situations would fall into the category of secondary or situational "mobility impairment". Some of these situations could be as temporary as "my hands are full" or "I'm driving a vehicle". We don't often think of these as impairments but they are situations where the user may not be able to use their hands or otherwise interact with a product when necessary. </p><p><b>Adapting to Mobility Issues</b></p><p>There are a range of methods to work with that will allow individuals who have mobility issues to better interact with their devices. There are numerous examples of methods and tools that can help with mitigating mobility issues such as:</p><p><b>Alternative Input devices: </b>These can range from joysticks, to blow tubes, to software that tracks eye movement, to capacitance devices that can be held in the mouth, to large button arrays that will allow individuals to more effectively press and order button pushes to enable certain command sequences.</p><p><b>Voice Recognition Software:</b> In certain cases, controlling the system with voice directives will allow hands-free operation. Additionally, screen readers can also be helpful with mobility accessibility.</p><p><b>Ergonomic devices: </b>These can be specialized or split-level keyboards, larger buttons, or alternative layouts. Large trackballs are also commonly used as input devices where using a mouse would not be possible.</p><p><br /></p><p>Some additional factors worth considering are:</p><p>- Make it possible for actions that can be clicked to have large buttons on the screen or to have the ability to access via the keyboard (press Tab to highlight the item and press Enter to perform the desired button click)</p><p>- make it possible to allow for multiple keystrokes to be seen as a more complex action or one where the need to hold down multiple keys simultaneously can be performed in another manner.</p><p>- use dictation software or other means to allow the user to speak workflows and have the system respond to them.</p><p>- provide space on the screen so that form fields can be accessed and do not require the user to have to pinpoint exactly where they need to focus their attention.</p><p>- ensure that workflows can be accomplished without the need for a mouse or multiple nested steps.</p><p>- make it possible for users to set longer timeouts if they are needed at all as many mobility issues may require a longer time to accomplish the steps necessary.</p><p>Individuals with mobility or motor disabilities can have a variety of issues and therefore may need to have a variety of tools to enable them to perform key tasks and interact with online content. It may be a challenge to have a testing situation where all of the possibilities can be tested but there are many ways to simulate these scenarios. It may take some creativity and imagination but I strongly encourage modeling and thinking about how someone would interact with your systems and applications were they unable to have full use of or full control of their hands. Learning to adapt to and putting yourself into these situations will likely provide you with many suggestions you can bring back to the design and code teams to help ake these interactions better for people with mobility issues and by doing that, help make products that are more usable for everyone.</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-73900793036081239452023-05-20T11:47:00.074-07:002023-05-20T14:56:22.390-07:00Yes, you can test anywhere, even the gym<p>Taking a short break from the Accessibility content to ask some “what if” questions. Note, I’m not doing this to shame anyone or make broader comments, just to show that interesting things can be found everywhere :).</p><p>Thankfully, my gym is not very expensive, and during this "semi-enforced woodshedding period" I am getting to experience, I can still go to my local gym and get some much-needed body and mind adjustment. In any event, there's a lot of equipment in the gym with a mix of free weights, machines, cardio, and other apparatus to take advantage of.</p><p>With that, here’s my gym’s kettlebell rack:</p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEK9XG29R5OkMvqVSd84-L2fljR51FGvUUfNw0aGzYoLJqGZF2BtMvVqmX0yF-XfDyK9IRMLgY7A9WO7EFtDyvs0CZjp4NE0jtkfKcMQ9pgWLjfnCR1C8zQHFwVKu1ktShJrpUTYbWwnrVcy9oFCXXOBCC8bMwiSeD_5c9TTU-qruKkuqvppE7E0xzDA/s4032/IMG_1208.HEIC" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="My Gym's kettle bell rack, with medicine balls and slam balls as well" border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEK9XG29R5OkMvqVSd84-L2fljR51FGvUUfNw0aGzYoLJqGZF2BtMvVqmX0yF-XfDyK9IRMLgY7A9WO7EFtDyvs0CZjp4NE0jtkfKcMQ9pgWLjfnCR1C8zQHFwVKu1ktShJrpUTYbWwnrVcy9oFCXXOBCC8bMwiSeD_5c9TTU-qruKkuqvppE7E0xzDA/w240-h320/IMG_1208.HEIC" title="Kettlebel rack in gym" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">My Gym's kettlebell rack, with medicine balls and slam balls as well</td></tr></tbody></table></span></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">And over here is a bigger apparatus with a number of pulleys and a heavy bag. </span></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"><br /></span></p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilkY3iq4inXZ86EuFJVsS_NKqatqJgJJTU0FgEfLL6ZlVaQH3Eg2oHBufdABzPoqzPNPpgk7GMaGmxdEbIfbkNZdUxBTLtu5x4LbML31ONy6yogcnn5efF5IrssI4xp1ovCL77gg23uBZR7PHMyE6MGpbPp0xH-oGsduyVzXyo27w5gHoQmfBg9p2mxg/s4032/IMG_1209.HEIC" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Separate equipment rack with pulleys, rope, and heavy bag" border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilkY3iq4inXZ86EuFJVsS_NKqatqJgJJTU0FgEfLL6ZlVaQH3Eg2oHBufdABzPoqzPNPpgk7GMaGmxdEbIfbkNZdUxBTLtu5x4LbML31ONy6yogcnn5efF5IrssI4xp1ovCL77gg23uBZR7PHMyE6MGpbPp0xH-oGsduyVzXyo27w5gHoQmfBg9p2mxg/w240-h320/IMG_1209.HEIC" title="equiment rack with heavy bag" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Separate equipment rack with pulleys, rope, and heavy bag</td></tr></tbody></table></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"><br /></span></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">What it also has on it are these QR codes. </span></p><p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjimcuFaaIfiHhWSu3BFASxdIrfL3P1hFOQpH5djJz81TaJEO5R5G1wtMpnkDfSSzfHLmTiFMdA09x1od1mG_jSH48t4g1XsnljkPeflGr0ak860RryiMEX_71HETFYfYudS7oFJJntoiB7BWhzSf_M1fNoJWr5WCvMFG_MtKJ63ahpyVQAdCtdhc12dA/s4032/IMG_1212.HEIC" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="QR codes on the heavy bag rack" border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjimcuFaaIfiHhWSu3BFASxdIrfL3P1hFOQpH5djJz81TaJEO5R5G1wtMpnkDfSSzfHLmTiFMdA09x1od1mG_jSH48t4g1XsnljkPeflGr0ak860RryiMEX_71HETFYfYudS7oFJJntoiB7BWhzSf_M1fNoJWr5WCvMFG_MtKJ63ahpyVQAdCtdhc12dA/w240-h320/IMG_1212.HEIC" title="QR codes on the heavy bag rack" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">QR codes on the heavy bag rack</td></tr></tbody></table></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">These are used for a variety of functions, including bringing up tracking and exercise routines to use. One of them is for the heavy bag… which makes sense, as there is a heavy bag here.</span></p><p><br /></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">But here’s something interesting. What other code is here?</span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGUCqIMTkdBmifDbhatTsdyh11Je0a8Bb0eGgJnDiUGXvKbyZ9zhTqbz94FPWImCrXe5akcePKVbhNaKRNPzzioOuBv7TRly1uoUHjaM7IE3qCwBiOe3Gx4dB36hrysIeTbdHDC0nHm6FPt7rwHeB7thfIO_ugekPtmtIntZGvgNgx_stXPN4-sDCXg/s4032/IMG_1207.HEIC" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Connect Kettlebell QR Code" border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKGUCqIMTkdBmifDbhatTsdyh11Je0a8Bb0eGgJnDiUGXvKbyZ9zhTqbz94FPWImCrXe5akcePKVbhNaKRNPzzioOuBv7TRly1uoUHjaM7IE3qCwBiOe3Gx4dB36hrysIeTbdHDC0nHm6FPt7rwHeB7thfIO_ugekPtmtIntZGvgNgx_stXPN4-sDCXg/w240-h320/IMG_1207.HEIC" title="Connect Kettlebell QR Code" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Connect Kettlebell QR Code</td></tr></tbody></table><br /><p><br /></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Huh. A kettlebell code. Okay, so let me scan that and pick up… oh, wait!</span></p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBPeuYHR_dfVxfwaKLOKdpawZgXcJvXz71LMeh4LMS-iJ_Rk3MZfbu7dB66sfuIwZMOjq5Dpc-JRVpTVwy9nziK3dpu7vlKxxx3Nk6p8W13rXQ_guUiHR3lFpQm-vFIeJD7QGZiRpOSN0gi6CS9xtAkimETSpKcpqx-OqA2PtjK_egny5Ji5dt1UGQsA/s4032/IMG_1210.HEIC" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="the kettlebell rack is on the other side of the gym" border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBPeuYHR_dfVxfwaKLOKdpawZgXcJvXz71LMeh4LMS-iJ_Rk3MZfbu7dB66sfuIwZMOjq5Dpc-JRVpTVwy9nziK3dpu7vlKxxx3Nk6p8W13rXQ_guUiHR3lFpQm-vFIeJD7QGZiRpOSN0gi6CS9xtAkimETSpKcpqx-OqA2PtjK_egny5Ji5dt1UGQsA/w240-h320/IMG_1210.HEIC" title="the kettlebell rack on the other side of the gym" width="240" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Turning from the kettlebell QR code to see the kettlebell rack, on the other side of the gym</td></tr></tbody></table><br /><p>That’s quite a distance between the kettlebell code and the actual kettlebells. Is there a problem here?</p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Again, I’m approaching this as a “what if” and trying to think why this would be arranged this way and it’s not as ridiculous as it looks on the surface. This gym has a sister facility in the East Bay (actually, several) and the one I attend from time to time has both of these pieces of equipment. There, these pieces are facing each other and in that case, having the QR code on the pole and turning around to grab the kettlebell makes perfect sense. However, my resident gym layout doesn’t allow for that, so they had to split these pieces of equipment up.</span></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">My point is, there may be perfectly good reasons why something is set up the way it is. Whether or not something is an issue is up to interpretation. <i>I definitely don’t think the distance between the two is a feature.</i> Still, the fix could be easy and inexpensive (heck, next to free). Merely taking a picture of the QR code, printing it, and taping it to the kettlebell rack would be a huge benefit. Ordering a more permanent sticker I could not imagine costing more than a couple of dollars.</span></p><p><span style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">So there you go, weird and random quality and testing musings on a Saturday morning. You’re welcome :).</span></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-87378633983132207582023-05-18T15:12:00.001-07:002023-05-18T15:14:55.157-07:00The Different Dimensions of Accessibility: Auditory: Training for Accessibility (Part 4)<p> I was hopeful yesterday when I was making my post on the dimensions of accessibility that I'd be able to cover all four of the main areas in one blog post. I could have if I wanted to make a post that was exceptionally long but that's not my point in doing this. Instead, I realized that it made sense to break the main areas up and look at them independently and consider the realities that each area faces, both in the way of chronic/persistent conditions, as well as those that are transient/situational. If you are enjoying this series, thanks for coming along for the ride, there are lots more coming in the next several days.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJEG2-w0iNn4BKl2sHRDcixBgOCXGsrt0S94M3mRNoppFfzS9Qdr1iH4FB0L3lAiWe75yUx8CGoTkReVWZVOopcdSyH_3cuqUuOMEzR_slYvpRBm8OZdu1rQydKn1ZwrAZen4VIrL8CfUdWFvvD--p9EFsCaZiHRjlBxu6hdkVEbHKUKdjZb0dlS6q0w/s522/Screen%20Shot%202023-05-18%20at%203.07.10%20PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Wordcloud for Auditory Accessibility: Keywords include: sound, difficulty, auditory accessibility, hearing, individual, disease, auditory information, person, Ménière's" border="0" data-original-height="373" data-original-width="522" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJEG2-w0iNn4BKl2sHRDcixBgOCXGsrt0S94M3mRNoppFfzS9Qdr1iH4FB0L3lAiWe75yUx8CGoTkReVWZVOopcdSyH_3cuqUuOMEzR_slYvpRBm8OZdu1rQydKn1ZwrAZen4VIrL8CfUdWFvvD--p9EFsCaZiHRjlBxu6hdkVEbHKUKdjZb0dlS6q0w/w320-h229/Screen%20Shot%202023-05-18%20at%203.07.10%20PM.png" title="Wordcloud for Auditory Accessibility" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Wordcloud for Auditory Accessibility: Keywords include: sound, difficulty, auditory accessibility, hearing, individual, disease, auditory information, person, Ménière's</td></tr></tbody></table><br /><p><br /></p><p><b>Auditory Accessibility</b></p><p>When we are discussing auditory accessibility, we are specifically looking at challenges faced by individuals with hearing impairments. Just as visual impairment is a spectrum, so is auditory impairment. Additionally, there are both chronic/persistent issues that we consider to be primary issues as well as situational challenges that may be transient but certainly matter at that moment.</p><p><b>Chronic Auditory Challenges</b></p><p><b>Deafness:</b> This term is not as cut and dry as many would believe. Just like blindness does not mean a 100% loss of sight, deafness does not necessarily mean a 100% loss of hearing. The term "deaf" refers to individuals with significant or profound hearing loss. What is significant or profound? A medical Audiologist would consider the severity of hearing loss in decibels (dB). In other words, at what decibel level would a sound have to be for a person to hear it? I am not an audiologist, so do not take what I am saying as gospel but the following values come from the <a href="https://www.asha.org/public/hearing/degree-of-hearing-loss/" rel="nofollow" target="_blank">American Speech-Language-Hearing Association (ASHA)</a>. <br /></p><table class="table table-bordered" dropzone="copy" style="background-color: white; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 1px solid rgb(221, 221, 221); color: #6e6259; font-family: urw-geometric; font-size: 16px; margin-bottom: 20px; max-width: 100%; width: 730px;"><tbody style="border-radius: 0px !important; box-sizing: border-box;"><tr style="border-radius: 0px !important; box-sizing: border-box;"><th style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: left; vertical-align: top;">Degree of hearing loss</th><th style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; line-height: 1.42857; padding: 8px; text-align: left; vertical-align: top;">Hearing loss range (dB HL)</th></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">Normal</td><td align="center" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;" valign="top">–10 to 15</td></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">Slight</td><td align="center" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">16 to 25</td></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">Mild</td><td align="center" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">26 to 40</td></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">Moderate</td><td align="center" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">41 to 55</td></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">Moderately severe</td><td align="center" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">56 to 70</td></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">Severe</td><td align="center" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">71 to 90</td></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">Profound</td><td align="center" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;">91+</td></tr><tr style="border-radius: 0px !important; box-sizing: border-box;"><td colspan="2" style="border-radius: 0px !important; border: 1px solid rgb(221, 221, 221); box-sizing: border-box; cursor: default; line-height: 1.42857; padding: 8px; vertical-align: top;"><cite style="border-radius: 0px !important; box-sizing: border-box;">Source: Clark, J. G. (1981). Uses and abuses of hearing loss classification. Asha, 23, 493–500.</cite></td></tr></tbody></table><p>To put this into perspective, a person with normal hearing would be able to distinguish sounds within the -10 to 15 dB range, while a person with severe or profound hearing loss would need to have the same sound ramped up to 71dB or above 91dB to hear the same sound. Those people within the severe to the profound range are what we consider to be "deaf". These are people for whom traditional methods of using devices like hearing aids or cochlear implants will not help.</p><p><b>Hard of Hearing:</b> This is a broader category and may include people on any level of the auditory spectrum. For that matter, hard of hearing can absolutely be situational. People with mild or moderate hearing loss may struggle to understand or interpret sounds in noisy environments or may be limited to the frequencies that they can hear. We can also include conditions such as Tinnitus and Ménière's Disease. Tinnitus is the perception of sound where there is a ringing, buzzing, or hissing sound in the ears. It can prove to be a distraction when. auditory information is present. Ménière's disease is a disorder of the inner ear that affects both hearing and balance. People with Ménière's disease often describe experiencing vertigo, fluctuation of hearing levels, experiencing tinnitus, and a feeling of pressure inside their ears.</p><p><b>Auditory Processing Disorders:</b> these are difficulties in processing and interpreting auditory information by the brain, even when the person experiencing them has normal hearing sensitivity. There are a variety of these disorders. They may include:</p><p></p><ul style="text-align: left;"><li><b>Auditory Discrimination Disorder:</b> difficulty in differentiating similar sounds ('P', 'B', and 'D' may sound similar). </li><li><b>Auditory Figure-Ground Discrimination Disorder:</b> difficulty understanding speech/sounds in the presence of background noise or many sources of sound.</li><li><b>Auditory Sequencing Disorder:</b> difficulty understanding and/or recalling the sequence of sounds or words.</li><li><b>Auditory Integration Disorder:</b> difficulty localizing or integrating sounds coming from different directions.</li><li><b>Auditory Closure Disorder:</b> difficulty filling in details of missing or incomplete sound information.</li><li><b>Auditory Memory Disorder:</b> difficulty recalling spoken information or sequences of instructions. </li><li><b>Auditory Attention Disorder:</b> difficulty concentrating on sound/information presentation and keeping that focus for an extended period.</li></ul><p></p><p><b>Situational Challenges</b></p><p>While the above examples could be seen as being persistent or chronic issues, any of them are also situational or temporary. More common examples of situational auditory issues would include:</p><p><b>Noisy Environments:</b> Background noise in public spaces, workplaces, or crowded areas. My favorite example of this is trying to take a phone call in the middle of a rock concert. That's gijg to be an issue for just about everyone, not just hearing-impaired individuals.</p><p><b>Poor Audio Quality:</b> As a podcast producer, I have had occasions where the recordings we had to work with were... not optimal. In some cases, they were downright bad because the technology we had at the time was just not up to the task but we had to run with it anyway.</p><p><b>Multitasking and Distraction:</b> having to divide attention between numerous audio sources.</p><p><br /></p><p>So that's a pretty big list of things to have to consider. How do we code and test for accessibility in these situations?</p><p><b>Captions and Transcripts:</b> Provide accurate and synchronized captions or transcripts for audio and video content. Many services do this automatically and the results vary. Still, having a mostly correct transcript is better than not having one at all but if possible, provide a sequenced file that can be displayed in time with the information and that has been proofread and is as close to the audio as possible.</p><p><b>Volume Controls:</b> allowing users to amplify the sound to their specific needs and levels.</p><p><b>Visual Cues and Alerts:</b> Do not rely solely on auditory cues. Create visual options, such as flashing light, varying color or brightness for icons, or allowing for vibration through the mouse or keyboard, if possible.</p><p><b>Clear and Concise Content:</b> where possible, provide simple and clean audio tracks. Avoid the background music if it can be seen as distracting, or allow for an option to separate the vocal track so that it doesn't compete with other sounds.</p><p><b>Avoid Audio-Only Interactions:</b> Minimize interactions that are specifically sound driven. Make text-based or visual alternatives if possible.</p><p><b>Consider Multimodal Options:</b> incorporate sign language interpreters, transcripts, or visual aids for presentations, conferences, or online events.</p><p><br /></p><p>Sometimes, addressing auditory accessibility may conflict with other accessibility areas. There is no one-size-fits-all approach here. Changes made for auditory accessibility may not be ideal for visibility, mobility, or cognitive accessibility. This is where we have to make judgment calls and not only focus on compliance from a checklist. Still, by considering and implementing appropriate design and coding, and testing for them, we can ensure individuals with hearing impairments have as much access to auditory information and content as possible.</p><p><br /></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-28333739436988010242023-05-17T07:57:00.002-07:002023-05-17T07:57:35.201-07:00The Different Dimensions of Accessibility: Visual : Training for Accessibility (Part 3)<p>There are many ways in which we have made great strides in focusing on accessibility. The tools we have at our disposal to both allow for information to be accessible and the tools that are available to help us develop for, test for, and advocate for accessibility are growing all the time. It's an area that can be as deep and wide as you want to make it.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfejcXr1cVJDDpU6lwmpXs6pAcZg7DByqN3JKS222JmBZaxMiRfPqlW8S_39eZ5dkthjetHLmwSF5Oy1dLajw_7KNhopI7ybYRbj55_QMzf31lME2iN8aicnIohJcMMiMKBFgLiPfaQHMd6l4FoFJZ84PR8Wt0fsiZXj6xkf8yjyTE12OlgH7MB85YVA/s535/Screen%20Shot%202023-05-17%20at%207.54.54%20AM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Word cloud for Visual Accessibility issues. Keywords used: Content, device, eye, images, accessibility, user, visual accessibility, contrast, fact, issue." border="0" data-original-height="358" data-original-width="535" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfejcXr1cVJDDpU6lwmpXs6pAcZg7DByqN3JKS222JmBZaxMiRfPqlW8S_39eZ5dkthjetHLmwSF5Oy1dLajw_7KNhopI7ybYRbj55_QMzf31lME2iN8aicnIohJcMMiMKBFgLiPfaQHMd6l4FoFJZ84PR8Wt0fsiZXj6xkf8yjyTE12OlgH7MB85YVA/w320-h214/Screen%20Shot%202023-05-17%20at%207.54.54%20AM.png" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Word cloud for Visual Accessibility issues. Keywords used: Content, device, eye, images, accessibility, user, visual accessibility, contrast, fact, issue.</td></tr></tbody></table><p>One factor that gets overlooked, however, is. that accessibility is not a one size fits all problem. In fact, what may work well as an accessibility fix for one issue may be totally inadequate for another. When we discuss accessibility, we typically group these issues into four main areas: visual, auditory, mobility, and cognitive. We can also consider the fact that there are levels of barriers faced depending on the severity and permanence of a particular disability. These range from total to partial, everyday to temporary, and even situational, where the environment a person is in may benefit from accessibility features that would not be necessary were they not in that particular environment at that time.</p><p>Today I'm going to focus on the area that tends to get the most attention, which is visual accessibility.</p><p><br /></p><p><b>Visual Accessibility</b></p><p>There is a broad range of visual disabilities and impairments that people deal with. These can range from diminished vision and the way that light hits the eyes. There are a variety of visual challenges people can deal with at varying levels.<br /></p><p><b>Persistent (or Chronic) Issues</b></p><p>At the top end of the spectrum are people who deal with complete or profound blindness. Being blind is not necessarily the total absence of light or color (for some, it is) but there are conditions where the inability to get a clear focus on something is significant enough to be considered total blindness. Less severe but as persistent is color blindness. This is where people have difficulty seeing a specific color or picking different colors from one another. In a world where color combinations are often used to impart meaning, this can lock out certain people or at the least make the intended message ambiguous. Photophobiamakes people sensitive to bright light, so very bright backgrounds or flashing content make it challenging to look at certain pages or apps, much less navigate them.</p><p>Less severe are conditions such as near and far-sightedness as well as amblyopia (often called "lazy eye"), strabismus (misalignment of the eyes), and astigmatism (the curvature of the eye is off, resulting in distorted vision). Age also plays a factor in the flexibility of the cornea. It's why so many people have to shift to using reading glasses when they reach about age 45 (perhaps the largest market for accessibility technology is the market for reading glasses).</p><p><br /><b>Situational Challenges</b></p><p>There are also a variety of situations that people may find themselves in where their vision can be affected temporarily. eye injury, surgery, or everyday eye strain can put an everyday person with normative vision in a situation where they need to have accommodations to see effectively for a time. </p><p>Often the lighting can change in which if a device or application cannot adjust the brightness or change the size of fonts, it can become a challenge in low or bright light environments. One example that is still common is the fact that many websites are not scaled or modified to work with phones or smaller devices, making the navigation and reading of these sites difficult if not impossible.</p><p>Perhaps the most common aspect of accessibility is the use of screen readers and by saying that an application or a service allows a screen reader to work with it, that makes the system accessible. It's definitely a good start but there's much more to visual accessibility than using a screen reader.</p><p><b>Some Basic Accommodations</b></p><p>Alt Text: by including alt text with images, the users of screen readers can hear what the image is displaying and can get a better understanding of what the image is looking to convey (note: descriptive text should explain what the image would be trying to convey to a sighted user).</p><p>Color Contrast: By making it possible to either have sufficient contrast o making it possible for the user to easily adjust the contrast, we make it so that backgrounds and foregrounds don't blend together and make the site unreadable to those who would have trouble differentiating the shades.</p><p>Use clear and legible fonts: this is an art but having fonts that are easy to distinguish, contrast strongly between letters, numbers, and symbols, and use space effectively will allow for more people to better ready the content that is displayed.</p><p>Responsive Design: this is where we can resize and reorder content depending on the display being used (and specifically using and defining an agent that reflects the screen/device being used. Responsive designs allow for a better layout specific to the device displaying the information and eliminate having to resize and zoom in to key areas.</p><p>Text Resizing: this will allow the users to adjust the text size easily, either through browser settings or built-in controls on the pages themselves to allow for resizing of fonts and yet and having those resizes scale to the rest of the page elements.</p><p>Screen Reader Adaptability: It's important to make sure that the content that we want to have people access can be understood clearly and that we don't burden them with words or content that doesn't matter to them. Also, most visually impaired users will not be able to rely on a mouse for navigation. Using a keyboard or a device that effectively moves focus to different elements is critical. Also, it is important to limit the number of steps required to perform certain actions unless absolutely necessary.</p><p>Forms, Buttons, and Sliders: Many of the "eye candy" elements of web pages and apps are difficult to maneuver through when using only the keyboard or screen reader prompts. Make it possible to allow for these interactions with the least amount of interference or the necessity for detailed shortcut steps where possible.</p><p>As you can see, there are a number of avenues to consider and situations to get familiar with when it comes to dealing with visual issues. With time and practice, we can all get a better feel and understanding for these challenges and make it possible that there are ways that people can interact with our content when they can't see it the same way that we do.</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-26677547329940518922023-05-16T15:13:00.001-07:002023-05-16T15:13:15.470-07:00A Very Quick and Somewhat Incomplete History of Accessibility: Training for Accessibility: A Series (Part 2)<p>As I've been thinking about Accessibility and how I might construct training for it, I figured the History of Accessibility, at least as it relates to the United States, would be interesting. As the digital world has been with us since the end of World War II, many of the adaptations that are discussed came about after that, specifically starting with the 1960s. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhog8sI9buQH1IC5v_m2728G9Y9PN1RzbF8MLnvQChUIX9zQmt8M6yJxhuip8yB8VgEQL_AxEw2Md9_-OqlbncbkcH9nBnEB-Ntb8nVhKB1UEpYmdacbnWmbtf_OdyWmgBJADg22Koy0vpiZLhUwvmslardMqRGEXdG8k8aThutqoW56kf4Y9nCiLOZ5Q/s618/Screen%20Shot%202023-05-16%20at%203.12.18%20PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="426" data-original-width="618" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhog8sI9buQH1IC5v_m2728G9Y9PN1RzbF8MLnvQChUIX9zQmt8M6yJxhuip8yB8VgEQL_AxEw2Md9_-OqlbncbkcH9nBnEB-Ntb8nVhKB1UEpYmdacbnWmbtf_OdyWmgBJADg22Koy0vpiZLhUwvmslardMqRGEXdG8k8aThutqoW56kf4Y9nCiLOZ5Q/s320/Screen%20Shot%202023-05-16%20at%203.12.18%20PM.png" width="320" /></a></div><br /><p><br /></p><p>In the 1960s, researchers began exploring accessibility for people with disabilities. Early efforts focused on creating hardware and software adaptations for individuals with limited mobility or vision.</p><p>In 1973, the U.S. passed the <a href="https://www.hhs.gov/sites/default/files/ocr/civilrights/resources/factsheets/504.pdf" rel="nofollow" target="_blank">Rehabilitation Act and specifically Section 504 was passed</a>. This was an important step in that federally funded programs could not discriminate based on disability. Anyone who knows anything about federal programs gets that they can have a tremendous impact on software development, even back in the 70s. We see this today with the fact that lots of software get purchased by the federal government and they can often demand that certain requirements be met and companies will jump to make sure they are able to get those dollars. In this case, it made for a marketplace where accessibility technology had a chance to make money. </p><p>The 1970s and 1980s were a time where Accessibility products and projects made a big jump. IBM introduced ScreenReader in the mid-1970s. While only available for IBM computers, it was still a working example where on-screen text could be reliably converted into recognizable (albeit synthesized) speech. Apple OutSpoken provided a similar product for the Apple II, providing access to text-based applications.</p><p>The Refreshable Braille Display was another big jump, allowing users to type in to their computers and then read back the responses or actions from a flat display that would raise and lower small nubs that, when the user passed their fingers over them, would represent braille and allow blind or sight impaired users to "see" through touch, and moving to the next line would refresh all of the characters. </p><p>A variety of alternate input devices became commonplace in the 1980s. An example I remember seeing early on in my late teens was a large trackball where the spinning ball was the size of a softball with large buttons. Sip-and-puff switches allowed users the ability to control devices and access switches by inhaling and exhaling.</p><p>In addition to the refreshable Braille Display, braille translation software made it possible to print off documents that were translated to braille.</p><p>A big step for Accessibility came with the popularization of the World Wide Web and other countries also stepping in and making laws that fought against discrimination of disabilities, as well as providing incentives for developing standards to help people with disabilities get access to information.</p><p>In the U.S. the Americans with Disabilities Act (ADA) of 1990 was passed and expanded on the Rehabilititation Act of 1973, though this was more of a physical infrastructure focus. In 1998, Section 504 got some additional strength with the passage of the ADA and Section 508, which specifically dealt with requiring federal agencies to comply with regulations making information and technology more readily available to people with disabilities. </p><p>The UK passed the Disability Discrimination Act (DDA) in 1995. The EU likewise took center stage with the Web Accessibility Initiative (WAI) in 1997, sponsored by the World Wide Web Consortium (W3C). Australia introduced the Disability Discrimination Act (DDA) in 1992. </p><p>The EU took steps to establish the World Wide Web Consortium (W3C), an international standards organization. It created the Web Content Accessibility Guidelines (WCAG) 1.0 in 1999, providing a framework for creating accessible websites. Today, most people who look at and consider Accessibility look at the WCAG requirements first, because if the WGAG requirements are met, a large percentage of any other country's Accessibility laws are included there. The WGAG standard continues to be debated and refined, and additional coverage has been added over the years. WCAG 2.1 is the current fully supported version but WCAG 2.2 and later versions have been in the works for quite some time. </p><p>As time goes on and interaction with products becomes more defined by portability and touch, more accessibility features are being developed and are coming for mobile devices as well. Speech recognition, which has been an add-on for most home computer systems, is built in with most modern cell phones. Pinch to zoom and resizing are also tools that are accessible if not specifically designed for the purpose. Responsive Design is also a later development that helps considerably with accessibility. I've long said that the benefits one gets from examining agents and resizing for the display available get us 80% of the way to more accessible designs, as many of the elements needed to display the content also help with formatting data in a more accessible manner.</p><p>This is just the tip of an iceberg that could go on for a. considerable amount but this paints with a broad brush and gives some of the significant developments. I'm sure I missed several. If you feel there are some additional items or milestones I should have included, please let me know :).</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-43750016528897058082023-05-12T09:37:00.006-07:002023-05-12T11:24:23.241-07:00Training for Accessibility: What Would I Say and How Would I Say It? A Series (Part 1)<p>Without going into details, I had a conversation about the possibility of doing training related to Accessibility and Inclusive Design. I've given talks about these topics and I've delivered workshops on them as well but I've always done so from the perspective of a software tester. Granted, that provides a lot of focus on advocacy but more times than not, it really comes down to "Here's what Accessibility is, here's why it's important, and here is how you can test for it."</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_CJf6eE6zyOVabdyXdDOnTXpg1nDDEWFObeU2LPNBjLe2TEZhKhqVzZWsD2aFeXFPhlZKTUpXsXTtrj319sGZ0DgFfZleLBEZu8h8d5zBZk60TuC4TYZ0-3VYI4-a2GO-3HhuYSVEk5yERX-1uRbONxf0eZx_ZitTotlpMd9Rj0Ixf60luNYKfuOQng/s643/Screen%20Shot%202023-05-12%20at%209.35.09%20AM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="420" data-original-width="643" height="209" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_CJf6eE6zyOVabdyXdDOnTXpg1nDDEWFObeU2LPNBjLe2TEZhKhqVzZWsD2aFeXFPhlZKTUpXsXTtrj319sGZ0DgFfZleLBEZu8h8d5zBZk60TuC4TYZ0-3VYI4-a2GO-3HhuYSVEk5yERX-1uRbONxf0eZx_ZitTotlpMd9Rj0Ixf60luNYKfuOQng/s320/Screen%20Shot%202023-05-12%20at%209.35.09%20AM.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;">A simple word cloud with some aspects just from this article.</div><br /><br /><p></p><p>I am realizing that there is a much bigger conversation we could be having here and with many more people. Since I keep saying I want to focus on Accessibility going forward, maybe I should put my money where my mouth is and go on record with some things. Maybe this could become the basis for a book, a training course, or some other set of strategies that we could use and leverage. Maybe this will give me a chance to talk out some ideas while I'm in that in-between phase of being gainfully employed and in what capacity. So if you will indulge me, I'm going to embark on a series of articles surrounding my thoughts on what I would say if I were to be your Accessibility Coach and Trainer. </p><p>Ready? Let's go!</p><p><b>Defining Accessibility</b></p><p>Every first module in training tends to start with a definition so that we can all be talking from the same place and with the same ideas. To that end, I have historically focused on digital Accessibility but of course, true Accessibility goes well beyond the digital realm.<br /><br /></p><p>If we are serious about delivering Accessibility, we should start with the premise that Accessibility means we (collectively) work to create a world and an environment where <b><i>everyone</i></b>, regardless of their visual, auditory, cognitive, or mobility abilities, <b><i>can fully participate in and enjoy all aspects of a meaningful and purposeful life</i></b>. A bit heavy? Maybe but work with me here. Are we looking to say that we wish any less for those of us who are not blessed with the genetic lottery or have through no fault of our own had to deal with a physical or mental impairment? We live in a world where, too often, the normative folks get to have all the perks of their situation, while those who have disabilities often get second-level consideration, if they receive any consideration at all. </p><p>Accessibility simply means we need to work to remove barriers that prevent people with disabilities from interacting with and enjoying the opportunities that life offers us. The first step in doing that is understanding that there is a divide between those who are fully able-bodied (or the phrase I like to use, "<b>normative</b>") and those who need some adaptations to participate at the same levels. What is seen as normative is often the path of least resistance. If any effort due to physical issues has to go into doing something, then that may often be the first line of focus to see what and why that is the case. Also, let's not kid ourselves, normative is often crowd-sourced and broadly agreed upon. Over time, disabilities get focused on or dismissed because enough people pay attention to them and it becomes an everyday part of life. </p><p>If the community of Crossfit enthusiasts was to, for example, become the litmus test for the normative, we would see a lot more people suddenly identifying with and feeling as though they were dealing with disabilities. Seems a stretch, right? No pun intended here. My point is that <i>normative is what people agree it is</i> and the broader the population agrees with that, the more likely it will just be a standard part of life for those people who qualify. </p><p>Normative people don't have to think about if the world is built for them. </p><p>It just is, by default. </p><p>For those who have a significant disability (whether it be a chronic and permanent situation or one in which we find ourselves temporarily inhabiting) we start to see the world differently.<br /><br /><b>Focusing on Accessibility</b> means that we aim to identify barriers that could or would prevent people from accessing and enjoying the experiences and opportunities that others have, <i>and then work to remove or at least mitigate those barriers</i>.</p><p>In terms of the physical world, we see accommodations such as ramps leading into buildings that allow wheelchairs or walkers the ability to move effectively. We see and feel braille in items such as check-out kiosks and ATM machines, crossing signals, etc. We see closed captioning for the hearing impaired. All of these are accommodations that we have come to expect and consider part of everyday life but many places and organizations are not set up for this. In many ways, that is understandable. It would be tremendously expensive to retrofit every home to be accessible for everyone but we don't hesitate to make those accommodations when we are the ones that have to use them ourselves. </p><p>I had the chance to experience this firsthand back in 2011 and again in 2013 due to a severe tibia break that had me unable to walk for an extended period. My house became a nightmare to navigate. My upstairs area was effectively off-limits to me for six weeks. On the occasion I needed to go upstairs, I had to literally sit on each stair and hoist myself via triceps extension, and shuffling to get to each stair. I recognized that, was I to have been in this position for a more permanent reason, the house would have to be retrofitted with a stair lift of some kind, or I'd have to accept the fact that I would lose access to anything happening upstairs in a meaningful way. </p><p>Why did I walk you through that? I did that because at times <i>that's what it takes</i> for us to come to grips with the fact that what works for us one day may not work for us another and at some point what we took for granted as an everyday experience may not be available to us <b>AT ALL</b> at some point. In physical spaces, this can be a real challenge. In digital spaces, we have a lot more flexibility in the nature of how products are designed. The barriers to accommodation and accessibility are much lower.</p><p>At the digital product level, accessibility means we take into account the various ways in which people can, or can't, interact with devices like computers (and applications, websites, etc.), smartphones, and the media which is produced for each of those. Think of people who are completely blind or have any number of reduced vision issues. Think of those who are deaf or have hearing loss. Think of people who have moderate to profound mobility issues, everything from rheumatoid arthritis to full limb paralysis or absence. Also, there are a variety of cognitive challenges people can face and they can especially become apparent as people age. </p><p>One key area people often miss when talking about accessibility is that it is too often framed around people with chronic or persistent disabilities. Yes, it is absolutely important we consider them in our design choices. It would be in my mind literally immoral not to. However, accessibility often benefits completely normative users in a variety of mundane situations. Have you ever been to a concert and received a phone call? Hard to talk with a sound system at full volume. Also, kind of hard to take that call if you have no real effective means to move to a quieter place. Here's where the ability of your phone to handle texts is not just a change of application but it's also an accessibility hack. "Oh, you can't hear me? I understand. Then let me text you instead." Accessibility in action :).</p><p>It can be as simple as TikTok including captioning by default or making it so that captioning is available. Many times I have found myself in situations where I am seeing a video but I am not in an environment where I can readily hear what is being said. With captioning, I can work with that and read what the person is saying without having to hear their voice.</p><p>Here's my quick and dirty definition of and the importance of Accessibility, what it is, and why we might want to care about it. Next time, I'll go into a little more depth on the history of Accessibility, how we got where we are, and how we might go forward from here.</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-39013254467666679492023-05-09T15:01:00.001-07:002023-05-09T15:01:30.626-07:00I Guess Nothing Lasts Forever: TESTHEAD At Large<p>I've recently found myself in an interesting position - after working for the same company for the past decade, I'm now looking for a new job. To be clear, this isn't entirely by choice. However, I have no ill will or hard feelings for the company that has chosen to put me at liberty. They are making choices that make sense for them and I've been here before. Granted, it's been twenty years since I had to deal with this in such a stark way but this brings me to a realization. For the first time in a decade, I am free to explore and consider whatever career I want. I am literally unsupervised. To borrow from the old joke, <b><i>yeah, it freaks me out a little bit, too, but the possibilities are endless</i></b>.</p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZhlWx_gKmR4AcsoJ7eonL8Vb61booG3QqQI2EzpFpwcLw_B1OErZWutJuOFw0HtokByXUgBilDu8T2I_1lj9N6bA958jeS2T7VdTY0-2yq_0VUYWb7pzQMsnaC-SNwl0AB7weCjFLCm_Mt6yDEKCX9psMeZElF3FvjRRdm3oi_hqjHaTNzsw1K1-5JQ/s794/il_794xN.1769292600_cc7x.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="794" data-original-width="794" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZhlWx_gKmR4AcsoJ7eonL8Vb61booG3QqQI2EzpFpwcLw_B1OErZWutJuOFw0HtokByXUgBilDu8T2I_1lj9N6bA958jeS2T7VdTY0-2yq_0VUYWb7pzQMsnaC-SNwl0AB7weCjFLCm_Mt6yDEKCX9psMeZElF3FvjRRdm3oi_hqjHaTNzsw1K1-5JQ/s320/il_794xN.1769292600_cc7x.jpg" width="320" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">My Motto for today. BTW, this shirt with this motto is available at:<br />https://www.etsy.com/listing/671632845/i-am-currently-unsupervised-i-know-it</td></tr></tbody></table><br /><p><br /></p><p>I remember talking many times with people and they asked me if I had the chance and the choice to go into exactly the line of work and the area that I wanted to, what would it be? For anyone who has followed this blog for any length of time, that might seem obvious.</p><p>I would like to actively explore and advocate for better accessibility and Inclusive Design, whether that be in the digital or the physical world.</p><p>What is interesting to me is the fact that when I started working with my previous company, accessibility was the first major project I was responsible for and worked towards. It developed in me a desire for advocacy and speaking about the topic for the better part of a decade. However, due to shifting needs, I haven't worked with a hands-on active work project around accessibility since 2018. I miss being actively engaged with this at a level beyond speaking about and writing about it. </p><p>Over the years, I've seen firsthand how important it is to design and build software that is accessible to everyone, regardless of their abilities. I've come to realize that accessibility isn't just something that's nice to have - it's a fundamental aspect of good design. It's good business and frankly, it's something every one of us will have to come to grips with at some point in some capacity.</p><p>Thuis to that end, I have decided to come back to my old friend, TESTHEAD, and recommit to sharing accessibility ideas, approaches, methodologies, and hey, maybe dive deeper into some programming aspects and ways to make accessibility tools that myself and others might want to use.</p><p>I'm excited to explore new opportunities, and if a good one comes along that's not specifically focused on accessibility, I'll certainly not dismiss it. However, this is a chance to put that very specific feeler out there, to see if someone out there would be interested in a passionate accessibility advocate and having them join their team or even working peripherally with them. Regardless, this blog has been quiet for too long outside of live blogging of conferences. I hope you will join me in my journey to change that. </p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com1tag:blogger.com,1999:blog-6890958153006612459.post-38220282566325594122023-04-21T12:18:00.001-07:002023-04-21T12:18:05.258-07:00Low-level Approaches for Testing AI/ML: an #InflectraCON2013 Live Blog<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhur2RYcqTGv4HAhE-S9g1FyVwIXlAxh7YAOZZHhGqgIFKwu7mV0tc8ugOphKxNizKQKvwwEGzDHqq4X6n_K1MYAkKK8cuvCxeDyXOJxv-uXnT5cCmP9sxBioQJKiU6Nqhr59qkv65QRWDrwxMNEqm4ckahMFVXgVqyjhNrjthUgvFiy54YU96BJp-vxA/s1500/for+meetup+(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="844" data-original-width="1500" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhur2RYcqTGv4HAhE-S9g1FyVwIXlAxh7YAOZZHhGqgIFKwu7mV0tc8ugOphKxNizKQKvwwEGzDHqq4X6n_K1MYAkKK8cuvCxeDyXOJxv-uXnT5cCmP9sxBioQJKiU6Nqhr59qkv65QRWDrwxMNEqm4ckahMFVXgVqyjhNrjthUgvFiy54YU96BJp-vxA/s320/for+meetup+(1).png" width="320" /></a></div><br /> One of the great parts of conferences like this is that I meet people I have interacted with for years. Jeroen is one of those people. We worked together on the book "How to Reduce the Cost of Software Testing" back in 2010 but we have never met in person before this week. We've had some great conversations here and now I finally see him present.<p></p><div class="_avatar_gz12f_27" style="background-color: whitesmoke; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; min-height: 50px; min-width: 50px; padding: 0px; text-align: center; width: 50px;"><div class="pl-contact-avatar sb-avatar sb-avatar--src" style="border-radius: 100%; box-sizing: border-box; display: inline-block; font-family: Helvetica, Arial, sans-serif; height: 50px; margin: 0px; padding: 0px; vertical-align: middle; width: 50px;"><img alt="Jeroen Rosink Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPESMUDQSZN_590122.png" style="border-radius: 100%; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; height: 50px; margin: 0px; max-width: 100%; padding: 0px; width: 50px;" title="Jeroen Rosink" width="100%" /></div></div><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Jeroen Rosink</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;">Sr. Test consultant, Squerist</p></div><p>I think it's safe to say everyone has been hit with some form of AI and ML in some capacity. If you need an explanation of AI and Machine learning, I'll let Chat GPT tell you ;).</p><p><br /></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 1.25em 0px; white-space: pre-wrap;"><i>AI, or Artificial Intelligence, refers to the development of computer systems that can perform tasks that would typically require human intelligence. These tasks might include things like recognizing speech or images, understanding natural language, making decisions, and solving problems. AI can be classified into various categories such as supervised learning, unsupervised learning, reinforcement learning, and deep learning.</i></p><p style="--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(59,130,246,0.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: #f7f7f8; border: 0px solid rgb(217, 217, 227); box-sizing: border-box; color: #374151; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 1.25em 0px 0px; white-space: pre-wrap;"><i>Machine learning is a subset of AI that focuses on teaching computers how to learn from data without being explicitly programmed. In other words, it's a method of training algorithms to make predictions or decisions based on patterns in data. Machine learning algorithms can be trained on a variety of data types, including structured data (like spreadsheets) and unstructured data (like text or images). The most commonly used machine learning algorithms are supervised and unsupervised learning algorithms.</i></p><p>I mean, that's not bad, I'll take it. So I used AI to explain AI. What Inception level is this ;).</p><p>AI is always learning and it has been trained on large data sets. I often look at AI as a good research assistant. It can do some pretty good first-level drafting but it may miss out on some of the nuances and it may also not be completely up to date with the information it provides. Also, Machine Learning really comes down to ranking agents and probability. The more successes it establishes, the higher it ranks certain responses. To be clear, even with how rad AI and ML seem to be, we are still in the early days of it. We can have all sorts of debates as to how much AI will take over our work lives and make us obsolete. Personally, I don't think we are anywhere near that level but I'd be a fool to not pay attention to its advances. Therefore, we need to consider not just how we are going to deal with these things but how we are going to test them going forward.</p><p> Jeroen talks about the confusion matrix and how that is used to test ML.</p><p>The confusion matrix is used to evaluate machine learning models, particularly in classification tasks. Think of it as a table with a number of correct and incorrect predictions made by a model for each class in a set of data.</p><p>The four possible outcomes are:<br />- true positives (TP)<br />- false positives (FP)<br />- true negatives (TN)<br />- false negatives (FN).</p><p><br /></p><p>A true positive occurs when the model correctly predicts a positive instance. <br />A false positive occurs when the model incorrectly predicts a positive instance. <br />A true negative occurs when the model correctly predicts a negative instance. <br />A false negative occurs when the model incorrectly predicts a negative instance.</p><p>Jeroen has two approaches that he is recommending:<br /><br /><b>The Auditor's Approach </b><br /><br />First, we perform a walkthrough so that we can see if the data is reliable and useful. From there, we do a Management Test to use data in enough volume to see if the data as presented works with small and larger numbers. If we can see that the data is relevant with one, and with 25, then we can see if it's relevant with 50 or 100, or 1000 and so on. We can't predict the output but we can have some suppositions as to what they might do.<br /><br /><b>The Blackhole Approach </b></p><p>This is an interesting approach in which we don't necessarily know what the data is or what we would actually have as data. We can't describe what is actually inside the black hole but we can describe what surrounds or is visible around the black hole. In this capacity, we look for patterns and anomalies that don't correspond with our expectations. If we see a pattern that doesn't match what we expect, we may have an issue or something that we should investigate but we are not 100% sure of that fact. Jeroen explained that there's a technique that can be used in the classic illustrations for "Where's Waldo?" The idea is that with a pen and making some marks on the page, we can figure out where Waldo is in about ten passes. To be clear, the system doesn't know where Waldo is, but it examines patterns in the image and breaks down the patterns to figure out where the item it is looking for might be.</p><p><br /></p><p>These are neat ideas and frankly, I would not have considered these prior to today but be sure I'm going to think a lot more about these going forward :).</p><p><br /></p><p><br /></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-10485411095115574372023-04-21T10:55:00.005-07:002023-04-21T10:55:59.931-07:00Technical Debt Is Not Free: an #InflectraCON2013 Live Blog<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikk9Mxx47oBRiN-GuenEU_gkqTXFIOaiN5Qt2KTH0fcO9VDVT3aAq0IwPrR5k7ofp0foaefRzpbWAvczcu4ENPadcghT7Z2NVnqwgbzXc2teYq0QIdcbd21O9aWwy_TwfnPvcfu56pFqPrFcTVI8K1QViPAjjGYoJEyVQytJmaCVxmZvDNcrrls29jUw/s1500/for+meetup+(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="844" data-original-width="1500" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikk9Mxx47oBRiN-GuenEU_gkqTXFIOaiN5Qt2KTH0fcO9VDVT3aAq0IwPrR5k7ofp0foaefRzpbWAvczcu4ENPadcghT7Z2NVnqwgbzXc2teYq0QIdcbd21O9aWwy_TwfnPvcfu56pFqPrFcTVI8K1QViPAjjGYoJEyVQytJmaCVxmZvDNcrrls29jUw/s320/for+meetup+(1).png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p></p><div class="separator" style="clear: both;"><div class="_avatar_gz12f_27" style="background-color: whitesmoke; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; min-height: 50px; min-width: 50px; padding: 0px; text-align: center; width: 50px;"><div class="pl-contact-avatar sb-avatar sb-avatar--src" style="border-radius: 100%; box-sizing: border-box; display: inline-block; font-family: Helvetica, Arial, sans-serif; height: 50px; margin: 0px; padding: 0px; vertical-align: middle; width: 50px;"><img alt="Chad Green Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPEGBZSLVNP_355167.png" style="border-radius: 100%; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; height: 50px; margin: 0px; max-width: 100%; padding: 0px; width: 50px;" title="Chad Green" width="100%" /></div></div><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Chad Green</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;">Director of Architecture, Glennis Solutions</p></div></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">When you hear the term "Technical Debt", what does that mean to you? Often the term "a quick and dirty fix" is used with the idea that it will be taken care of later. In short, anything you have to revisit later because of the limitations of today is specifically technical debt. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The fact is, many of us have probably participated in the process of developing technical debt, whether we intended it or not. Even mature teams find themselves in technical debt, sometimes by active means, and sometimes by inaction. I remember working with an organization that had a great automation framework and it was very robust, with a lot of code libraries to support it. It was a great system, as long as the developers that created it were there to maintain and support it. However, we came to a point where our developers that did support this were no longer there and the team members that were there did not have the level of expertise necessary to maintain it. What was once a vital linchpin of our efforts became outdated and in some ways dangerous to do any work on. We went from having a reliable system to a need to modernize. In short, we woke up with a technical debt through no intentional effort on our part but we had to address it. We ultimately did but it took time and effort and a lot of iteration. We learned from that experience that we needed to make sure that what we developed had a broad base of support so that any of us could work on and maintain it.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Going into debt is not a crime or even a bad situation by itself. It can certainly become a bad situation if it's not addressed or worse, ignored. In many ways, we have to be more careful and make sure we are doing things in ways that are maintainable and understood. I went through this recently with some changes I proposed to a system that had a different way of handling API data (this came from suggestions of one of our devs). When I submitted it, the comments back were, "This is interesting and a way that we hadn't considered. We're not saying "no" but we may want to make sure we understand why we'd want to do it this way. Can we revisit this in the next sprint?" That's a perfectly reasonable request. Let's understand what making this change might be and how it might modify our testing methodology.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Technical debt sounds scary but there are ways to limit it or mitigate it. Take the time to do actual code reviews and make sure that the changes being made are understood. Talk about these things in Stand Up if necessary but surface these issues, as well as discuss these in your sprint reviews. Much of the time technical debt will be hiding in plain sight. The best way to deal with technical debt is to look for it and identify it as early as possible.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><br /></div></div>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-82350738507160386552023-04-21T09:11:00.001-07:002023-04-21T09:11:22.428-07:00Bad Tests Running Wild - an #InflectraCON2023 Live Blog<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivSuP01MHXVNOzEOV_ijLebNmgF-Y4M98h9zEm9dvG7TaRWa0p3JUC96vGAK1Zea3VRHWU3bw9OqXPS8iS4XjACX_rJhdHSEJ2UkA2oA72vqXzsouX-FicHEgTWx_V7Wcn6HXY09ZCrq_kHYp0tbq0WO-TbfikPrGVLBW1PtCU2zZ21J6OWWruCkKJ8A/s1500/for+meetup+(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="844" data-original-width="1500" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivSuP01MHXVNOzEOV_ijLebNmgF-Y4M98h9zEm9dvG7TaRWa0p3JUC96vGAK1Zea3VRHWU3bw9OqXPS8iS4XjACX_rJhdHSEJ2UkA2oA72vqXzsouX-FicHEgTWx_V7Wcn6HXY09ZCrq_kHYp0tbq0WO-TbfikPrGVLBW1PtCU2zZ21J6OWWruCkKJ8A/s320/for+meetup+(1).png" width="320" /></a></div><br /> <p></p><div class="_avatar_gz12f_27" style="background-color: whitesmoke; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; min-height: 50px; min-width: 50px; padding: 0px; text-align: center; width: 50px;"><div class="pl-contact-avatar sb-avatar sb-avatar--src" style="border-radius: 100%; box-sizing: border-box; display: inline-block; font-family: Helvetica, Arial, sans-serif; height: 50px; margin: 0px; padding: 0px; vertical-align: middle; width: 50px;"><img alt="Paul Grizzaffi Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPEDFUYJTEN_844652.png" style="border-radius: 100%; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; height: 50px; margin: 0px; max-width: 100%; padding: 0px; width: 50px;" title="Paul Grizzaffi" width="100%" /></div></div><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Paul Grizzaffi</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;">Senior QE Automation Architect, Vaco</p></div><p>Paul and I go way back. It's always fun to see my fellow in heavy metal arms at these events. We frequently talk music as much as we talk testing, so we are often in each other's sessions and today is no exception. Plus, Paul and I love making musical puns in our talk titles, and seeing <i>Bad Tests Running Wild</i>, I knew that was a reference to Scorpions' lead-off track from 1984's "Love at First Sting", aka <i>"Bad Boys Running Wild"</i>... yeah, this is going to be fun :).</p><p><br /></p><p>The point here is that, especially with CI/CD pipelines, we need to have the tests pass to successfully complete and deploy an application. If a test fails, the whole process fails. By virtue of how tests run in a CI/CD pipeline, we need to make sure that any test that we have can run all the time, independent of any other test, and independent of any state of our product. This means a flakey test can really derail us. Note, this is not talking about a test legitimately failing or finding a fault. This is more the "random timeout because of a latency that occurs and that has nothing to do with our application". </p><p>Let's think about how we create our calls and procedures. Do we have everything under our own umbrella? How much of our solution uses third-party code? Do we understand that third-party code? If we are using threaded processes for concurrency, are all of our components able to use those concurrent thread approaches? </p><p>Let's think about configuration and how we set things up. Why do we want or need parallelization? Overall, it comes down to time and speed. I remember well our earlier setup with Jenkins from about a decade ago. It took us several hours to run everything in serial. Thus, we needed to set up the environment in such a way that we could run four servers in parallel. At a point, we have to look at the costs of running our CI/CD pipeline vs. the time it takes to deploy. Our sweet spot was determined to be four servers running in parallel. Those four servers ran our tests in twenty minutes and then did our deployment if everything went smoothly. Going from several hours to twenty minutes was a big time saving but yes, it cost to set up robust enough servers to get those savings in time. After those four servers, we determined that adding more servers created a less favorable cost to time savings, as compared to running four servers. Still, it was critical to make sure that any tests we ran and any states that changed had to be all self-contained. No test was allowed to leave any residual footprints. Additionally, we had to ensure that our main server and out client machines were responding quickly enough to make sure that we didn't have potential latency with multiple machines (heck, spinning up a machine in a different server farm could mess everything up, so you needed to make sure that everything was proximate to each other. </p><p>Also, we are only considering what happens when a test fails when we don't want it to or it's not supposed to fail. However, we also have to consider the flip side, which is what happens if a test passes that shouldn't? That's the flip side of a flaky test. What if we have made a change but our test is too generic to capture the specific error that we have introduced? That means we may well have introduced a bug that we didn't or wouldn't catch. </p><p>Risks are always going to be present and our goal as testers and automation specialists is that we want to look at the potential risks that are present. What is the basic risk we need to mitigate? What happens when we deploy our systems? Do we have the ability to back out of a change? What do we need to do to redeploy if necessary? If we deploy do we have an easy way to monitor what has gone in? Paul makes the point that, if a change is potentially expensive, then you probably need human eyes to watch and monitor the situation. If there's little cost or risk of failures, then it could be handled without a person looking over it. Regardless, you will need to have the ability to monitor and to that end, you need logs that tell you meaningful information. More to the point, you need to know where the logs are and that they are actually accessible.</p><p>As always, exciting, interesting, and great fod for thought. Thanks, Paul. Rock on!!!</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-23686407556853152952023-04-21T07:57:00.003-07:002023-04-21T07:57:20.556-07:00The Dark Side of Test Automation: an #InflectraCON2023 Live Blog <p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYIpHDkOieBl8T7kuGrMk3HNyjygS277MuaYjr_BpzlRGzD43yPRqWOouO44OQWMBa3w2rProg3W-E4U-KaeIQh_glB4rKZJEYkCcw1-VMxjG92kjtraQ1dZMd_yzJnLd-x5mrPk98zKqMpuHjWdfx4YdUjRWKNUAMSOoIh5zPh0sSCGrJY-SRSm46zA/s1500/for+meetup+(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="844" data-original-width="1500" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYIpHDkOieBl8T7kuGrMk3HNyjygS277MuaYjr_BpzlRGzD43yPRqWOouO44OQWMBa3w2rProg3W-E4U-KaeIQh_glB4rKZJEYkCcw1-VMxjG92kjtraQ1dZMd_yzJnLd-x5mrPk98zKqMpuHjWdfx4YdUjRWKNUAMSOoIh5zPh0sSCGrJY-SRSm46zA/s320/for+meetup+(1).png" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><p></p><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><div class="_avatar_gz12f_27" style="background-color: whitesmoke; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; min-height: 50px; min-width: 50px; padding: 0px; text-align: center; width: 50px;"><div class="pl-contact-avatar sb-avatar sb-avatar--src" style="border-radius: 100%; box-sizing: border-box; display: inline-block; font-family: Helvetica, Arial, sans-serif; height: 50px; margin: 0px; padding: 0px; vertical-align: middle; width: 50px;"><img alt="Jan Jaap Cannegieter Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPEOLNNTTGM_536477.png" style="border-radius: 100%; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; height: 50px; margin: 0px; max-width: 100%; padding: 0px; width: 50px;" title="Jan Jaap Cannegieter" width="100%" /></div></div><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Jan Jaap Cannegieter</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;">Principal Consultant, Squerist</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;"><br /></p></div></div><div class="separator" style="clear: both;"><div class="separator" style="clear: both;">Jan starts out this talk with the idea from Nicolas Carr's book "The Glass Cage" that "the introduction of automation decreases the craftsmanship of the process that is automated". I've seen this myself a number of times. There's a typical strategy that I know all too well:</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">- explore an application or workflow</div><div class="separator" style="clear: both;">- figure out the repeatable paths and patterns</div><div class="separator" style="clear: both;">- run them multiple times, each time capturing a little more into scripts so I don't have to keep typing</div><div class="separator" style="clear: both;">- ultimately capture what I need to and make sure it passes.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The challenge with this is that, by the time I'm done with all this, unless a test breaks, that test will now effectively run forever (or every time we do a build) and honestly, I don't think about it any longer. The question I should be asking is, "If a test always passes, is it really telling us anything?" Of course, it tells me something if the test breaks. What it tells me varies. It may indicate that there's a problem but it also may indicate a frailty in my test that I hadn't considered. Fix it, tweak it, make it pass again, and then... what? </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I'm emphasizing this because Jan is. Just because a test is automated doesn't necessarily tell us how <i>good</i> the testing is, just that we can do it over and over again. Likewise, just because a test is automated, it doesn't really give us much indication as to the quality of the testing itself. Let me give an example from my own recent testing which revolves around APIs. On one hand, I am able to find a variety of ways to handle GET and POST commands but on the other, do I really know that what I am doing actually makes sense? I know I have a test or a series of tests but do I actually have tests that are worth running repeatedly? </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I appreciate the fact that automation does something important but it may not be the importance we really want. Automation makes test efforts visible. It's hard to quantify exploratory sessions in a way that is easy to understand. By comparison, it's easy to quantify the statement, "I automated twenty tests this week". Still, much of the time, the energy I put into test automation saves me repetitive typing, so that part is great but it doesn't specifically find bugs for me or uncover other paths that I hadn't considered. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">There are five common misunderstandings when it comes down to test automation: <br /><br /><b>- the wish to automate everything<br /></b><br />I have been in this situation a number of times and it typically becomes frustrating. More times than not, I find that I'm spending more time futzing with tooling than I am actually learning about or understanding the product. There's certainly a variety of benefits that come with automation but thinking the machines will make the testing more effective and frequent often misses the mark.<br /><br /></div><div class="separator" style="clear: both;"><b>- you can save money with test automation<br /></b><br />Anyone who has ever spent money on cloud infrastructure or on CI/CD pipelines realizes that often having more automated testing doesn't save money at all, it actually increases cycles and spending. Don't get me wrong, that may very well be valuable and helpful in the long run but thinking that automation is going to ultimately save money is short-sighted and in the short term, it absolutely will not save money. At best, it will preserve your investment... which in many cases is the same thing as saving money, just not in raw dollar terms.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>- automation makes testing more accessible</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">Again, automation makes testing more "Visible" and "Quantifiable" but I'd argue that it's not really putting testing into more people's hands or making them more capable. It does allow the user who maintains pipelines to be able to wrap their heads around the coverage that exists but is it really adding to better testing? Subjective at best but definitely a backstop to help with regressions.</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;"><b>- every tester should learn how to program</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I'd argue that every tester who ever takes a series of commands, saves them in a script, and then types one command instead of ten is programming. It's almost impossible not to. Granted, your programming may be in the guise of the shell but it is still programming. Add variables and parameters and you are de facto programming. From there, stepping into an IDE has a bit more learning but it's not a radical step. In other words, it's not a matter of, "Does every tester need to learn how to program?" We invariably will. To what level and at what depth is the broader question.</div><div class="separator" style="clear: both;"> </div><div class="separator" style="clear: both;"><b>- automation = tooling</b></div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">I'm going to argue that this is both a "yes" and "no". As I said previously, you can do a lot of test automation using nothing but a bash shell (and I have lots of scripts that prove this point). Still, how do scripts work? They work by calling commands that pipe the output to some other command and then based on what we pipe to what, we do one thing or we do something else. Is this classic test tooling as we are used to thinking about it? No. Is it test tooling? Well, yes. Still, I think if you were to present this to a traditional developer, they would maybe raise an eyebrow if you explain this as test tooling. </div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">My rationale and it seems Jan feels a similar way is that we need to look at automated testing as more than just a technical problem. There are organizational concerns, there are perception issues, and there are communication issues. Having automation in place is not sufficient. We need to have a clear understanding of what automation is providing. We need clarity on what we are actually testing. We need to have an understanding of how robust our testing actually is and also how much of our testing is tangibly capturable in an automated test. What does our testing actually cover? How much does it cover? What does running one test tell us versus what ten tests tell us? Are we really learning more with the ten tests we run or is it just a number to show we have lots of tests?</div><div class="separator" style="clear: both;"><br /></div><div class="separator" style="clear: both;">The real answer to this comes down to, "Why are we testing in the first place?" We hope to get the information we can make judgment calls on and ultimately, automated tests have a limited ability to make judgment calls (if they can make them at all). People need to analyze and consider to see what is going on and if it is actually worthwhile. It has its place, to be sure, and I wouldn't want my CI/CD environments running without them but let's not confuse having a lot of tests with having good tests.</div></div><p><br /></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-66349056735562624472023-04-21T06:45:00.001-07:002023-04-21T06:45:53.180-07:00 Castle Defense 101 (aka Threat Modeling): an #InflectraCON2023 Live Blog<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGScVZqmZuwELLw9QVcvFUik3hZKquBG-eKvRaSK2q3KdugqfdL2CQBoKZTugc5C9OW_t0akAQTsLrmVaBFxKmkgbuEA33GJug0bgbnCaNzF4RJLWxsGbXbhF-kAHsNEsaxLX7_KXUP4RyEcoMBHP7BtFrsf5WwhVlMmC5zb5PMNJm3ZGTA4Kk3_sLQg/s1500/for+meetup+(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="844" data-original-width="1500" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGScVZqmZuwELLw9QVcvFUik3hZKquBG-eKvRaSK2q3KdugqfdL2CQBoKZTugc5C9OW_t0akAQTsLrmVaBFxKmkgbuEA33GJug0bgbnCaNzF4RJLWxsGbXbhF-kAHsNEsaxLX7_KXUP4RyEcoMBHP7BtFrsf5WwhVlMmC5zb5PMNJm3ZGTA4Kk3_sLQg/s320/for+meetup+(1).png" width="320" /></a></div><p>Well, good morning to everyone. We woke up to some excitement today. A fore alarm went off at 7:30 a.m. this morning, so I had to evacuate the venue. It was interesting watching me react to what was happening. I've always been fond of saying I'd be one to just get up and get out but as it turns out, no, I had the presence of mind to gather my stuff quickly and push it into some bags, grab my laptop and backpack, and then walked out. Fortunately, I travel relatively lean as a principle so it didn't take me long but were it a more dire situation, I fear I may have been one of those stragglers that might have been potentially cut off. All's well that ends well but yeah, gave me pause to think, to say the least.</p><p>Anyway, on to today's sessions.</p><p></p><div class="_avatar_gz12f_27" style="background-color: whitesmoke; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; min-height: 50px; min-width: 50px; padding: 0px; text-align: center; width: 50px;"><img alt="Gene Gotimer Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPETIHHRIFD_542134.png" style="border-radius: 100%; box-sizing: border-box; font-size: medium; height: 50px; margin: 0px; max-width: 100%; padding: 0px; text-align: left; width: 50px;" title="Gene Gotimer" width="100%" /></div><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Gene Gotimer</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;">DevSecOps Engineer, Praeses</p></div><p>This talk on Castle Defense is both entertaining and an interesting look at what we might face as potential security issues and how we want to protect against potential attacks. When we think of castles, we often think of grand, large structures. Interestingly, castles all start as smaller strutcures. If we think of the old chessboards and the character of the Rook (or the Castle, yes), they are minimalist towers in many cases and typically, that's where keep and bailey castles start, too. They may be small or not terribly imposing but they can still be remarkably effective at defense if set up correctly. This is an interesting metaphor when it comes to security because, in many ways, security is graded on a curve. It also helps to know what your castle or fortress is meant to defend. A manor home for a noble is designed to keep people out. Prisons are meant to keep people in. It's important to know what you are protecting and what direction matters. </p><p>In addition to the conversations about potential security threats for applications, we are taking the time to look at and analyze actual castles from the medieval period and later to see what they did and how they set up their defenses, and then analyze ways we could undermine its security. Granted, some of these castles have been modernized and no longer set up in a logical way that would have addressed the threats of the past (an example of a castle in the Netherlands shows a ground-level manor with what looks to be no defensive walls, windows down to the ground, and a river flowing by outside. In short, it doesn't look to be defensive in any meaningful way, until you see the center tower. That tower resembles what may have been the original structure, with a broad overhand with machicolations (I love that word so much (LOL!) ) but you can see that time and necessities have changed how the building is used. It's original threat modeling from when it was built wasn't necessary for later centuries, so the building was adapted to face more modern realities. Many castle fortifications made sense in the era of catapult and trebuchet but became obsolete with the advent of gunpowder and cannons.</p><p> So let's consider this in the modern world. We aren't building castles and keeps in the literal sense (generally speaking for this audience) but our applications are in many ways our castles. If they are breached or hacked, our data, our financial well-being, and our reputations are on the line, so the threats, while different, are every bit as potentially devastating. Thus we need to put time and attention towards making a rational and logical level of security for our applications. Some situations are going to require more hardening than others. If you have an informational site with no database backend for transactions, your threat modeling is going to be smaller and less intensive compared to a site that handles the personal data of individuals or the literal handling of payments. A WordPress blog is going to be lower in priority compared to a banking app. We need to measure our time and investments for the threats that make sense.</p><p>There's a site called "<a href="https://www.threatmodelingmanifesto.org/" rel="nofollow" target="_blank">Threat Modeling Manifesto</a>" that spells out a broad range of these possible attacks and threats and how to handle them. From their headline:<br /><br /></p><p><i>Threat modeling is analyzing representations of a system to highlight concerns about security and privacy characteristics.</i></p><p><i>At the highest levels, when we threat model, we ask four key questions:</i></p><p></p><ul style="text-align: left;"><li><i>What are we working on?</i></li><li><i>What can go wrong?</i></li><li><i>What are we going to do about it?</i></li><li><i>Did we do a good enough job?</i></li></ul><div>This was an interesting way to talk about this topic and I applaud the creative approach. It took a potntially dry topic and made it a lot more engaging.</div><p></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-61209256105959908642023-04-20T12:54:00.003-07:002023-04-20T13:05:11.156-07:00Being an A11y: Why Accessibility Advocacy Matters: my talk from #InflectraCON2023<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidin5djMqt4Js8Ld4R4vaelO3BIb9aUeiuQBXQ4_0e3g4x2T-f1kP8z5_5j-ldJZ0maFrSWaMtkK8ip1fKkFwkm_3WBPiU0kOgCNbwkrsvZCzA0EZ46wMQsT-W32KscoShEbieyazPBcZ51flFUhNcz3i0bShFiP961m5sLe2Y3W83_fMNok94gARh1w/s1500/for+meetup+%281%29.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="844" data-original-width="1500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidin5djMqt4Js8Ld4R4vaelO3BIb9aUeiuQBXQ4_0e3g4x2T-f1kP8z5_5j-ldJZ0maFrSWaMtkK8ip1fKkFwkm_3WBPiU0kOgCNbwkrsvZCzA0EZ46wMQsT-W32KscoShEbieyazPBcZ51flFUhNcz3i0bShFiP961m5sLe2Y3W83_fMNok94gARh1w/s320/for+meetup+%281%29.png" width="320" /></a></div><p>Accessibility is a broad area. It can be applied to many different scenarios and can be met in many different ways. At the end of the day, though, we are dealing with people with challenges and concerns that, let's face it, most if not all of us will face if we live long enough. </p><p>Accessibility is more than checking off a box that says "We are compliant". It is advocating for people to be able to effectively participate in daily life as any of us would, with accommodations where necessary. </p><p>In this talk, I will show you areas where we can do better to make products more usable, not just for those with physical disabilities but for all users. I will demonstrate tools and techniques to help test as well as make a case on behalf of those people who are not able to speak for themselves.</p><p><br /></p><div class="_avatar_gz12f_27" style="background-color: whitesmoke; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; min-height: 50px; min-width: 50px; padding: 0px; text-align: center; width: 50px;"><div class="pl-contact-avatar sb-avatar sb-avatar--src" style="border-radius: 100%; box-sizing: border-box; display: inline-block; font-family: Helvetica, Arial, sans-serif; height: 50px; margin: 0px; padding: 0px; vertical-align: middle; width: 50px;"><img alt="Michael Larsen Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPETWVXDDYV_36245.png" style="border-radius: 100%; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; height: 50px; margin: 0px; max-width: 100%; padding: 0px; width: 50px;" title="Michael Larsen" width="100%" /></div></div><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Michael Larsen</p></div><p><span color="var(--subTitleColor)" face="Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif" style="background-color: whitesmoke; font-size: var(--fontSubTitle);">Senior Quality Assurance Engineer, Learning Technologies Group/PeopleFluent</span> </p><p>The key to this talk this go around was that I stepped a bit away from the what and the how (still important) and emphasize the "why". This was less a talk about tools and processes (though I touched on them) and instead emphasized ways we could advocate for Accessibility. As always, I owe a big round of thanks to Jeremy Sydik (his 10 principles will probably always be a keystone to my presentations) and to Albert Gareev (the HUMBLE principles are still, in my mind, the easiest way to encourage Accessibility advocacy regardless of your skill level).</p><p>I do want to share this tweet the organizers of InflectaCON shared because, wow, this made my day :).</p><p><br /></p>
<p></p><blockquote class="twitter-tweet"><p dir="ltr" lang="en">“Think about the future - you may end up benefiting from your own design.”<br /><br />The presentation "Being an A11y: Why Accessibility Advocacy Matters" by <a href="https://twitter.com/mkltesthead?ref_src=twsrc%5Etfw">@mkltesthead</a> was a <a href="https://twitter.com/hashtag/TeamInflectra?src=hash&ref_src=twsrc%5Etfw">#TeamInflectra</a> favorite and rated 10/10❗<a href="https://twitter.com/hashtag/InflectraCon?src=hash&ref_src=twsrc%5Etfw">#InflectraCon</a> <a href="https://t.co/ToamByL7ek">pic.twitter.com/ToamByL7ek</a></p>— InflectraCON (@InflectraCon) <a href="https://twitter.com/InflectraCon/status/1649129420714655746?ref_src=twsrc%5Etfw">April 20, 2023</a></blockquote> <script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script><p></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-57006025409138353142023-04-20T08:52:00.007-07:002023-04-20T09:28:32.020-07:00Accelerating Quality with Conscious Deliveries: an #InflectraCON2013 Live Blog<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNsD9s5M9Rq-Tyr-K6PmgRlLOZeApz9cdzS51trUaSOR3mBnjeusXAUB95bTriaSGMyMwkQtRFYVb7UVaLM4BKPgmtdgGijZ-L-XA6b9-wdjPJr2GZwO03d1KZf7S7i7GkMNymybeSfQKp0g4wps7uvr_YTSj2v0hHCMQOwpAwOYlI1-Ssr0ugk7IbGw/s1500/for+meetup+(1).png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="844" data-original-width="1500" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNsD9s5M9Rq-Tyr-K6PmgRlLOZeApz9cdzS51trUaSOR3mBnjeusXAUB95bTriaSGMyMwkQtRFYVb7UVaLM4BKPgmtdgGijZ-L-XA6b9-wdjPJr2GZwO03d1KZf7S7i7GkMNymybeSfQKp0g4wps7uvr_YTSj2v0hHCMQOwpAwOYlI1-Ssr0ugk7IbGw/s320/for+meetup+(1).png" width="320" /></a></div><br /><p>So this is fun. Lalit and I have known each other for years. We have attended conferences together. I've been interviewed by Lalit for Tea Time With Testers. We've worked together within the Association for Software Testing on a variety of initiatives. Having said all that, I think <i>this is the first time I've actually seen/heard Lalit speak</i> :).</p><div class="_avatar_gz12f_27" style="background-color: whitesmoke; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; min-height: 50px; min-width: 50px; padding: 0px; text-align: center; width: 50px;"><div class="pl-contact-avatar sb-avatar sb-avatar--src" style="border-radius: 100%; box-sizing: border-box; display: inline-block; font-family: Helvetica, Arial, sans-serif; height: 50px; margin: 0px; padding: 0px; vertical-align: middle; width: 50px;"><img alt="Lalitkumar Bhamare Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPEDBFPJNMU_100636.png" style="border-radius: 100%; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; height: 50px; margin: 0px; max-width: 100%; padding: 0px; width: 50px;" title="Lalitkumar Bhamare" width="100%" /></div></div><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Lalitkumar Bhamare</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;">Tech Arch Manager, Accenture Song</p></div><p>It's interesting to realize that with all of the technological advances we have had over the past thirty years (probably longer but I've only been in the game for three decades), we still have to pick from the speed, cost, and quality triangle (you know it, "Fast, Cheap, Good. Pick two!"). It seems that if any shift is going to happen, it typically happens at the "Good" part, meaning that if any pressure comes into the situation, the quality side is the side that ends up bending. Granted, often that means we get "good enough" and for many people, that is sufficient. </p><p>The irony is that we don't have to settle for good enough but it will require that upfront planning and resources be allocated to make sure that quality is reinforced. This comes down to requiring people to be motivated to provide not just good testing but a mindset of the importance of testing beyond the busywork of automation and declaring that testing has been performed. </p><p>We had a little discussion about apps we actually like using. Recently due to life circumstances, I've become more familiar with healthcare apps. My company's insurance provider has done big on telemedicine recently and to that extent, it seems they have either found out I'm a tester or I just tick off a lot of boxes for them because they have thrown just about every app and tool my direction to manage healthcare and treatment options from a digital perspective. Some of these apps have been really helpful and some of them have been... less than desirable, to say the least. To be clear, these apps are not developed by the insurance provider but they are either partnerships or investments that my insurance provider has made and encourages use. It's interesting to compare them and see what makes them "quality" products vs. not-so-good quality. Also, some apps have great quality in some areas while being less good in others. A perfect example of this is an app I'm involved with that focuses on weight management specifically for people who are at risk for Type 2 Diabetes (which family history points to me being, so I'm part of their initiative for that reason). In areas where real human interaction takes place, it's great. However, they have recently made decisions to limit website updates and almost exclusively manage via their mobile app. In one way, this makes sense, as we are more likely to be within arms reach of our phones at meal breaks as compared to our computers. Still, I type way faster on a computer than I do on my phone, so invariably, their change has resulted in my updates being delayed, sometimes by days, because it's less convenient for me to enter the details. I'm curious if anyone on their team even brought up this possibility.</p><p>Lalit emphasized three "P" areas of quality consideration. You have a <b>P</b>roject aspect, a <b>P</b>eople aspect, and a <b>P</b>roduct aspect. He additionally emphasizes the 4 "E"s of quality. <b>E</b>nable, <b>E</b>ngage, <b>E</b>xecute, and <b>E</b>valuate. The 4Es apply to each of the 3Ps. Granted, each of these elements has a context based on where it is applied and there are biases that come into play, it uses the story of the "Parable of the Elephant" where our limitations often constrain our vision and view of an aspect of something (I had a good laugh realizing that Lalit chose Dieter F. Uchdorf's telling of this story. It took me a minute but I kept thinking "wait, I know that voice" (LOL!) ).</p><p>Over time, we need to be open to learning new things and incorporating more knowledge of the potential for requirements, and translating that to concrete actions that can be used. As testers, we may be doing a lot of work but we may not actually be aligned with actual business issues or challenges. As I love to borrow from Steve Covey, how infuriating is it to know we've climbed a significantly tall ladder only to realize we've placed it against the wrong wall?</p><p>We know that we cannot engineer quality, at least not in a literal sense. What we can do is preserve as much of the product's intended integrity as possible and take steps to make sure that we are learning and focusing on areas to make sure that we are creating the best product we can. To that end, having quality experience sessions can help to inform how a product is being used and what can be done going forward. Ideally, these considerations are made early on in the life of the product or as it is being developed. For that to be effective, it requires people with a focus on quality to ask questions and experiment with requirements early on. The later this happens, the less likely they will be of value in design but it might be very demoralizing to realize the "right ladder, wrong wall" problem is happening after we've climbed quite a bit.</p><p>To wrap this up, if you need to have a simple thing to consider and practice, "test early, test small, and test continuously" is a pretty good approach, and apply it to all of the areas you interact with. if you find it valuable, share the approach and help it expand through the organization.</p><p><br /></p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0tag:blogger.com,1999:blog-6890958153006612459.post-69757540629502910732023-04-20T07:46:00.010-07:002023-04-20T08:14:19.757-07:00 Use Design Thinking and Gut Brain for Agile Teaming: an #InflectraCON2023 Live Blog<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRAZgIU4VkAqQWiJxQo5ixdCNuRNXTTc8n5XHfQ8_uQ47i1A82X6Jki12IgAFjBYIGGVNi26jZaE7KcbS3_wE3e5O-0aejO9mmEFZDClq3nkjx904LLrBT9W-uL-KuKmKAaJ_hKAV-akIxCwuBCvjNf5O2cadsZCOhhIN4IE8MEHAR8HscY9XP8YFk1A/s1500/for+meetup+(1).png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="844" data-original-width="1500" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRAZgIU4VkAqQWiJxQo5ixdCNuRNXTTc8n5XHfQ8_uQ47i1A82X6Jki12IgAFjBYIGGVNi26jZaE7KcbS3_wE3e5O-0aejO9mmEFZDClq3nkjx904LLrBT9W-uL-KuKmKAaJ_hKAV-akIxCwuBCvjNf5O2cadsZCOhhIN4IE8MEHAR8HscY9XP8YFk1A/s320/for+meetup+(1).png" width="320" /></a></div><br /> <img alt="Jenn Bonine Avatar" class="pl-contact-avatar sb-avatar__image" height="100%" src="https://static.pheedloop.com/media/events/EVEELVARMBJQM/speakers/image_SPEVZURVWOA_19633.png" style="background-color: whitesmoke; border-radius: 100%; box-sizing: border-box; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; height: 50px; margin: 0px; max-width: 100%; padding: 0px; text-align: center; width: 50px;" title="Jenn Bonine" width="100%" /><p></p><div class="pl-contact-details _details_gz12f_7" style="align-items: flex-start; background-color: whitesmoke; box-sizing: border-box; display: flex; flex-direction: column; font-family: Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; font-size: 13.3333px; margin: 0px; padding: 0px;"><p class="pl-contact-name _name_gz12f_14" style="box-sizing: border-box; color: var(--textColor); font-size: var(--fontMd); margin: 0px; padding: 0px;">Jenn Bonine</p><p class="pl-contact-title _title_gz12f_21" style="box-sizing: border-box; color: var(--subTitleColor); font-size: var(--fontSubTitle); margin: 0px; padding: 0px;">Founder and CEO, Valhalla Capital and COYABLU</p></div><p>I confess I'm stealing these graphical assets from the InflectraCON site but they make things nice and easy to associate a face with a name and a talk with a byline. Jenn and I have spoken at a variety of conferences together over the past decade and it's always fun to catch one of her sessions. Also, I'm proud to announce that the pink lion she gave me at last year's InflectraCON sits proudly on my guitar amp at home (LOL!).</p><p>One of the ways we tend to create or develop things is that we make them based on what "we" want. "We" means the people who are making it making it for themselves. However, Design Thinking goes beyond that, in the sense of designing something that will affect and influence many people, perhaps millions or even billions at the outer edge. </p><p>Design thinking incorporates elements of imagining the future. What will this thing look like a year, five years, or ten years from now? Can we speak to what that future might look like? More important, can we actually shape that future? This is the FORESIGHT aspect necessary for Design Thinking. Often, we have to get out of the ways that make sense to us and see if we can make sense in a way that works for many people. </p><p>Apple is a good example of a company that started as one thing and then over time grew into and developed markets that not only were not their specialties earlier but didn't really exist prior. Just think about the way that we interact with our phones today (and for that matter what phones look like today). There is a dividing line between pre-iPhone and post-iPhone coming on the scene. Cell phones used to have wildly different design aspects prior to 2007. Now, almost every phone we see is the ubiquitous "black mirror", regardless of who makes it. </p><p>ChatGPT is the new design thinking brainchild that is capturing everyone's attention. We now have the job description of "Prompt Engineer" which, unless you are an AI nerd, was something you may have never even heard of or considered but now will likely become a prevalent focus. This has come about because ChatGPT has considered the breadth of who their potential customers might be. You may think to yourself that there is a limited level of use for this technology but given some time and experience, you realize there is a lot that can be done provided you know what to ask and how to ask it. That's prompt engineering in a nutshell.</p><p>So how does Design Thinking fit into all of this? In art, it means that we need to look beyond our immediate needs and our immediate bubble. Too often, we only focus on the areas that are either our specific pain points or our immediate sphere of influence. While that's a great approach for inner peace, it's probably going to cause us to fall behind if we don't look further afield. Heck, as a person that does automation, we can often get used to the patterns that we have determined that work. Once we do, we can do a lot of work and be seen as effective. That may work for a time but if we don't continually look farther afield, we will effectively be working feverishly on yesterday's problems. Taking a bigger picture look to see what can either make things easier or, barring that, may pay off years down the road can be a big step. </p><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto;"><tbody><tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRHGwsWFGNVzgc1EEa1TwV3bG_g9CO7jvJ_hnfNdxO5-eThjEpCOSOE6r8I9kiaPMZffio2V1i4UJ5eG29Nbsi7g4jt0AgyJqMJ2sX4HW1ZKGKw5nicTtmmLQGU1AF01Uh43gytFpLTMB-O_NPdt9OAEmzSpIYeue5IQp6LSiaB5w7l-rrk85322TAtw/s3034/designthinking_illustration_final-01-01.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="3034" data-original-width="3000" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRHGwsWFGNVzgc1EEa1TwV3bG_g9CO7jvJ_hnfNdxO5-eThjEpCOSOE6r8I9kiaPMZffio2V1i4UJ5eG29Nbsi7g4jt0AgyJqMJ2sX4HW1ZKGKw5nicTtmmLQGU1AF01Uh43gytFpLTMB-O_NPdt9OAEmzSpIYeue5IQp6LSiaB5w7l-rrk85322TAtw/s320/designthinking_illustration_final-01-01.png" width="316" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Design thinking principles (originally from Nielsen-Norman Group)<br /><br /></td></tr></tbody></table><br /><p>The ideas behind design thinking fall into three broad areas and six efforts that support those areas. First, we have to understand (discover) a problem, explore our options (create) , and then materialize those results (deliver). Often, we start with one idea but in the process, if we are open to and see the interactions with other people, we may develop something different than what we originally envisioned. Each of the big areas can be broken down more, such as Empathize and Define for Discover, Ideate and Prototype for Create, and then Test and Implement for Deliver.</p><p>The next step is to look at what is called the "Gut Brain" (And while we're not talking about specifically the microbiota that resides in our digestive tracts, it absolutely plays into this ;) ). This sense of "Gut Brain" is delving into our intuitiveness and looking at things that hit us viscerally and deciding to use those intuitions and interactions to look farther afield of our immediate considerations. In short, this is a way of tapping into our playful nature and making considerations we might not tap into. Sketch notes are examples of this, where a person instead of just writing words includes pictures and other doodles to help inform and nurture further thought and understanding. In some ways, it requires visualizing a different world than the one others see. I'm reminded of the woman that finally beat Ken Jennings in Jeopardy years back. How did she do it where others failed? In part, she didn't go in thinking Ken was unbeatable. She visualized herself being able to beat him and used that gut instinct to get the better of him. I'm spacing on who it is but I always loved her statement that so many people thought, "It's such an honor to even compete against him" but she said, "He's beatable, I just have to figure out how". She led with that gut instinct and figured out how to prevail.</p><p>Lots of neat stuff to consider here as well as a lot of digital tools. In short, explore, discover, consider, play, and see if you might actually reinvent your world.</p>Michael Larsenhttp://www.blogger.com/profile/16180074963526979074noreply@blogger.com0