Glossary Terms

Accessibility Levels Web accessibility testing is a subset of usability testing where the users under consideration have disabilities that affect how they use the web. The end goal, in both usability and accessibility, is to discover how easily people can use a web site and feed that information back into improving future designs and implementations.
Agile Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement and encourages rapid and flexible response to change.
Android Android is a mobile operating system based on the Linux kernel and currently developed by Google. With a user interface based on direct manipulation, Android is designed primarily for touchscreen mobile devices such as smartphones and tablet computers, with specialized user interfaces for televisions, cars, and wrist watches. The OS uses touch inputs that loosely correspond to real-world actions, like swiping, tapping, pinching, and reverse pinching to manipulate on-screen objects, and a virtual keyboard.
Appium Appium allows you to automate tests on any iOS or Android mobile app. It is an extention of Selenium WebDriver, and tests can be automated from any popular language and any test framework. Apppium gives you the ability to test native apps withour the need for an SDK.
Automation Framework A test automation framework is a set of tools used to perform automated software testing. Test automation frameworks provide significant advantages over manual testing and are commonly used in rapid software development. These frameworks allow software developers to create tests, execute tests and analyze test results. A test automation framework might be driven by code, data, a graphical user interface (GUI) or a combination of these.
Behviour Driven Development BDD Behavior Driven Development (BDD) is an agile software development technique that encourages collaboration between developers, QA and the business. Software is specified in terms of desired behaviors that have real business value. Requirements are written in the form of user stories and employ domian specific language. This ensures all members of the software development team (both technical and non-technical) understand these requirements. Communication between all roles is therefore encouraged and highly effective.
Big Data Big data is an all-encompassing term for any collection of data sets so large and complex that it becomes difficult to process using traditional data processing applications. The challenges include analysis, capture, curation, search, sharing, storage, transfer, visualization, and privacy violations. The trend to larger data sets is due to the additional information derivable from analysis of a single large set of related data, as compared to separate smaller sets with the same total amount of data, allowing correlations to be found to "spot business trends, prevent diseases, combat crime and so on."
Burn Down Chart A burn down chart is a graphical representation of work left to do versus time. The outstanding work is often on the vertical axis, with time along the horizontal. That is, it is a run chart of outstanding work. It is useful for predicting when all of the work will be completed. It is often used in agile software development methodologies such as Scrum. However, burn down charts can be applied to any project containing measurable progress over time.
Burn Up Chart A burn up chart, or burnup chart, tracks progress towards a projects completion. At each day you can see the amount of work completed and the total amount of work. The distance between the two lines is thus the amount of work remaining. When the two lines meet, the project will be complete. This is a powerful measure of how close you are to completion of the project, similar to a burn down chart.
Calabash Calabash enables you to write and execute automated functional and acceptance tests for mobile apps, using any Ruby-based test framework. Calabash supports both Android and iOS native apps, providing APIs that are specialised to native apps running on touch screen devices.
CI Server A complementary practice to CI is that before submitting work, each programmer must do a complete build and run (and pass) all unit tests. Integration tests are usually run automatically on a CI server when it detects a new commit. All programmers should start the day by updating the project from the repository.
Cloud Computing Cloud computing is computing in which large groups of remote servers are networked to allow the centralized data storage, and online access to computer services or resources. Clouds can be classified as public, private or hybrid.
Continuous Delivery Continuous Delivery makes it possible to continuously adapt software in line with user feedback, shifts in the market and changes to business strategy. Test, support, development and operations work together as one delivery team to automate and streamline the build, test and release process.
Continuous Integration Continuous integration (CI) is the practice, in software engineering, of merging all developer working copies with a shared mainline several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
Cucumber JVM A pure Java implementation of Cucumber.
Cucumber Cucumber is a tool used to test software. It runs automated acceptance tests written in BDD style. Cucumber allows you to execute feature documentation, often known as "stories"
Data Migration Data migration is the process of transferring data between storage types, formats, or computer systems. It is a key consideration for any system implementation, upgrade, or consolidation. Data migration is usually performed programmatically to achieve an automated migration, freeing up human resources from tedious tasks. Data migration occurs for a variety of reasons, including: Server or storage equipment replacements or upgrades; Website consolidation; Server maintenance; and Data center relocation.
DBUnit DbUnit is a JUnit extension targeted at database-driven projects. It puts your database into a known state between test runs, avoiding the issues that usually occur when one test case corrupts the database and causes subsequent tests to fail during a test run.
Digital Revolution The Digital Revolution is the change from analog, mechanical, and electronic technology to digital technology with the adoption and proliferation of digital computers and digital record keeping that continues to the present day. Implicitly, the term also refers to the sweeping changes brought about by digital computing and communication technology during the latter half of the 20th century. The Digital Revolution marked the beginning of the Information Age.
E-Commerce Electronic commerce, commonly known as E-commerce or eCommerce, is trading in products or services using computer networks, such as the Internet. Electronic commerce draws on technologies such as mobile commerce, electronic funds transfer, supply chain management, Internet marketing, online transaction processing, electronic data interchange, inventory management systems, and automated data collection systems. Modern electronic commerce typically uses the World Wide Web for at least one part of the transaction's life cycle, although it may also use other technologies such as e-mail.
Epic A large user story that awaits decomposition into smaller stories prior to implementation.  Epics are typically stories that are far off on the development horizon, usually lower priority items. When an epic story works its way up the backlog, it is usually decomposed into smaller stories.
Exploratory Testing Exploratory testing is a fun yet powerful approach to testing. Most testers perform ad-hoc testing. Exploratory is the evolution of ad-hoc, except whilst you execute your ad-hoc tests you’re taking ‘session-based’ notes to aid and improve the next round of testing.
Feature File A feature file is a file containing a user story (feature) and a set of scenarios specified in Gherkin format, with examples, for consumption by Cucumber or one of the other BDD tools which allow you to specify application features and user scenarios in plain text.
Feature In BDD terms, a 'Feature' is the user story template. A feature has two components; a feature title and a narrative. The feature "title" is a short description of the story. The "narrative" describes the story in detail with role and benefit. This is usually written in the format "As a [Role], I want [feature], so that [Benefit]".
Gherkin Gherkin is the language that Cucumber understands. It is a Business Readable, Domain Specific Language that lets you describe software’s behaviour without detailing how that behaviour is implemented. Gherkin serves two purposes — documentation and automated tests.
Hadoop Apache Hadoop is an open-source software framework for distributed storage and distributed processing of Big Data on clusters of commodity hardware. Its Hadoop Distributed File System splits files into large blocks and distributes the blocks amongst the nodes in the cluster. For processing the data, the Hadoop Map/Reduce ships code to the nodes that have the required data, and the nodes then process the data in parallel.
Hive Apache Hive is an integral part of Hadoop eco-system. Hive facilitates the querying of large data sets on HDFS (Hadoop distributed file system) by using a SQL-like language called Hive Query Language, or HiveQL. As is the case with scripts in other languages such as SQL and Unix Shell, Hive scripts are used to execute a set of Hive commands collectively, negative the need to write and execute each command manually.
iOS iOS is a mobile operating system developed by Apple Inc. and distributed exclusively for Apple hardware. It is the operating system that powers many of the company's iDevices. Originally unveiled in 2007 for the iPhone, it has been extended to support other Apple devices such as the iPod Touch, iPad, iPad Mini and second-generation Apple TV onward.
Java JAR JAR is a package file format typically used to aggregate many Java class files and associated metadata and resources into one file to distribute application software or libraries on the Java platform.
Java Java is a computer programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
JBehave JBehave is a framework for Behaviour-Driven Development (BDD). BDD is an evolution of test-driven development (TDD) and acceptance-test driven design, and is intended to make these practices more accessible and intuitive to newcomers and experts alike. It shifts the vocabulary from being test-based to behaviour-based, and positions itself as a design philosophy.
JIRA JIRA is a tracker tool for software deveopment projects, alowing teams to plan and build software, capture and organize issues, assign work, and follow team activity.
JMeter JMeter is a load testing tool, created by Apache, for analyzing and measuring the performance of web applications. JMeter can also be used for unit testing and some functional testing.
JUnit JUnit is a simple unit testing framework which allows you to write repeatable unit tests in the Java programming language. JUnit has been important in the development of TDD.
Kanban Kanban is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. In this approach, the process, from definition of a task to its delivery to the customer, is displayed for participants to see and team members pull work from a queue.
Load Balancing Load balancing distributes workloads across multiple computing resources, such as computers, a computer cluster, network links, central processing units or disk drives. Load balancing aims to optimize resource use, maximize throughput, minimize response time, and avoid overload of any single resource. Using multiple components with load balancing instead of a single component may increase reliability through redundancy. Load balancing usually involves dedicated software or hardware, such as a multilayer switch or a Domain Name System server process.
Map Reduce MapReduce is a programming model and an associated implementation for processing and generating large data sets with a parallel, distributed algorithm on a cluster. A MapReduce program is composed of a Map procedure that performs filtering and sorting and a Reduce() procedure that performs a summary operation. The "MapReduce System" orchestrates the processing by marshalling the distributed servers, running the various tasks in parallel, managing all communications and data transfers between the various parts of the system, and providing for redundancy and fault tolerance.
Maven Maven is a build automation tool used primarily for Java projects. Maven addresses two aspects of building software: First, it describes how software is built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant it uses conventions for the build procedure, and only exceptions need to be written down. An XML file describes the software project being built, its dependencies on other external modules and components, the build order, directories, and required plug-ins. It comes with pre-defined targets for performing certain well-defined tasks such as compilation of code and its packaging.
M-Commerce M-commerce (mobile commerce) is the buying and selling of goods and services through wireless handheld devices such as smartphons and tablet devices.
Non Functional Testing Non-functional testing is the testing of a software application for its non-functional requirements. The names of many non-functional tests are often used interchangeably because of the overlap in scope between various non-functional requirements.
Open-Source Open source as a development model promotes a universal access via a free license to a product's design or blueprint, and universal redistribution of that design or blueprint, including subsequent improvements to it by anyone.
Pig Pig is a high-level platform for creating MapReduce programs used with Hadoop. Pig Latin (the language for this platform) abstracts the programming from the Java MapReduce into a notation which makes MapReduce programming similar to SQL. Pig Latin supports user defined functions which can be written in Java, Python, JavaScript, Ruby or Groovy.
Poker Planning Planning poker, also called Scrum poker, is a consensus-based technique for estimating, mostly used to estimate effort or relative size of development goals in software development. In planning poker, members of the group make estimates by playing numbered cards face-down to the table, instead of speaking them aloud. The cards are revealed, and the estimates are then discussed. By hiding the figures in this way, the group can avoid the cognitive bias of anchoring, where the first number spoken aloud sets a precedent for subsequent estimates.
Product Backlog The product backlog is an ordered list of requirements that is maintained for a product. It consists of features, bug fixes, non-functional requirements, etc.—whatever needs to be done in order to successfully deliver a viable product. The product backlog items (PBIs) are ordered by the Product Owner based on considerations like risk, business value, dependencies, date needed, etc. Items added to a backlog are commonly written in story format. The product backlog is what will be delivered, ordered into the sequence in which it should be delivered. It is open and editable by anyone, but the Product Owner is ultimately responsible for ordering the items on the backlog for the Development Team to choose.
Proprietary Software Proprietary software or closed source software is computer software licensed under exclusive legal right of the copyright holder with the intent that the licensee is given the right to use the software only under certain conditions, and restricted from other uses, such as modification, sharing, studying, redistribution, or reverse engineering. Usually the source code of proprietary software is not made available.
QABook QABook is a test management product that allows you to manage both agile and traditional software projects.
Ranorex Ranorex is a proprietary test automation tool allowing you to creeate and execute tests on any desktop, web or mobile software. Supported technologies include .NET, Winforms, WPF, Java, HTML5, iOS, Android and Windows Apps
Ruby Ruby is a dynamic, reflective, object-oriented, general-purpose programming language. It supports multiple programming paradigms, including functional, object-oriented, and imperative.
RubyGems RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries, a tool designed to easily manage the installation of gems, and a server for distributing them.
SaaS Software as a service (SaaS; pronounced /sæs/ or /sɑːs/) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as "on-demand software". SaaS is typically accessed by users using a thin client via a web browser.
Scrum Sprint In the Scrum method of agile, work is confined to a regular, repeatable work cycle, known as a sprint (or iteration). Many teams prefer sprint lengths to between one and three weeks.
Scrum Scrum is an iterative and incremental agile software development framework for managing product development. It defines "a flexible, holistic product development strategy where a development team works as a unit to reach a common goal", challenges assumptions of the "traditional, sequential approach" to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project.
Selenium Web Driver Selenium with the inclusion of the WebDriver API. You can now drive a browser natively either locally or on a remote machine, using the Selenium Server.
Selenium Selenium is an open source software testing framework for testing web applications. Tests can be written using a number of popular programming languages including Java, C#, Python and Ruby, and then executed against most modern web browsers.
Smartphone A smartphone is a mobile phone with more advanced computing capability and connectivity than basic feature phones.Smartphones typically include the features of a phone with those of another popular consumer device, such as a personal digital assistant, a media player, a digital camera, and/or a GPS navigation unit. Later smartphones include all of those plus the features of a touchscreen computer, including web browsing, Wi-Fi, 3rd-party apps, motion sensor and mobile payment.
SpecFlow A software tool similar to Cucumber, but for .Net projects
Sprint Planning The sprint planning meeting is attended by the product owner, Scrum Master and the entire Scrum team. During the sprint planning meeting, the product owner describes the highest priority features to the team. The team asks enough questions that they can turn a high-level user story of the product backlog into the more detailed tasks of the sprint backlog.
Sprint Retrospective A brief, dedicated period at the end of each sprint, usually after the sprint review, designed to reflect on how the team are doing and to find ways to improve. This session usually lasts about an hour.
Sprint Review At the end of each sprint, a sprint review meeting is held. During this meeting, the Scrum team shows what they have accomplished during the sprint. Typically this takes the form of a demo of the new features.
Sprint See 'Scrum Sprint'
Story Points A story point is a arbitrary measure used by Scrum teams. This is used to measure the effort required to implement a story. In simple terms its a number that tells the team how hard the story is. Hard could be related to complexity, Unknowns and effort.
Tablet Device A mobile computer with display, circuitry and battery in a single unit. Tablets come equipped with sensors, including cameras, a microphone, an accelerometer and a touchscreen, with finger or stylus gestures substituting for the use of computer mouse and keyboard. Tablets may include physical buttons and ports. They usually feature on-screen, pop-up virtual keyboards for typing. Tablets are typically larger than smart phones or personal digital assistants at 7 inches or larger, measured diagonally.
Technology Stack A technology stack comprises the layers of components or services that are used to provide a software solution or application. Technology stacks are often articulated as a list of technologies - within the agile test automation space this would look something like Selenium, Ruby, Cucumber, Jenkins and Git.
Test Automation Test automation is the use of special software tools to control the execution of tests, automate repetitive but necessary tasks or tests, and compare actual outcomes with predicted ones. Test automation is a great way to quickly perform laborious or manual tasks and removes the risk of human error.
Test Driven Development TDD Test-driven development (TDD) is a software development process whereby the developer writes an automated unit test designed to fail. This failed test then defines a desired improvement or new function. The developer then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.
Test Run Exercise that puts a machine, process, or system through a series of actions under actual or simulated environmental/operating conditions to ascertain its current status or to verify its reliability.
Test Scenario Scenario testing is a software testing activity that uses scenarios: hypothetical stories to help the tester work through a complex problem or test system. The ideal scenario test is a credible, complex, compelling or motivating story the outcome of which is easy to evaluate.
TestNG TestNG is a testing framework which covers a wider range of test phases; unit, functional, end-to-end and integration. Using the Java programming language, it is inspired from Junit, and has been designed with ease-of-use in mind.
Tool Agnostic Where tool selection is based on factors like technology, the application, the market, or the surrounding IT infrastructure. At QAWorks, we would conduct some intitial investigation on the process employed and the software under test, before deciding on the most suitable test tools for the job.
Traceability Traceability (or Requirements Traceability) refers to the ability to link product requirements back to stakeholders' rationales and forward to corresponding design artifacts, code, test cases and defects.
Traditional Testing Traditional testing usually assumes a waterfall or v-model process, where testing happens after the development phase. Testers create their tests from the requirements gathered at the beginning of the project. In the stereotypical sense, large organizations have a QA department completely separated from development departments, where they are handed the final application toexecute their tests against.
Version Control A version control (or source control) system is a repository of files, often the files for the source code of computer programs, with monitored access. Every change made to the source is tracked, along with who made the change, why they made it, and references to problems fixed, or enhancements introduced, by the change.
Virtual Machine A virtual machine (VM) is an emulation of a particular computer system. Virtual machines operate based on the computer architecture and functions of a real or hypothetical computer, and their implementations may involve specialized hardware, software, or a combination of both.
W3C The World Wide Web Consortium is the main international standards organization for the World Wide Web. Founded and currently led by Tim Berners-Lee, the consortium is made up of member organizations which maintain full-time staff for the purpose of working together in the development of standards for the World Wide Web. As of 24 May 2014, the World Wide Web Consortium has 385 members.
Watferfall Model The waterfall model is a sequential design process, used in software development processes, in which progress is seen as flowing steadily downwards through the phases of Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation and Maintenance.