When digital computers became available, being general-purpose programmable devices, they were soon applied to control sequential and combinatorial logic in industrial processes. However these early computers required specialist programmers and stringent operating environmental control for temperature, cleanliness, and power quality. To meet these challenges this the PLC was developed with several key attributes. It would tolerate the shop-floor environment, it would support discrete (bit-form) input and output in an easily extensible manner, it would not require years of training to use, and it would permit its operation to be monitored. Since many industrial processes have timescales easily addressed by millisecond response times, modern (fast, small, reliable) electronics greatly facilitate building reliable controllers, and performance could be traded off for reliability.
Convenience is only part of the benefit of home automation. This innovative technology can be integrated into existing systems, making it simple for homeowners to connect their entire home under a single control unit. This means your home automation could provide a ton of versatility and options including energy and cost savings, smart locking to keep out unwanted intruders as an extension of your home security system, video monitoring from remote locations, and more.
The legendary thoroughbred trainer D. Wayne Lukas can’t articulate exactly how he manages to see the potential in a yearling. He just does. Apple’s revered designer Jonathan Ive can’t download his taste to a computer. Ricky Gervais makes people laugh at material a machine would never dream up. Do they all use computers in their daily work lives? Unquestionably. But their genius has been to discover the ineffable strengths they possess and to spend as much time as possible putting them to work. Machines can perform numerous ancillary tasks that would otherwise encroach on the ability of these professionals to do what they do best.
What to automate, when to automate, or even whether one really needs automation are crucial decisions which the testing (or development) team must make. A multi-vocal literature review of 52 practitioner and 26 academic sources found that five main factors to consider in test automation decision are: 1) System Under Test (SUT), 2) the types and numbers of tests, 3) test-tool, 4) human and organizational topics, and 5) cross-cutting factors. The most frequent individual factors identified in the study were: need for regression testing, economic factors, and maturity of SUT.
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.