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.[89]

Additionally, these tools help to eliminate repetitive operations -- replacing the human element -- and do what might not be possible otherwise, such as complementing or cataloging, searching, and combining information in ways that are common for test and software development organizations. Application testing helps organizations find issues in their product before the customers do. The number of combinations one has to test for -- even the most trivial of programs -- can be staggering. A pair of nested for loops, for example, can have unique test cases that number in the millions.

Every software development group tests its products, yet delivered software always has defects. Test engineers strive to catch them before the product is released but they always creep in and they often reappear, even with the best manual testing processes. Test Automation software is the best way to increase the effectiveness, efficiency and coverage of your software testing.
Just Enough Test Automation shows test developers and users how to design, implement, and manage software test automation. Learn from authors Dan Mosley and Bruce Posey how to implement a powerful data-driven testing framework; automate unit testing, integrate testing and system/regression testing; and facilitate manual testing with automated tools.
What to automate, when to automate, or even whether one really needs automation are crucial decisions which the testing (or development) team must make.[3] 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.[4]
When decisions are high-level, total automation may not be suitable. When environmental cues are needed to make the decisions — such as on automatic vehicles — accidents can happen. Some companies that have brought to market voice and visual-based automation have discovered that the physical world may be too difficult yet for the response needed. This could be a matter of time and constant testing, but humans may still need to make these types of environmental-response decisions.
The practice of performing robotic process automation results in the deployment of attended or unattended software agents to an organization's environment. These software agents, or robots, are deployed to perform pre-defined structured and repetitive sets of business tasks or processes. Artificial intelligence software robots are deployed to handle unstructured data sets and are deployed after performing and deploying robotic process automation. Robotic process automation is the leading gateway for the adoption of artificial intelligence in business environments.