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.
A refinement of the keyword-driven test approach that provides a powerful framework for organizing test design, automation and execution around keywords. In ABT, keywords are called “actions”. Actions are the tasks that are executed during a test. Rather than automating an entire test as one long script, tests are assembled using individual actions. Unlike traditional test design, which begins with a written narrative that must be interpreted by each tester or automation engineer, ABT test design takes place in a spreadsheet format called a test module. Actions, test data and any necessary GUI interface information are stored in separate files and referenced by the main test module.
The Action Based Testing™ method represents the continued evolution of the keyword-based testing approach and is the foundation of LogiGears test automation toolset, TestArchitect™, which uses keywords to create and automate the majority of tests without scripting of any kind.
Action-Based Testing (ABT) provides a powerful framework for organizing test design, automation and execution around keywords. In ABT, keywords are called actions-to make the concept absolutely clear. Actions are the tasks that are executed during a test. Rather than automating an entire test as one long script, tests are assembled using individual actions. Non-technical test engineers and business analysts can then define their tests as a series of these automated actions.
Unlike traditional test design, which begins with a written narrative that must be interpreted by each tester or automation engineer, ABT test design takes place in a spreadsheet format called a test module. Actions, test data, and any necessary GUI interface information are stored separately and referenced by the main test module.
Characterized by quickness, lightness, and ease of movement; nimble. Not necessarily characterized by fast speed. Agile software development is a software development practice based on iterative and incremental development where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change.
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 Release Trains align teams to a shared business and technology mission.
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.
Amazon’s service offering for a voice controlled AI assistant. Offered in different products.
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.
Also referred to as continuous learning, amplify learning is a process in which we increase the ability of the development team to learn quickly and effectively, with the most important subject of learning being user needs and feedback
A Linux-based operating system designed primarily for touchscreen mobile devices such as smartphones and tablet computers. It is currently developed by Google in conjunction with the Open Handset Alliance. Android has a large community of developers writing applications (“apps”) that extend the functionality of devices, written primarily in a customized version of Java. They are available for download through Google Play or third-party sites.
An angle of attack indicator offers a visual indication of the amount of lift the wing is generating at a given airspeed or angle of bank; it delivers critical information visually or through an aural tone to indicate the actual safety margin above an aerodynamic stall.
An application programming interface (API) specifies how some software components should interact with each other.
An API specification can take many forms, including an International Standard such as POSIX, vendor documentation such as the Microsoft Windows API, the libraries of a programming language, e.g., Standard Template Library in C++ or Java API. Web APIs are also a vital component of today’s web fabric.
Application software, also known as an application or an app, is computer software designed to help the user to perform specific tasks. Some applications are designed to run on smartphones, tablet computers and other mobile devices. These mobile apps are available through application distribution platforms, which are typically operated by the owner of the mobile operating system, such as the Apple App Store, Google Play, Windows Phone Store and BlackBerry App World.
Product backlog is an ordered list of “requirements” that is maintained for a product.
Sprint backlog is the list of work the Development Team must address during the next sprint.
Increment is the sum of all the Product Backlog Items completed during a sprint and all previous sprints.
Burn down is a graphical representation of work left to do versus time.
Intelligence demonstrated by machines, in contrast to the natural intelligence displayed by humans and other animals. Colloquially, the term “artificial intelligence” is applied when a machine mimics “cognitive” functions that humans associate with other human minds, such as “learning” and “problem solving”.
Artificial Neural Networks
Connectionist systems computing systems vaguely inspired by the biological neural networks that constitute animal brains. The neural network itself is not an algorithm, but rather a framework for many different machine learning algorithms to work together and process complex data inputs.
Any type of automated software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes, such as enhancements, patches or configuration changes, have been made to them.
Short for “automatic pilot,” a device for keeping an aircraft on a set course without the intervention of the pilot.
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.
BUSINESS INTELLIGENCE (BI) is the process of gathering, cleansing, analyzing, integrating and sharing data to derive actional insights that drive business growth. Business Intelligence Testing or BI testing verifies the staging data, ETL process, BI reports and ensures the implementation is correct. BI Testing ensures data credibility and accuracy of insights derives from the BI process.
A collection of data sets so large and complex that it becomes difficult to process using on-hand database management tools or traditional data processing applications. The challenges include capture, cu ration, storage, search, sharing, analysis, and visualization.
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.
A growing list of records, called blocks, which are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data.
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.
Machines that can substitute for humans and replicate human actions. Robots can be used in many situations and for lots of purposes, but today many are used in dangerous environments (including bomb detection and deactivation), manufacturing processes, or where humans cannot survive (e.g. in space). Robots can take on any form but some are made to resemble humans in appearance.
The act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities including things like:
Compiling computer source code into binary code.
Packaging binary code.
Deployment to production systems.
Creating documentation and/or release notes.
Build Verification Test is a set of tests run on every new build to verify that build is testable before it is released to the test team for further testing. These test cases are core functionality test cases that ensure the application is stable and can be tested thoroughly.
Branch coverage is a testing method, which aims to ensure that each one of the possible branch from each decision point is executed at least once and thereby ensuring that all reachable code is executed. That is, every branch taken each way, true and false. It helps in validating all the branches in the code making sure that no branch leads to abnormal behavior of the application. The formula is as follows:
Sprint planning meeting– At this meeting, your product owner works with your team to determine which stories it will complete in the sprint.
Daily Standup– A daily team meeting held to provide a status update to the team members. The ‘semi-real-time’ status allows participants to know about potential challenges as well as coordinate efforts to resolve difficult and/or time-consuming issues.
Sprint Review– During this meeting the Scrum team shows what they accomplished during the sprint. Typically this takes the form of a demo of the new features.
Sprint Retrospective– A brief, dedicated period at the end of each sprint to deliberately reflect no how they are doing and to find ways to improve.
An automated program that interacts with people using generated responses from keywords.
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.
Application programming interfaces (APIs) used to build applications in the cloud computing market. Cloud APIs allow software to request data and computations from one or more services through a direct or indirect interface. Cloud APIs most commonly expose their features via REST and/or SOAP. Vendor specific and cross-platform interfaces are available for specific functions.
Cloud computing is a concept used to describe a variety of computing concepts that involve a large number of computers connected through a real-time communication network such as the Internet. In science, cloud computing is a synonym for distributed computing over a network, and means the ability to run a program or application on many connected computers at the same time. The phrase also more commonly refers to network-based services, which appear to be provided by real server hardware, and are in fact served up by virtual hardware, simulated by software running on one or more real machines. Such virtual servers do not physically exist and can therefore be moved around and scaled up (or down) on the fly without affecting the end user – arguably, rather like a cloud.
The use of computing resources (hardware and software) that are delivered as a service over a network (typically the Internet). The name comes from the use of a cloud-shaped symbol as an abstraction for the complex infrastructure it contains in system diagrams. Cloud computing entrusts remote services with a user’s data, software and computation.
The process of aiding in the improvement and application of knowledge. Coaching involves assisting individuals in refining their skills and learning through practice.
The ability to install, implements, and successfully get the latest version of software to work.
Concurrency refers to multiple things happening at the same time. In testing, it’s all about the fact that your web application, mobile application, etc., may be required, in a real world setting, to respond to multiple demands occurring in parallel.
Load testing is the method by which we test to ensure that an application, and the resources it has to work with, is equipped to handle the level of concurrency that it can expect to find in the field.
A consultant is one who is employed or involved in giving professional advice to the public or to those practicing the profession.
Context-aware mobility provides the ability to dynamically capture and use contextual information about mobile assets to optimize, change, or create communications flow and business processes. Contextual information can be collected for any mobile asset involved in a business process, and this includes not just devices and products but also people. For instance, a mobile asset can be a worker, a customer, or a patient, or it can be a pallet of finished goods.
Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way.
The implementation of continuous processes of applying quality control—small pieces of effort, applied frequently. Continuous Integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.
A software engineering practice in which the changes made by developers to working copies of code are added to the mainline code base on a frequent basis, and immediately tested. The goal is to provide rapid feedback so that, if a defect is introduced into the mainline, it can be identified quickly and corrected as soon as possible. Continuous integration software tools are often used to automate the testing and build a document trail. Because CI detects deficiencies early on in development, defects are typically smaller, less complex, and easier to resolve. In the end, well-implemented CI reduces the cost of software development and helps speed time to market.
Continuous integration and continuous deployment merge development with testing, allowing developers to build code collaboratively, submit it to the master branch, and check for issues.
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.
Any interface that can converse with people on a personal, social level.
Cross Browser Testing is a process to test web applications across multiple browsers. Cross-browser testing involves checking the compatibility of your application across multiple web browsers and ensures that your web application works correctly across different web browsers. Cross-Browser testing involves testing both the client-side and server-side behavior of your Web application when it is accessed using different Web Browsers.
An attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation. In mobile, for example, many test teams struggle with cross platform automation, meaning trying to use the same automation tool or scripts on iOS, Android and/or Win Mobile.
A corporate culture (cultural statement) practiced by the entire workforce contributes significantly to the satisfaction of our employees and our success in the market. Our corporate culture defines the basic principles, objectives, and values of our actions. It guarantees the success of our collaboration-both inward and outward.
Applications that run on a P2P network of computers rather than a single computer.
The process of discovering patterns in large data sets involving methods at the intersection of machine learning, statistics, and database systems.
Data science is an interdisciplinary field that uses scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured, similar to data mining
A database that is designed for query and analysis rather than for transaction processing. It is constructed by integrating the data from multiple heterogeneous sources, enabling a company or organization to consolidate data from several sources and separate analysis workload from transaction workload.
Part of a broader family of machine learning methods based on learning data representations, as opposed to task-specific algorithms. Learning can be supervised, semi-supervised, or unsupervised.
This principle of Lean Software Development centers around the idea that the faster you deliver your product to customers, the faster you will receive feedback, which in turn will get the customers what they want faster.
An algorithm that, given a particular input, will always produce the same output, with the underlying machine always passing through the same sequence of states.
A device under test (DUT), also known as equipment under test (EUT) and unit under test (UUT), is a manufactured product undergoing testing, either at first manufacture or later during its life cycle as part of ongoing functional testing and calibration checks. This can include a test after repair to establish that the product is performing in accordance with the original product specification.
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.
Term derived from the words “Development” and “Operations”.
Digital modernization, in simple language, is the process of upgrading existing processes and adopting new technology systems to meet the needs of the industry.
The adoption of digital technology to transform services or businesses, through replacing non-digital or manual processes with digital processes or replacing older digital technology with newer digital technology. Digital solutions may enable–in addition to efficiency via Automation–new types of innovation and creativity, rather than simply enhancing and supporting traditional methods
The adoption of digital technology to transform services or businesses, through replacing non-digital or manual processes with digital processes or replacing older digital technology with newer digital technology.
A computer language tailored for a specific application or discipline (domain). In automated testing, for example, the keyword-driven approach, such as that which is implemented by LogiGear’s TestArchitect automation tool, allows teams to develop their own customized domain languages. Such languages allow for easier implementation of testing scenarios, and aid in communication between organizational teams.
Also referred to as domain-specific language.
Electronic control unit
A central, sometimes distributed but clearly distinguishable, part of a mechanism that controls its operation, for example a computer that controls the ABS of a motor vehicle.
An ECU is any embedded system in automotive electronics that controls one or more of the electrical systems or subsystems in a vehicle. Some modern vehicles have up to 80 ECUS and the embedded software in ECUs continues to increase in line count, complexity, and sophistication. Some ECU examples are: engine control module (ECM), powertrain control module (PCM), transmission control module (TCM), and so many more.
An operating system for embedded computer systems. The application, including the operating system, is usually statically linked together and does not load and execute applications.
Computer software, written to control machines or devices that are not typically thought of as computers. It is typically specialized for the particular hardware that it runs on and has time and memory constraints. A characteristic feature is that no or not all functions of embedded software are initiated/controlled via a human interface, but through machine-interfaces instead.
The capacity to be aware of, control, and express one's emotions, and to handle interpersonal relationships judiciously and empathetically. "emotional intelligence is the key to both personal and professional success".
In computing, an emulator is hardware or software or both that duplicates (or emulates) the functions of a first computer system (the guest) in a different second computer system (the host), so that the emulated behavior closely resembles the behavior of the real system.
The core processes that are needed to run a company: finance, HR, manufacturing, supply chain, services, procurement, and others. ERP integrates these processes into a single system.
An open-source, public, blockchain-based distributed computing platform and operating system featuring smart contract functionality.
Describes standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.
ETL stands for "Extract-Transform-Load" and it is a process of how data is loaded from the source system to the data warehouse; the data is extracted from a transaction database, transformed to match the requirements of the data warehouse, and then loaded into the data warehouse database.
XP which is also known as extreme programming is an Agile software development approach which consists of several practices and values. It is focused on software development rather than project management.
Most commonly found in documents communicated by stakeholders to the development team. They might take the form of an elaborate design specification, a set of acceptance criteria, or a set of wireframes.
eXP which is also known as extreme programming is an Agile software development approach which consists of several practices and values. It is focused on software development rather than project management.
XP is a software development methodology which is intended to improve software quality and responsiveness to changing customer cycles. A type of Agile software development, it advocates frequent “releases” in short development cycles, which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted.
In electronic systems and computing, firmware is the combination of persistent memory and program code and data stored in it. Typical examples of devices containing firmware are embedded systems (such as traffic lights, consumer appliances, and digital watches), computers, computer peripherals, mobile phones, and digital cameras
An abstraction in which software providing generic functionality can be selectively changed by additional user written code, thus providing application specific software. A software framework is a universal, reusable software platform used to develop applications, products and solutions.
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 testing is a well-defined test case using known input, which executes without exception and produces an expected output.
Haptics use tactile interfaces (for example, steering wheels and seats) to provide touch or force feedback as part of the user interface (UI) in vehicles (e.g. a vibrating seat to inform the driver of a pedestrian about to cross the street). Haptic technology has the potential to add new forms of driver communication to a vehicle, and to improve the overall usability of vehicles and their information applications.
These skills are based on facts, are universal and can be learned from books. These tend to be process, technical, measurement and scientific skills.
High availability is a system design approach and associated service implementation that ensures a prearranged level of operational performance will be met during a contractual measurement period.
Unavailability is most often called “downtime” and its avoidance requires redundancy, fail-over, or load balancing.
People commonly refer to 24/7, but a high availability system is characterized by its specified availability level. A typical spec, what’s popularly known as “four nines availability”, is 99.99% uptime, allowing for 52.56 minutes of downtime per year. Systems such as these are used worldwide in the most important applications such as medical informatics, nuclear power, financial institutions, aeronautics, airlines, news reporting, e-commerce, online transaction processing and persistent online games.
High volume and high capacity
The primary goal of volume and capacity testing is to ensure that IT capacity meets current and future business requirements in a cost-effective manner.
A markup language for structuring and presenting content for the World Wide Web and a core technology of the Internet. The focus of HTML5 is improving multimedia applications and redesigning the web for a much broader range of devices, particularly mobile devices. While some companies have started to use the language, it’s still in its infancy and will not be standard until 2020. Facebook spent 2 years developing a mobile app in HTML5 which CEO, Mark Zuckerberg stated was, “probably the biggest strategic mistake we made.”
A human-machine interface (HMI) is the user interface that connects an operator to the controller for an industrial system.
Hybrid cloud is a composition of two or more clouds (private, community or public) that remain unique entities but are bound together, offering the benefits of multiple deployment models.
Involves a combination of delivery methods – online and standup, live classroom instructor delivery. May include video, books or online instruction with group projects. Hybrid is a combination of delivery methods.
All the things that users are going to expect that were not captured explicitly. Examples include performance, usability, availability, and security.
A device that is designed to easily perform a specific electronic function such as playing music, photography, or editing text.
Integrated infotainment systems in automobiles that deliver entertainment and information content...while each IVI system is different, typical tasks that can be performed with an in-vehicle infotainment system include managing and playing audio content, utilizing navigation for driving, delivering rear-seat entertainment such as movies, games, social networking, etc., listening to incoming and sending outgoing SMS text messages, making phone calls, and accessing Internet-enabled or smartphone-enabled content such as traffic conditions, sports scores and weather forecasts.
In the most basic cloud-service model, providers of IaaS offer computers – physical or (more often) virtual machines – and other resources. IaaS clouds often offer additional resources such as a virtual-machine disk image library, raw (block) and file-based storage, firewalls, load balancers, IP addresses, virtual local area networks (VLANs), and software bundles. IaaS-cloud providers supply these resources on-demand from their large pools installed in data centers. For wide-area connectivity, customers can use either the Internet or carrier clouds (dedicated virtual private networks).
The act of introducing something new, such as a new method or device.
Innovation and predictability
Innovation and predictability are often seen at odds since innovation and change will reduce predictability and increase risk. The amount of added risk will increase significantly due to their size, complexity and emergent nature.
Can be either online live or in-classroom live. Does not mean watching a video, viewing Flash content or reading.
An automated AI system that can perform human-like tasks, such as grocery shopping or scheduling appointments.
Interconnection of uniquely identifiable embedded computing like devices with the existing Internet infrastructure.
A mobile operating system developed and distributed by Apple Inc. The user interface of iOS is based on the concept of direct manipulation, using multi-touch gestures. iOS is derived from OS X, with which it shares the Darwin foundation, and is therefore a Unix operating system. iOS is Apple’s mobile version of the OS X operating system used on Apple computers.
IT Modernization aims to bring legacy IT infrastructure up-to-date and focuses on addressing operational challenges, including efficiency, access, security, and agility.
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 Lean method to manage and improve work across human systems. This approach aims to manage work by balancing demands with available capacity, and by improving the handling of system-level bottlenecks.
Kanban is a method for developing software products & processes with an emphasis on just-in-time delivery while not overloading the software developers. It emphasizes that developers pull work from a queue, and the process, from definition of a task to its delivery to the customer, is displayed for participants to see.
Kanban can be divided into two parts:
1) Kanban – A visual process management system that tells what to produce, when to produce it, and how much to produce.
2) The Kanban method – an approach to incremental, evolutionary process change for organizations.
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.
Represent behaviors that users do not expect based on their previous experiences but which will make them like the software more.
Lean software development is a translation of lean manufacturing and lean IT principles and practices to the software development domain. Adapted from the Toyota production system, a pro-lean subculture is emerging from within the Agile community. When lean documentation is employed, it will result in reduced waste of time, money, and resources.
A life-critical system or safety-critical system is a system whose failure or malfunction may result in one or more of the following:
death or serious injury to people
loss or severe damage to equipment
Risks of this sort are usually managed with the methods and tools of safety engineering. A life-critical system is designed to lose less than one life per billion (109) hours of operation. Typical design methods include probabilistic risk assessment, a method that combines failure mode and effects analysis (FMEA) with fault tree analysis. Safety-critical systems are increasingly computer-based.
In-person instruction wherein the instructor interacts with students/trainees in a live environment such as a classroom.
The process of putting demand on a system or device and measuring its response. Load testing is performed to determine a system’s behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any bottlenecks and determine which element is causing degradation.
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
The ease with which a product can be maintained in order to: isolate defects or their cause, correct defects or their cause, meet new requirements, make future maintenance easier, or cope with a changed environment.
The Maneuvering Characteristics Augmentation System (MCAS) is a flight control law implemented on the 737 MAX to improve aircraft handling characteristics and decrease pitch-up tendency at elevated angles of attack.
A massively multiplayer online game (also called MMO or MMOG) is a multiplayer video game which is capable of supporting hundreds or thousands of players concurrently.
The MC/DC enhances the condition/decision coverage criteria by requiring that each condition be shown to independently affect the outcome of the decision. This kind of testing is performed on mission critical applications which might lead to death, injury, or monetary loss. Designing MC/DC requires more thoughtful selection of test cases which is carried out on a standalone module or integrated components. The formula is as follows:
Used in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys and other embedded systems.
A web browser designed primarily for mobile phones, smartphones and personal digital assistants. Until version 4 it used the Java ME platform, requiring the mobile device to run Java ME applications. From version 5 it is also available as a native application for Android, bada, iOS, Symbian OS, and Windows Mobile.
Mobile Optimized Website
Websites that are built to live on the mobile web; miniaturized websites are not. A mobile-optimized site is a condensed, highly-functional, and elegant accompaniment to the main web presence.
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 services enabled by being mobile.
An application designed to run in the computer environment it is being run in. The term is used to refer to a locally installed application in contrast to various other software architectures. In iOS for mobile devices, native apps include mail, maps and safari. A native app may be contrasted with an emulated application written for a different platform and converted in real time to run.
The ability for a computer to comprehend spoken or written word, enabling interaction between humans.
A category of Natural Language Processing that deals with machine reading comprehension.
NFC a.k.a Near Field Communication, is a short-range wireless technology used as a method of transferring data over short distances between two compatible devices.
Near-field communication (NFC) is a set of communication protocols by which two electronic devices communicate when they are brought within 4 cm (11⁄2 in) of each other.
An algorithm that, even for the same input, can exhibit different behaviors on different runs, as opposed to a deterministic algorithm.
Global Software Development (GSD) is software work undertaken at geographically separated locations across national boundaries in a coordinated fashion involving real time (synchronous) and asynchronous interaction.
Distributed development is a software development model in which IT teams spread across geographical lines collaborate on applications or various soft wares. These teams are often separated by mini-projects that are brought together for a final software build out.Distributed development is a familiar IT approach, but source code control and other issues of the recent past make it less than ideal. However, modern and advanced Web-based tools and collaborative techniques allow teams to work effectively in a distributed fashion.
Instruction in a learning environment where teacher and student are separated by space. The teacher provides course content through course management applications, multimedia resources, the Internet, video conferencing, etc.
Specific systems and applications that allow unrestricted access by people and/or other computers.
An operational support system (OSS) is a group of computer programs or an IT system used by communications service providers for monitoring, controlling, analyzing and managing a computer or telephone network system. OSS software is specifically dedicated to telecommunications service providers and mainly used for supporting network processes to maintain network inventory, configure network components, provision services and manage faults.
A comprehensive, integrated testing solution for Web applications, Web Services, packaged Oracle Applications and Oracle Databases.
An original equipment manufacturer (OEM) traditionally is defined as a company whose goods are used as components in the products of another company, which then sells the finished item to users.
An Agile software development technique in which 2 programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in. The 2 programmers switch roles frequently.
A way of evaluating or cross-checking the code written by developers as the developers need to be at par with each other. The time for peer testing can be mutually decided upon by the developers, which could be a weekly or a fortnightly analysis of their respective codes.
Performance improvement is the concept of measuring the output of a particular process or procedure, then modifying the process or procedure to increase the output, increase efficiency, or increase the effectiveness of the process or procedure.
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 stack that includes an operating system, middleware and key applications for mobile devices, including smartphones. A key feature of platforms is their ability to incorporate hardware characteristics and support tools.
Along with software as a service (SaaS) and infrastructure as a service (IaaS), it is a service model of cloud computing. In this model, the consumer creates the software using tools and/or libraries from the provider. The consumer also controls software deployment and configuration settings. The provider provides the networks, servers, storage, and other services that are required to host the consumer’s application.
To state, tell about, or make known in advance, especially on the basis of special knowledge.
Encompasses a variety of statistical techniques from data mining, predictive modeling, and machine learning, that analyze current and historical facts to make predictions about future or otherwise unknown events
Web applications that load like regular web pages or websites but can offer the user functionality such as working offline, push notifications, and device hardware access traditionally available only to native applications.
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
A system is said to be real-time if the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. Real-time systems, as well as their deadlines, are classified by the consequence of missing a deadline:
Hard: Missing a deadline is a total system failure.
Firm: Infrequent deadline misses are tolerable but may degrade the system’s quality of service.
Soft: The usefulness of a result degrades after its deadline, thereby degrading the system’s quality of service.
Soft real-time systems are typically used where there is some issue of concurrent access and a need to keep a number of connected systems up to date with changing situations. A good example of this is software that maintains and updates the flight plans of commercial airliners. Such plans must be kept reasonably current, but can operate with a latency of seconds.
The process of restructuring existing computer code without changing its external behavior. From a functional standpoint (or at least from the standpoint of satisfying existing specifications) code refactoring should be transparent. Instead, it is the nonfunctional attributes of the software that are improved. Code refactoring is considered a form of “hygiene”, the advantages of which include improved readability and reduced complexity. These in turn can improve source code maintainability and create a more expressive internal architecture or object model to improve extensibility. If done well, code refactoring may also resolve hidden, dormant, or undiscovered computer bugs or vulnerabilities in the system by simplifying the underlying logic and eliminating unnecessary levels of complexity.
The remote control is a component of an electronics device—most commonly a television set, DVD player, or home theater system—originally used for operating the device wirelessly from a short line-of-sight distance. The remote control has continually evolved and advanced over recent years to include the internet, Bluetooth connectivity, motion sensor-enabled capabilities, and voice control.
A segment of source code can be used again to add new functionalities with slight or no modification. Reusable modules and classes reduce implementation time, increase the likelihood that prior testing and use has eliminated bugs, and localizes code modifications when a change in implementation is required.
Radio-Frequency Identification (RFID) is the use of radio waves to read and capture information stored on a tag attached to an object. A tag can be read from up to several feet away and does not need to be within direct line-of-sight of the reader to be tracked.
A performance measure used to evaluate the efficiency of an investment or to compare the efficiency of a number of different investments. It is one way of considering profits in relation to capital invested. In software, this can measure the beneficial effects of QA, testing and other investments on the final product’s quality and sales.
The core roles in Scrum teams are those committed to the project in the Scrum process—they are the ones producing the product (objective of the project). These core roles are: Product Owner, Development Team, and Scrum Master (Tester, Test Engineer, and QA do not exist in Scrum).
Sometimes referred to as “on-demand software”, is a software delivery model in which software and associated data are centrally hosted on the cloud. SaaS is typically accessed by users using a thin client via a web browser.
A set of organization and workflow patterns intended to guide enterprises in scaling Lean and Agile practices; SAFe is one of a growing number of frameworks that seek to address the problems encountered when scaling beyond a single team.
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.
A testing environment that isolates untested code changes and outright experimentation from the production environment or repository, in the context of software development including Web development and revision control.
The ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth. For example, it can refer to the capability of a system to increase total throughput under an increased load when resources are added.
Scrum is an agile software development model based on multiple small teams working in an intensive and interdependent manner. Scrum employs real-time decision-making processes based on actual events and information. This requires well-trained and specialized teams capable of self-management, communication and decision-making. The teams in the organization work together while constantly focusing on their common interests.
1) A person engaged in only partial Scrum project management or development methodologies.
2) One who engages in either semi-Agile or quasi-waterfall development methodologies.
3) One who adopts only SOME tenants of the Scrum methodology?
4) In general, one who uses the word “but” when describing their Scrum practices.
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.
Learning at your own pace and convenience. Not done in a group. For example, reading a book and or watching a video. Where one can pause, review or begin again.
Accelerometer: The accelerometer allows the device of Smartphone to detect the orientation of the device and adapts the content to suit the new orientation.
Proximity sensor: The proximity sensor in Smartphone senses how close the phone is to the user’s cheek/face, so that it can pause whatever activity it is in the middle of (playing music or browsing the web, for example) so the user can take a phone call. When the phone is removed from the ear after the call, the phone resumes its previous activity.
Gyroscope: Gyroscopes are used in Smartphones and tablet PCs for finding the position and orientation of devices. Combining a gyroscope with an accelerometer allows the device to sense motion on six axes – left, right, up, down, forward and backward, as well as rolls, pitch and yawed rotations – allowing for more accurate motion sensing abilities.
Magnetometer: A magnetometer is used to measure the strength and/or direction of the magnetic field in the vicinity of the device. Sometimes certain devices or radio signals can interfere with the magnetometer requiring users to either move away from the interference or re-calibrate by moving the device in a figure 8 motions.
Ambient light sensor: An ambient light sensor basically adjusts the display brightness which in turn saves battery power in Smartphone; it saves power by adjusting the brightness of the display based on how much ambient light is present.
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).
A computer simulation, computer model, or computational model is a computer program, run on a single computer, or network of computers, that attempts to simulate an abstract model of a particular system.
A computer simulation, computer model, or computational model is a computer program, run on a single computer, or network of computers, that attempts to simulate an abstract model of a particular system.
Teaching an individual how to perform the operations of a particular occupation; distinguished from personal adjustment training, work adjustment, and the acquisition of basic employment skills.
A computer protocol intended to digitally facilitate, verify, or enforce the negotiation or performance of a contract. Smart contracts allow the performance of credible transactions without third parties.
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).
A set of skills that influence how we interact with each other. It includes such abilities as effective communication, creativity, analytical thinking, diplomacy, flexibility, change-readiness, problem solving, leadership, team building, and listening skills.
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.
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.
Apple: "Touch type tell"
Google/Android: "Type, Write or Speak"
Gesture: Multi-touch gestures are predefined motions used to interact with multi-touch devices. An increasing number of products like smartphones, tablets, laptops or desktop computers feature functions that are triggered by multi-touch gestures. Some typical gesture-function-pairs are: tap double tap, long press, scroll, pan, flick, and pinch and rotate.
QWERTY: The standard keyboard layout.
There are many source control tools, and they are all different. However, regardless of which tool you use, it is likely that your source control tool provides some or all of the following basic features:
A place to store your source code.
A historical record of what you have done over time.
A way for developers to work on separate tasks in parallel, merging their efforts later.
A way for developers to work together without getting in each other’s way.
The ability for a computer to recognize spoken word and translate it into code.
A sprint is the basic unit of development in Scrum. Sprints last between one week and one month, and are a “timeboxed” (i.e. restricted to a specific duration) effort of a constant length.
Symbian is an open-source platform developed by Symbian Foundation in 2009, as the successor of the original Symbian OS. Symbian was the most popular smartphone OS until the end of 2010, when it was overtaken by Android.
A system on a chip or system on chip (SoC or SOC) is an integrated circuit (IC) that integrates all components of a computer or other electronic system into a single chip. It may contain digital, analog, mixed-signal, and often radio-frequency functions—all on a single chip substrate. A typical application is in the area of embedded systems.
Tcl (Tool Command Language) is a very powerful but easy to learn dynamic programming language, suitable for a very wide range of uses, including web and desktop applications, networking, administration, testing and many more. Open source and business-friendly, Tcl is a mature yet evolving language that is truly cross platform, easily deployed and highly extensible. Tk is a graphical user interface toolkit that takes developing desktop applications to a higher level than conventional approaches. Tk is the standard GUI not only for Tcl, but for many other dynamic languages, and can produce rich, native applications that run unchanged across Windows, Mac OS X, Linux and more.
A formal process of bringing about awareness, conferring knowledge and instilling skills. Teaching focuses on knowledge.
The process of influencing a group of diverse individuals, each with his or her own goals, needs, and perspectives, to work together effectively for the good of the project. Such that their team ultimately accomplishes more than the sum of their individual efforts could otherwise have achieved.
A specification of the inputs, execution conditions, testing procedure, and expected results that define a single test to be executed to achieve a particular software testing objective, such as to exercise a particular program path or to verify compliance with a specific requirement.
Test Case Manager (TCM)
A tool designed for software test engineers to organize test cases for storage and execution logging. Test cases are written in a standard format and saved into the system. Test cases can be organized by level (Smoke, Critical Path, Acceptance Criteria, Suggested), by area (GUI breakdown, installation, data, etc.), by status (pass, fail, untested, etc.), or other breakdown criteria. Once test cases are built, testers use TCM to track and report success or failure of test cases. TCM provides an unlimited number of central, multi-user databases, each of which will support an entire test team. TCM is intended for use by small to midsize software development companies or organizations.
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.
The Tests node is the repository for your test modules. For purposes of organizing your tests, this folder can be further organized into subfolders to hold your test modules. This is helpful for projects with a multitude of test modules, and in which commonalities exist amongst groups of modules.
A collection of software and test data configured to test a program unit by running it under varying conditions and monitoring its behavior and outputs. It has two main parts: the test execution engine and the test script repository.
The test module is the work file in which you create tests. Its essence is to contain a group of test cases with a similar, and if possible narrowly-defined, scope. A TestArchitect project is typically comprised of multiple test modules, which are often grouped into folders and subfolders of the project. Test modules should be designed to run independently from each other, while the test cases within a test module can have dependencies among themselves. Within a test module, all actions, especially the family of check actions, should directly relate to the defined scope of the test module. This way it is easy to keep abreast of large tests, and functional changes to a system under test need only have a localized effect on the test suite – that is, only the relevant test modules are affected. The test module contains objectives and test cases. The objectives are an auxiliary device to further refine the scope of the test module. They allow a reader to understand why test cases are designed the way they are, and give an auditor a quick insight into the correctness and, more importantly, completeness of a test.
A detailed document that outlines the test strategy, testing objectives, resources (manpower, software, hardware) required for testing, test schedule, test estimation, and test deliverables. The test plan serves as a blueprint to conduct software testing activities as a defined process which is minutely monitored and controlled by the test manager.
The instructions in a test program. It defines the actions and pass/fail criteria. For example, if the action is “to enter a valid account number,” the expected result is that the data are accepted. Entering an invalid number should yield a particular error message.
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.
An outsourcing model in which testing activities associated with some of an organization’s business activities are performed by a service provider rather than employees.TaaS may involve engaging consultants to help and advice employees or simply outsourcing an area of testing to a service provider.
Testing cloud apps
Cloud testing is often seen as only performance or load tests; however, as discussed earlier it covers many other types of testing. Cloud computing itself is often referred to as the marriage of software as a service (SaaS) and utility computing. In regard to test execution, the software offered as a service may be a transaction generator and the cloud provider’s infrastructure software, or may just be the latter. Distributed Systems and Parallel Systems mainly use this approach for testing, because of their inherent complex nature. D-Cloud is an example of such a software testing environment.
Testing in the Cloud
Cloud Testing uses cloud infrastructure for software testing. Organizations pursuing testing in general, load, performance testing, and production service monitoring in particular are challenged by several problems like limited test budget, meeting deadlines. High costs per test, large number of test cases, and little or no reuse of tests and geographical distribution of users add to the challenges.
A computer (client) in client–server architecture or networks that typically provides rich functionality independent of the central server. Originally known as just a “client” or “fat client”, the name is contrasted to thin client, which describes a computer heavily dependent on a server’s applications.
A computer or a computer program which depends heavily on some other computer (its server) to fulfill its computational roles. This is different from the traditional fat client, which is a computer designed to take on these roles by itself. The specific roles assumed by the server may vary, from providing data persistence (for example, for diskless nodes) to actual information processing on the client’s behalf.
Things that think (MIT)
Computing like devices with programming logic that can determine their own interactions and outputs. These devices can interact with other devices, the internet and the physical environment. Source: MIT
A structured approach to exploratory testing where the exploration of a product is organized around a specific theme. The theme informs the type of questions that are asked and the type of observations a tester should be making.
The ability to link product documentation requirements back to stakeholders’ rationales and forward to corresponding design artifacts, code, and test cases. Traceability supports numerous software engineering activities such as change impact analysis, compliance verification or trace back of code, regression test selection, and requirements validation.
Prepares an individual or group to execute a skill. The focus of training is skill development.
A concept in software engineering and computer science where computing is made to appear everywhere and anywhere. Ubiquitous computing can occur using any device, in any location, and in any format. The underlying technologies to support ubiquitous computing include Internet, advanced middleware, operating system, mobile code, sensors, microprocessors, new I/O and user interfaces, networks, mobile protocols, location and positioning and new materials
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.In addition to these attributes, a Northrop report argues that a ULSS: Features decentralized data, development, evolution and operational control; Addresses inherently conflicting, unknowable, and diverse requirements; Evolves continuously while operating, with different capabilities being deployed and removed as warranted; Contains heterogeneous, inconsistent and changing elements; and Treats failure as the norm, rather than the exception, with it being extremely unlikely that all components are functioning at any one time. Examples of ultra-large-scale systems include: the US healthcare system, US energy smart grids and global financial markets.
Unit testing is a software development process in which the smallest testable parts of an application, called units, are individually and independently scrutinized for proper operation. Unit testing is often automated but it can also be done manually. This testing mode is a component of Extreme Programming (XP), a pragmatic method of software development that takes a meticulous approach to building a product by means of continual testing and revision.
An API created by Microsoft and first introduced in Windows 10; the purpose of this platform is to help develop universal apps that run on Windows 10, Windows 10 Mobile, Xbox One, and HoloLens without the need to be re-written for each. UWP allows developers to create apps that will potentially run on multiple types of devices.
Usability testing refers to evaluating a product or service by testing it with representative users. The goal is to identify any usability problems, collect qualitative and quantitative data, and determine the participant's satisfaction with the product.
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.
In addition to its contents, every project item in TestArchitect has various metadata associated with it. Such fields as Name, Assigned user, Description and Creation date can be viewed by opening a given item and clicking on its Information tab. In addition to these predefined fields, TestArchitect allows you to create your own custom fields for project items, to use in accordance with your requirements. A user-defined field enables you to store additional information for project items. Furthermore, user-defined fields can be useful in integrating your project with external tools, such as HP Quality Center. You can often enhance the utility of an external tool with custom fields that allow more data to be exchanged between the tool and your project items.
Enables vehicles to wirelessly exchange information about their speed, location, and heading; this allows vehicles to broadcast and receive omni-directional messages, creating a 360-degree awareness of other vehicles in proximity.
Virtualization (or virtualization) 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.
The ability to see what is truly happening to the entire or any part of the project at any point in time under any circumstance in any level of detail. Visibility is not only the collection and storage of metrics and indicators but a way to analyze, visualize and communicate them. The ability to monitor and assess the system is the key first part of managing or directing anything.
Traditional approaches, also known as “engineering” approaches, are defined at the very beginning of the software sciences. These are disciplined approaches where the stages of design and builds are predictable. Detailed stages of analysis and design precede the stage of building the software. These methodologies are well documented and thus are quite complex to apply. One of the main disadvantages is that these traditional methodologies are very bureaucratic. In practice, this highly detailed methodology leads to a high level of complexity. Often times, the work of managing the methodology are more than that of actually producing the product. Phases of the traditional approach are: requirements phase, architecture, design, code, test, and release
Wearable computers, also known as body-borne computers or wearables are miniature electronic devices that are worn by the bearer under, with or on top of clothing. This class of wearable technology has been developed for general or special purpose information technologies and media development. Wearable computers are especially useful for applications that require more complex computational support than just hardware coded logics.
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.
Windows 8 introduces significant changes to the operating system’s platform, primarily focused towards improving its user experience on mobile devices such as tablets to rival other mobile operating systems like Android and iOS. Windows 8 also features a new app platform with an emphasis on touchscreen input, and the new Windows Store to obtain and/or purchase applications to run on the operating system.
The wireless communication protocol is a standard set of rules with reference to which various electronic devices communicate with each other wirelessly.
XPath (XML Path Language) is a query language for selecting nodes from an XML document. In addition, XPath may be used to compute values (e.g., strings, numbers, or Boolean values) from the content of an XML document.
The fourth generation of mobile phone mobile communications standards. A 4G system provides mobile ultra-broadband Internet access, for example to laptops with USB wireless modems, to smartphones, and to other mobile devices. Conceivable applications include amended mobile web access, IP telephony, gaming services, high-definition mobile TV, video conferencing and 3D television.