Specification By Example
   HOME
*





Specification By Example
Specification by example (SBE) is a collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements. It is applied in the context of agile software development methods, in particular behavior-driven development. This approach is particularly successful for managing requirements and functional tests on large-scale projects of significant domain and organisational complexity. Specification by example is also known as example-driven development, executable requirements, acceptance test–driven development (ATDD or A-TDD), Agile Acceptance Testing, Test-Driven Requirements (TDR). Advantages Highly abstract or novel new concepts can be difficult to understand without concrete examples. Specification by example is intended to construct an accurate understanding, and significantly reduces feedback loops in software development, leading ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Software Requirement
In product development and process optimization, a requirement is a singular documented physical or functional need that a particular design, product or process aims to satisfy. It is commonly used in a formal sense in engineering design, including for example in systems engineering, software engineering, or enterprise engineering. It is a broad concept that could speak to any necessary (or sometimes desired) function, attribute, capability, characteristic, or quality of a system for it to have value and utility to a customer, organization, internal user, or other stakeholder. Requirements can come with different levels of specificity; for example, a requirement specification or requirement "spec" (often imprecisely referred to as "the" spec/specs, but there are actually different sorts of specifications) refers to an explicit, highly objective/clear (and often quantitative) requirement (or sometimes, ''set'' of requirements) to be satisfied by a material, design, product, or se ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Extreme Programming
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PDFHuman Centred Technology Workshop 2006 /ref> it advocates frequent releases in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Other elements of extreme programming include: programming in pairs or doing extensive code review, unit testing of all code, not programming features until they are actually needed, a flat management structure, code simplicity and clarity, expecting changes in the customer's requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers.
[...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Software Development Philosophies
Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists of machine language instructions supported by an individual processor—typically a central processing unit (CPU) or a graphics processing unit (GPU). Machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state. For example, an instruction may change the value stored in a particular storage location in the computer—an effect that is not directly observable to the user. An instruction may also invoke one of many input or output operations, for example displaying some text on a computer screen; causing state changes which should be visible to the user. The processor executes the instructions in the order they are provided, unless it is instru ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Gauge (software)
Gauge is a light weight cross-platform test automation tool. It uses markdown to author test cases and scenarios. Its modular architecture makes it flexible and scalable. Markdown Gauge specifications are written in the business language. For example, Find movies playing near me The System Under Test in this example is a web application to find and book movie tickets Search for movies ----------------- * Specify location as "Bangalore" * Search for movie "Star Wars" * Verify that "INOX" is playing "Star Wars" at "7:30 pm" Book movie ticket ----------------- * Sign up with email address * Complete the verification * Select location as "Bangalore", the movie "Star Wars" and "3" seats * Confirm and pay * Verify the "e-ticket" has been sent to the registered email. This Gauge specification describes a feature of the System Under Test. The scenarios Search for movies and Book movie ticket represent a flow in this specification. Steps are executable parts of a specificati ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Robot Framework
Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). It is a keyword-driven testing framework that uses tabular test data syntax. History The basic ideas for Robot Framework were shaped in Pekka Klärck's masters thesis in 2005. The first version was developed at Nokia Networks the same year. Version 2.0 was released as open source software June 24, 2008 and version 3.0.2 was released February 7, 2017. The framework is written using the Python programming language and has an active community of contributors. It is released under Apache License 2.0 and can be downloaded from robotframework.org. In 2020 survey it scored 8 among 12 test automation frameworks, with 3 % of respondents using it. In 2021 it had fallen to 18 among 22 with 2 % usage. Description Test cases are written using a keyword-testing methodology written in a tabular format. These tables can be written in plain text, tab-separated value ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Cucumber (software)
Cucumber is a software tool that supports behavior-driven development (BDD). Central to the Cucumber BDD approach is its ordinary language parser called Gherkin. It allows expected software behaviors to be specified in a logical language that customers can understand. As such, Cucumber allows the execution of feature documentation written in business-facing text. It is often used for testing other software. It runs automated acceptance tests written in a behavior-driven development (BDD) style. Cucumber was originally written in the Ruby programming language. and was originally used exclusively for Ruby testing as a complement to the RSpec BDD framework. Cucumber now supports a variety of different programming languages through various implementations, including Java and JavaScript. The open source port of Cucumber in .NET is called SpecFlow. For exampleCuke4phpanCuke4Luaare software bridges that enable testing of PHP and Lua projects, respectively. Other implementations m ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Concordion
Concordion is a specification by example framework originally developed by David Peterson, and now maintained by a team of contributors, led by Nigel Charman. Inspired by the Fit Framework, David states the following aims were behind Concordion: * Improved readability of documents * More "opinionated" (scripting is actively discouraged) * Easier to use How it works Concordion specifications are written in Markdown, HTML or Excel and then instrumented with special links, attributes or comments respectively. When the corresponding test fixture class is run, Concordion interprets the instrumentation to execute the test. Rather than forcing product owners to specify requirements in a specially structured language, Concordion lets you write them in normal language using paragraphs, tables and proper punctuation. This makes the specifications much more natural to read and write, and helps everyone to understand and agree about what a feature is supposed to do. The Markdown, HTML o ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Behat (computer Science)
Behat is a test framework for behavior-driven development written in the PHP programming language. Behat was created by Konstantin Kudryashov and its development is hosted on GitHub. Purpose Behat is intended to aid communication between developers, clients and other stakeholders during a software development process. It allows the clear documentation of testable examples of the software's intended behaviour. Behat test scenarios are written with Gherkin, a business-readable domain-specific language following defined patterns. Benefits Tests can be run at any point new code is introduced into a codebase to confirm no regressions within the existing test coverage are introduced. It can be integrated with Selenium and other browser emulators to generate screenshots of failures. Like other BDD frameworks, Behat scenarios are a series of Given, When, and Then steps that explain a business case. The definition of these steps exist within method annotations An annotation is extra ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Domain-driven Design
Domain-driven design (DDD) is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts. Under domain-driven design, the structure and language of software code (class names, class methods, class variables) should match the business domain. For example, if software processes loan applications, it might have classes like loan application, customer, and methods such as accept offer and withdraw. Domain-driven design is predicated on the following goals: * placing the project's primary focus on the core domain and domain logic; * basing complex designs on a model of the domain; * initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems. Criticisms of domain-driven design argue that developers must typically implement a great deal of isolation and encapsulation to maintain the model as a pure and helpful constru ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Martin Fowler (software Engineer)
Martin Fowler (18 December 1963) is a British software developer, author and international public speaker on software development, specialising in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming. His 1999 book ''Refactoring'' popularised the practice of code refactoring. In 2004 he introduced a new architectural pattern, called Presentation Model (PM). Biography Fowler was born and grew up in Walsall, England, where he went to Queen Mary's Grammar School for his secondary education. He graduated at University College London in 1986. In 1994 he moved to the United States, where he lives near Boston, Massachusetts in the suburb of Melrose.Martin Fowler
at martinfowler.com. Retrieved 2012-11-15.
Fowler started working with software in the early 1980s. Out of ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]