Home automation may seem like a sci-fi fantasy, but advancements in technology now allow us to harness some of the benefits of automation for use in our own homes today. Home automation allows us to make our lives simpler and more efficient, whether that means programming the lights to turn on or off at certain times or setting the temperature of the house to self-adjust depending on who is at home.
TL;DR: Testing is a sophisticated task that requires a broad set of skills and with the means currently available cannot be automated. What can (and should) be automated is regression testing. This is what we usually refer to when we say test automation. Regression testing is not testing, but merely rechecking existing functionality. So regression testing is more like version control of the dynamic properties of the software.
Monitoring apps can provide a wealth of information about your home, from the status of the current moment to a detailed history of what has happened up to now. You can check your security system’s status, whether the lights are on, whether the doors are locked, what the current temperature of your home is and much more. With cameras as part of your home automation system, you can even pull up real-time video feeds and literally see what’s going on in your home while you’re away.
Manually testing each build is an unacceptable time drain. Automated software testing allows QA to spend most of its time outside of SDLC execution time, allowing testing to run unattended 24×7! With the press of a button, regression testing can be completed without the risk of human error from executing boring, repetitive, similar test cases, ensuring that your latest build breaks nothing. Easy scalability allows increased end-to-end coverage with barely any impact to your schedule, and then the test results can be automatically sent to test management tools for analysis as you see fit.
In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive but necessary tasks in a formalized testing process already in place, or perform additional testing that would be difficult to do manually. Test automation is critical for continuous delivery and continuous testing.
Automated testing expanded with Agile principles because testing in a repeatable manner that is secure, reliable, and keeps pace with the rapid deployment of software is required for this environment. In their book Agile Testing: A Practical Guide for Testers and Agile Teams, authors Lisa Crispin and Janet Gregory claim Agile development depends on test automation to succeed. They emphasize the team effort required for test automation and recommend automating tests early in the development process. Also, the development of automation code is as important as the development of the actual production code for software. The “test-first" approach to development is known as Test-Driven Development.
Environment issues aside, automated checks that need to be run by hand create a drain on the team. Most teams we work with tend to want to just get started by running automated checks by hand. I suggest a different approach: Start with one check that runs end-to-end, through the continuous integration server, running on every build. Add additional scripts to that slowly, carefully, and with intention. Instead of trying to automate 100%, recognize that tooling creates drag and maintenance cost. Strive instead to automate the most powerful examples.
Business process automation (BPA) is defined as the automation of complex business processes and functions beyond conventional data manipulation and record-keeping activities, usually through the use of advanced technologies. It focuses on “run the business” as opposed to “count the business” types of automation efforts and often deals with event-driven, mission-critical, core processes. BPA usually supports an enterprise’s knowledge workers in satisfying the needs of its many constituencies.