In computer science, ACID (atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequence of database operations that satisfies the ACID properties (which can be perceived as a single logical operation on the data) is called a transaction.
Agile Release Trains (ARTs)
The Agile Release Train (ART) is a long-lived team of Agile teams, which, along with other stakeholders, incrementally develops, delivers, and where applicable operates, one or more solutions in a value stream.
Agile Testing Quadrants
Agile testing quadrants may be considered as a tool or a manual outlined by the Brain Marick, which divides the whole agile testing methodology into four quadrants for arranging the testing types to be performed at each different level to suit the agile manifesto.
Behavior Driven Development (BDD)
A software development methodology in which an application is specified and designed by describing how its behavior should appear to an outside observer. BDD combines the general techniques and principles of test-driven development (TDD) with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development. BDD offers the ability to enlarge the pool of input and feedback to include business stakeholders and end users who may have little software development knowledge. Because of this expanded feedback loop, BDD works well in continuous integration and continuous delivery environments.
Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method of test can be applied virtually to every level of software testing: unit, integration, system and acceptance. It is sometimes referred to as specification-based testing.
Given-When-Then (GWT) is a semi-structured way to write down test cases. They can either be tested manually or automated as browser tests with Selenium.
Happy Path Test
Happy path testing is a well-defined test case using known input, which executes without exception and produces an expected output.
“Just in Time” (JIT Test Design)
A principle of Lean Software Development, Just in Time is a workflow methodology aimed at reducing flow times within a production system, as well as the response times from suppliers and to customers; it helps organizations to control variability within production, which improves productivity and decreases costs.
A Key Performance Indicator (KPI) is a measurable value that demonstrates how effectively a company is achieving key business objectives. Organizations use KPIs at multiple levels to evaluate their success at reaching targets. High-level KPIs may focus on the overall performance of the business, while low-level KPIs may focus on processes in departments such as sales, marketing, HR, support and others.
Quality at Every Step
A principle of Lean Software Development that says quality output is not only measured at the end of the production line but at every step of the productive process and is the responsibility of each individual who contributed to the production or on-time delivery of a product or service.
SAFe (Scaled Agile Framework)
The Scaled Agile Framework® (SAFe®) is a set of organization and workflow patterns for implementing agile practices at enterprise scale. The framework is a body of knowledge that includes structured guidance on roles and responsibilities, how to plan and manage the work, and values to uphold.
Shift-left testing is an approach to Software Testing and system testing in which testing is performed earlier in the lifecycle (i.e. moved to the left on the project timeline).
Smoke testing is non-exhaustive software testing, ascertaining that the most crucial functions of a program work, but not bothering with finer details. The term comes to software testing from a similarly basic type of hardware testing, in which the device passed the test if it didn’t catch fire the first time it was turned on. A daily build and smoke test is among industry best practices advocated by the IEEE (Institute of Electrical and Electronics Engineers).
These principles, when combined together, make it easy for a programmer to develop software that are easy to maintain and extend. They also make it easy for developers to avoid code smells, easily refactor code, and are also a part of the agile or adaptive software development. This acronym stands for (S) Single-responsibility principle; (O) Open-closed principle; (L) Liskov substitution principle; (I) Interface segregation principle; (D) Dependency inversion principle.
Test-Driven Development (TDD)
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the code is improved so that the tests pass. This is opposed to software development that allows code to be added that is not proven to meet requirements.
Test Early, Test Often
Software testing should start early in the Software Development Life Cycle. This helps to capture and eliminate defects in the early stages of SDLC i.e requirement gathering and design phases. An early start to testing helps to reduce the number of defects and ultimately the rework cost in the end.
User Acceptance Testing (UAT)
User Acceptance Testing (UAT), also known as beta or end-user testing, is defined as testing the software by the user or client to determine whether it can be accepted or not. This is the final testing performed once the functional, system and regression testing are completed.
White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of software testing that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal perspective of the system, as well as programming skills, are used to design test cases.