Automated testing is not a new concept. Most software development teams are trying automated testing in one way or another, especially as an alternative to manual testing with long regression test cycles. If you are a QA, you may have wondered what this means for your work. In the world of ‘automating everything’ – which one is right for you? The role of QA has disappeared? Let’s start by talking about the obvious benefits of automated testing.
Computers test faster than humans.
One of the first benefits that people see from automated testing is that it significantly reduces the time it takes to test a system. You write a test script once and it can be run repeatedly in less than a minute, even in parallel with other test activities. Their automated regression testing teams soon realized that they could do most regression test activities, which had previously taken days, now only took a few minutes. Groups can receive feedback faster and more frequently, so bugs will be found soon and code can be put to work sooner. Computers are more suitable than humans. People make mistakes. That is part of our nature. A manual tester, when going through the same 100th test case, can easily miss a step or forget a scenario. You may forget to record a specific scenario. Automated test operations are a live document. Computers do what is pre-programmed, and they can do it many times with virtually no deviation. These benefits are huge and really help teams build and develop software quality faster. But they are not really the most effective things in automated testing.
Checking is not testing.
At the 2015 OnAgile conference, Elisabeth Hendrickson made clear the distinctions very useful when she described what automated test operations performed: They checked functions, but just checking could not be called testing. Automated testing is dumb, we write them check scenarios about what we know. They run and check whether the system still does what we expected according to the scenarios. So where do the scenarios come from? From understanding what can go wrong in a system. Who understands the system? There are two things people do better than computers at all times – creativity and learning. These two factors make up what we call exploratory testing. When we explore a system, we think of the unusual ways we can interact with it. When we do this, we observe how the system works. Hendrickson points out that these observations we make learn about what we will test, which will be the basis for us to perform in the next test. Automated testing is checking the system, the bugs you know it exists. Manual testing is checking bugs that you are not aware of exists. Automated testing will give you plenty of time, instead of having to repeat the same test actions over and over. Every time you find a new bug, you can use automated testing for it. That way, you won’t have to manually check it again and can focus on finding other vulnerabilities. What is QA? Your title is QA, but you are often called a tester. You do more than test, however. What is QA? I have heard a few different answers to this question and all are correct. They all represent a different aspect of this important role.
Quality Assurance The term quality assurance is a new expression of the old title of quality control. The term Quality Management comes from manufacturing. A product goes through the entire production line before going through quality control. They check for product problems. If there is an error, it must be returned or fixed immediately. If the product is good, it will be delivered to the consumer. Toyota has decided to do something different. They used what we call the lean method to get into the car manufacturing process. The goal is to reduce the number of defective products by improving the quality in every step of the manufacturing process. One aspect of the quality assurance role is to help build quality in the software development process. You do not want to become a Quality Manager. You don’t want new features to work because of poor quality. So you help the production of products go smoothly with higher quality. You can do this by helping to write automated test documents for scenarios, which can make the development team more hedged.
Quality analysis. Writing software is not easy. Some of the complexity comes from the nature of computer programming, but the most complex arises from the aspect of the system that interacts with: Your system needs to interact with other systems that are inherently confusing, users perform unwanted operations, network connections and computer infrastructure are interrupted in unpredictable ways. Part of your role is to help the software development team understand how to avoid those bad situations. You can save your team time by asking the right questions in the first place. Automation helps you spend more time to help the quality improvement team as soon as possible. So do you still have work to do? You are not redundant. In contrast, automated testing means you have more power in your role than ever before. Automation can check for repeated tests that you often have to perform. This will increase your free time to use your creativity in discovering new ways to test a system. You will be able to spend less time as a tester and have more time as a QA, Quality Analyst and Quality Ambassador that your team needs.