Utility: A program that performs a specific task related to the management of computer functions, resources, or files, as password protection, memory management, virus protection, and file compression.
Tool: A program or application that software development teams use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to programs that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. The ability to use a variety of tools productively is one hallmark of a skilled software engineer.
Automation Engineer: A discipline within systems engineering that focuses on how to design and manage complex engineering projects over their life cycles. Issues such as reliability, logistics, coordination of different teams (requirements management), evaluation measurements, and other disciplines become more difficult when dealing with large or complex projects.
Coach: A coach is a person with special skills, knowledge or competency who works with individuals to improve their skills or performance. As opposed to just providing instruction, a coach works along-side, or with, an individual or small group to assist them in learning.
Jump Start: Slang for energizing a start-up process so that momentum can be created faster. It was adopted from the actual meaning of temporarily connecting a fully charged battery to drained battery in order to start a combustion engine.
Test Harness: A test harnesses is a collection of software and test data configured to test a program by running it under varying conditions. The test harness is a hook to the developed code which can be tested using an automation framework.
Shelfware: A slang term used to describe owning or licensing software that you don’t actually need or use (e.g. it sits on a shelf). Shelfware is a phrase that is commonly used in the enterprise and corporations where volume license prices are given and the corporation purchases more software than really needed to obtain that discount.
Test Automation Framework: A test automation framework is an integrated system that sets the rules of automation of a specific product. This system integrates the function libraries, test data sources, object details and various reusable modules. These components act as small building blocks which need to be assembled to represent a business process. The framework provides the basis of test automation and simplifies the automation effort.
Application Lifecycle Management (ALM): ALM is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses the requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management and release management.
Integrated Development Environment (IDE): An IDE is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. It can also include test tools.
Continuous Integration (CI): CI is the practice of merging all developer working copies with a shared mainline several times a day.
Testability: The effort required to test a product to ensure that it performs its intended function.
Design for Testability: The architectural and design decisions in order to enable us to easily and effectively test a system.
This includes traditional software development terms such as Controllability, Observability and Test Point Insertion. But also designing a low maintenance UI, and includes low level design ideas such as using as many standard controls as possible and as few custom controls as possible. The awareness of “design for testability” and the effort toward this type design will have a big benefit for testing and a huge benefit for lower maintenance test automation.
High Volume Automation: A test automation program not for a small set of tests, but for a large set of tests, devices, platforms or data. More thought must be used in architecting a larger system with better test design, lower maintenance, better defect analysis, easier data management, more visibility into what is actually being tested and better reporting. Small scale automation is, in many cases, no longer worth the effort. While high volume automation presents much greater value, it needs to be more carefully built.