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.
Continuous Testing (CT)
Continuous testing was originally proposed as a way of reducing waiting time for feedback to developers by introducing development environment-triggered tests as well as the more traditional developer/tester-triggered tests. Continuous testing is the process of executing automated tests as part of the software delivery pipeline to obtain immediate feedback on the business risks associated with a software release candidate. For Continuous Testing, the scope of testing extends from validating bottom-up requirements or user stories to assessing the system requirements associated with overarching business goals.
A software development practice, grounded in agile philosophy that emphasizes close collaboration between an organization’s software developers and other IT professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and organizational workflow in which building, testing, and releasing software happens rapidly, frequently, and more reliably.
The term derived from the words “Development” and “Operations”.
The study of algorithms and mathematical models that computer systems use to progressively improve their performance on a specific task. Most machine learning systems are based on neural networks or sets of layered algorithms whose variables can be adjusted via a learning process
Still, in its infancy, self-healing tests, are largely where test automation and artificial intelligence converge.] This is where artificial intelligence can try and learn whether a change to the website you are testing that has caused your test to fail is something that is expected. If it is identified as an expected change, the artificial intelligence will then automatically modify your code to fix the problem.
ALM (Application Lifecycle Management): A continuous process of managing the life of an application through governance, development and maintenance. ALM is the marriage of business management to software engineering made possible by tools that facilitate and integrate requirements management, architecture, coding, testing, tracking, and release management. Source Control: There are many source control tools, and ...
Teaching: A formal process of bringing about awareness, conferring knowledge and instilling skills. Teaching focuses on knowledge. Training: Prepares an individual or group to execute a skill. The focus of training is skill development.
A list of terms that are either found in the articles of the December 2015 edition, or are related to concepts relevant to those articles.
Closed System – In the context of embedded systems this relates closely to the engineering context where every input and every response (or output) can be known and can include a specific time. In addition the software is purposely designed for restricted access.
Platform – A computing platform includes a hardware architecture and a software framework (including application frameworks), where the combination allows software, particularly application software, to run. Typical platforms include a computer architecture, operating system, programming languages, related user interface and tools. For example, Android, the most common mobile platform, is Google’s open and free software ...
Mobility While mobile usually refers to mobile device, mobile apps, mobile platform. Mobility is a term describing not only the device but access for employees accessing corporate data from any location, cloud storage and cloud API services, mobile context awareness, integration with a variety of Internet of Things devices. It’s access to the data, products, and ...
Virtualization: Virtualization (or virtualisation) is the simulation of the software and/or hardware upon which other software runs. This simulated environment is called a virtual machine . There are many forms of virtualization, distinguished primarily by computing architecture layer. Virtualized components may include hardware platforms, operating systems (OS), storage devices, network devices or other resources.
A list of terms that you'd easily encounter on your way to experience Software Testing, Software Development, and other IT concepts.
Ultra-large-scale system An ultra-large-scale systems (ULSS) is one which has the characteristics of: operationally independent sub-systems; managerially independent components and sub-systems; evolutionary development; emergent behavior; and geographic distribution.
Alexa Voice Service (AVS): Amazon’s service offering for a voice controlled AI assistant. Offered in different products. Source: https://whatis.techtarget.com/definition/Alexa-Voice-Services-AVS Blockchain Infrastructure: A complex, decentralized architecture that orchestrates many systems running asynchronously over the internet in order to create a secured database that records sensitive data of certain users into forms of transactions, Source: https://blockgeeks.com/guides/what-is-blockchain-technology/ Chatbot: ...
Some Mobile Device Input Methods Swipe/Swype: An action taken on a device’s screen that involves translational movement of touch points. A swipe recognizer makes an instantaneous decision as to whether the user’s touches moved linearly in the required direction.
Lean Defining Lean Software Development is challenging because there is no specific Lean Software Development method or process. Lean is not an equivalent of Personal Software Process, V-Model, Spiral Model, EVO, Feature-Driven Development, Extreme Programming, Scrum, or Test-Driven Development. A software development lifecycle process or a project management process could be said to be “lean” ...