Reference
Engineering glossary
Software engineering terms, concepts, and definitions — with examples, etymology, and related terms.
Terms·524·A→Z
Index·524
Letter
A
133- AAABeginner
AAA (Authentication, Authorization, and Accounting) is a security framework for intelligently controlling access to computer resources. It enforces policies, audits usage, and provides the information necessary for billing and security analysis. It is a fundamental concept in network security and management.
Security
- ABACIntermediate
ABAC (Attribute-Based Access Control) is an authorization model that grants access to resources based on a combination of attributes associated with the user, the resource being accessed, and the environment. Instead of assigning static permissions, ABAC uses flexible policies and rules that evaluate these attributes in real-time to make dynamic access decisions.
Security
- A/B TestingBeginner
A/B testing is a method of comparing two versions of a webpage, app, or other digital asset to determine which one performs better. Users are randomly shown either version A (the control) or version B (the variation), and data is collected to see which version better achieves a specific goal, such as increasing clicks or sales.
Marketing
- Acceptable riskIntermediate
The level of potential loss or harm that an organization or individual is willing to tolerate in a given situation after security controls and mitigation strategies have been implemented. It represents a conscious decision to accept the remaining, or residual, risk to achieve a specific benefit or objective.
Risk Management
- Acceptable Use PolicyBeginner
A document outlining the rules and guidelines that users must agree to in order to use a network, website, or service. It defines what is considered acceptable and unacceptable behavior, protecting the service provider and its users from potential misuse.
IT Policy & Governance
- Acceptance Test Driven DevelopmentIntermediate
Acceptance Test Driven Development (ATDD) is a collaborative software development practice where the team defines acceptance criteria for a feature before implementation. These criteria are turned into automated tests that guide development and verify the feature meets business requirements.
Software Development Methodologies
- Acceptance TestingMedium
Acceptance Testing is a formal testing process where a software system is evaluated against business requirements to determine if it is acceptable for delivery. Typically performed by end-users or clients, it is the final phase of testing before the software is released to production.
Software Testing
- Access BlockerBeginner
A general term for any software, hardware, or system component that restricts or prevents access to a resource. It operates based on a predefined set of rules to enforce security policies, control user permissions, or filter content. Examples range from network firewalls to application-level permission managers.
Cybersecurity
- Access controlBeginner
A security technique that regulates who or what can view or use resources in a computing environment. It is a fundamental concept in security that minimizes risk by ensuring users are who they say they are and have the appropriate permissions to access data and perform actions.
Security
- Access Control ListBeginner
A list of permissions attached to an object. An ACL specifies which users or system processes are granted access to objects, as well as what operations are allowed on given objects. It's a fundamental concept in computer security for managing resource access.
Computer Security
- Access control matrixIntermediate
A conceptual model in computer security that defines access rights. It's a table where rows represent subjects (like users or processes) and columns represent objects (like files or devices). Each cell specifies the access rights a subject has for a particular object, such as read, write, or execute.
Computer Security
- Access Control PolicyIntermediate
An Access Control Policy is a foundational set of rules in information security that dictates who or what is allowed to access specific resources and what actions they are permitted to perform. It defines permissions for subjects (like users or processes) over objects (like files or applications), forming the basis for system authorization and enforcing the principle of least privilege.
Information Security
- Access control systemBeginner
A system that manages and restricts who or what can view, use, or access a resource in a computing environment. It is a fundamental security concept that minimizes risk to an organization by enforcing policies through authentication and authorization.
Security
- Access control tokensIntermediate
An access control token is a digital credential used to verify a user's or application's identity and permissions to access specific resources. It is a core component of modern authentication and authorization systems, particularly for securing APIs and web applications. The token is issued by an authentication server after a successful login and must be presented with each request to a protected resource.
Security
- Accessibility TestingMedium
Accessibility Testing is a type of software testing performed to ensure that an application can be used by people with disabilities, such as visual, auditory, motor, or cognitive impairments. It verifies compliance with standards like WCAG and aims to provide an equitable user experience for everyone.
Software Testing
- Access-ListIntermediate
An Access-List (ACL) is a set of rules applied to network devices like routers and firewalls to filter traffic. These rules specify which packets are permitted or denied entry or exit from a network, based on criteria such as source and destination IP addresses, protocols, and port numbers.
Network Security
- Access MethodIntermediate
An access method is a function or a set of system-level software routines that manage the transfer of data between an application program and an I/O device, such as a disk or tape drive. It is a fundamental component of an operating system's I/O subsystem, abstracting the complex, device-specific details of data storage and retrieval into a simpler, standardized interface for programmers.
Computer Science
- Access PointBeginner
A networking hardware device that allows other Wi-Fi devices to connect to a wired network. An access point acts as a central transmitter and receiver of wireless radio signals, creating a wireless local area network (WLAN). It is commonly used in homes, offices, and public hotspots to provide wireless internet access.
Computer Networking
- Access PortBeginner
An access port is a port on a network switch configured to carry traffic for a single Virtual LAN (VLAN). It is used to connect end devices, such as computers, printers, or IP phones, to the network. Unlike a trunk port, it does not tag outgoing frames and assumes all incoming frames belong to its assigned VLAN.
Computer Networking
- AccountabilityBeginner
The obligation of an individual or organization to accept responsibility for their actions, decisions, and outcomes. It involves being answerable for the results and is a fundamental component of trust, reliability, and high performance in both personal and professional contexts.
Business Concepts
- AccountingMedium
The systematic and comprehensive process of recording, summarizing, analyzing, and reporting a company's financial transactions. Often called the 'language of business,' it provides crucial information for decision-making to stakeholders like investors, management, and regulators.
Business
- Account LockoutBeginner
A security measure that temporarily disables a user account after a specified number of failed login attempts. This helps prevent unauthorized access through brute-force attacks, where an attacker tries to guess a password by repeatedly entering different combinations.
Cybersecurity
- AcknowledgmentBeginner
A message sent by a receiver to a sender to indicate that a piece of information, such as a data packet or a message, has been successfully received. Acknowledgments are fundamental to reliable communication protocols, ensuring data integrity and flow control. They confirm receipt, allowing the sender to send the next piece of data or retransmit if no acknowledgment is received.
Computer Networking
- ACL LoggingIntermediate
The process of recording events when network traffic matches specific rules defined in an Access Control List (ACL). This feature, available on devices like routers and firewalls, generates log entries that provide details about the traffic, such as source/destination IPs, ports, and the action taken (permit/deny). ACL logs are crucial for security monitoring, network troubleshooting, and compliance auditing.
Network Security
- ACL MatchingIntermediate
The process of comparing network traffic packets against the rules, or Access Control Entries (ACEs), defined in an Access Control List (ACL). This sequential, top-down evaluation determines whether to permit or deny the traffic based on the first rule that matches the packet's characteristics, such as source/destination IP addresses and port numbers. It is a fundamental mechanism for network security and traffic filtering.
Network Security
- ACL OptimizationIntermediate
ACL Optimization is the process of refining and restructuring Access Control Lists (ACLs) to improve network performance, enhance security, and simplify management. It involves removing redundant rules, consolidating entries, and ordering rules efficiently to reduce processing overhead on network devices like routers and firewalls.
Network Security
- ACL PlacementIntermediate
ACL Placement is the strategic process of applying Access Control Lists (ACLs) on a network device's interfaces to control traffic flow. The primary goal is to filter unwanted traffic as efficiently and securely as possible, typically by blocking it as close to its source as the ACL's specificity allows, thereby conserving network resources.
Network Security
- Active AuthenticationIntermediate
A security method that continuously and passively verifies a user's identity throughout a session. Unlike traditional one-time authentication, it uses behavioral biometrics and contextual data like typing patterns, mouse movements, or location to ensure the legitimate user is still present.
Cybersecurity
- Active DirectoryIntermediate
A directory service developed by Microsoft for Windows domain networks. It is included in most Windows Server operating systems as a set of processes and services. It authenticates and authorizes all users and computers in a Windows domain, assigning and enforcing security policies and managing network resources.
Networking
- Active RouterIntermediate
An Active Router is a networking device in a redundancy group that is currently responsible for forwarding traffic for a shared virtual IP address. It is a key component in First Hop Redundancy Protocols (FHRPs) like HSRP and VRRP, designed to prevent a single point of failure at the default gateway, ensuring high network availability.
Networking
- ActiveX Data ObjectsIntermediate
A high-level programming interface from Microsoft for accessing data from various sources. ADO is a set of COM components that allows developers to write applications to access and manipulate data in databases through an OLE DB provider. It was a key part of Microsoft's Universal Data Access strategy, aiming to provide a single, unified way to work with different data stores.
Data Access Technologies
- Activex Data Objects ADOIntermediate
ActiveX Data Objects (ADO) is a high-level programming interface from Microsoft for accessing data sources. As a set of COM components, it provided a unified and easy-to-use layer over OLE DB, allowing developers in languages like Visual Basic 6 and VBScript (in classic ASP) to connect to and manipulate data from both relational and non-relational databases. It was the primary data access technology for Microsoft platforms before the introduction of ADO.NET.
Data Access Technology
- Actual ResultBeginner
The Actual Result is the observed outcome, behavior, or state of a software application after a test case has been executed. It is compared against the 'Expected Result' to determine if the test has passed or failed.
Software Testing
- Adaptive AuthenticationIntermediate
A method of authentication that adjusts the required verification steps based on a real-time assessment of risk. It analyzes contextual factors like user location, device, and behavior to determine the appropriate level of security, balancing user convenience with robust protection.
Cybersecurity
- Adaptive securityIntermediate
A cybersecurity approach that continuously assesses risks and automatically adjusts security controls in real-time to adapt to changing threats and system conditions. It moves beyond static, perimeter-based defenses to a more dynamic and predictive model.
Cybersecurity Strategy
- Address Resolution ProtocolIntermediate
A communication protocol used for discovering the link-layer address, such as a MAC address, associated with a given internet layer address, typically an IPv4 address. It is a critical function in computer networking for local area network communication.
Computer Networking
- Address Resolution Protocol ARPIntermediate
A communication protocol used for discovering the link-layer address, such as a MAC address, associated with a given internet layer address, typically an IPv4 address. ARP is a critical function in the Internet protocol suite, translating IP addresses to physical machine addresses, which are required for data transmission on a local network.
Computer Networking
- Ad Hoc TestingBeginner
Ad Hoc Testing is an informal, unplanned software testing approach where the tester improvises test cases based on intuition and experience. It requires no documentation or test plans and aims to find defects that structured testing might miss.
Software Testing
- AD IntegrationIntermediate
The process of connecting Microsoft's Active Directory (AD) with other software applications, systems, and services. This allows these external systems to use AD as the central source for user authentication and authorization, enabling features like Single Sign-On (SSO) and centralized user management.
Identity and Access Management (IAM)
- Administrative AccessBeginner
The highest level of permission granted to a user on a computer system, network, or application. It allows the user to perform critical tasks such as installing software, changing system-wide configurations, managing other user accounts, and accessing all files. It is also known as root access, superuser access, or admin rights.
Information Security
- Administrative DistanceIntermediate
Administrative Distance (AD) is a value from 0 to 255 used by routers, primarily Cisco devices, to determine the trustworthiness of a routing information source. When a router learns multiple paths to the same destination from different routing protocols, it uses the AD to select the best path. The route with the lowest Administrative Distance is considered the most reliable and is installed in the routing table.
Computer Networking
- ADONETIntermediate
ADO.NET is a core data access technology within the Microsoft .NET Framework. It provides a set of classes and tools for developers to connect to and interact with databases and other data sources. It supports both connected (via DataReader) and disconnected (via DataSet) data access models, offering a versatile bridge between applications and data stores like SQL Server, Oracle, and XML.
Data Access Technology
- Advanced Encryption StandardMedium
A symmetric-key encryption algorithm established by the U.S. National Institute of Standards and Technology (NIST). It is the de facto standard for securing electronic data worldwide, used by governments and businesses to encrypt sensitive information. AES is a block cipher, operating on fixed-size blocks of data (128 bits) and using keys of 128, 192, or 256 bits.
Cybersecurity
- Advanced Persistent ThreatAdvanced
An Advanced Persistent Threat (APT) is a prolonged and targeted cyberattack in which an unauthorized person gains access to a network and stays there undetected for a long period. The intention of an APT attack is usually to monitor network activity and steal data rather than to cause damage to the network or organization.
Cybersecurity
- Advanced Persistent Threat APTIntermediate
A sophisticated, long-term cyberattack in which an intruder establishes an undetected presence within a network to steal sensitive data over an extended period. Unlike short-term attacks, APTs are highly targeted, well-funded, and patient, often sponsored by nation-states or large criminal organizations. The goal is not immediate disruption but ongoing espionage or data exfiltration.
Cybersecurity
- Advanced threat detectionAdvanced
A cybersecurity approach designed to identify and respond to sophisticated, stealthy threats that evade traditional security measures. It utilizes techniques like behavioral analysis, machine learning, and sandboxing to uncover unknown malware, zero-day exploits, and Advanced Persistent Threats (APTs).
Cybersecurity
- Advanced Threat ProtectionIntermediate
A category of security solutions that defend against sophisticated malware and hacking-based attacks. Unlike traditional antivirus, Advanced Threat Protection (ATP) uses a proactive, multi-layered approach, integrating technologies like sandboxing, behavioral analysis, and machine learning to detect and block unknown, zero-day threats across networks, endpoints, and cloud environments.
Cybersecurity
- Adversarial machine learningAdvanced
Adversarial machine learning is a research field and technique that involves creating malicious inputs, known as adversarial examples, to fool or mislead machine learning models. The primary goal is to cause a model to make an incorrect prediction. This field explores both the attacks on machine learning systems and the corresponding defenses to make them more secure and robust against such manipulations.
Artificial Intelligence
- Adversarial Machine Learning TechniquesAdvanced
A field of machine learning focused on techniques for attacking and defending ML models. Attack techniques aim to fool models by providing malicious input, while defensive techniques aim to make models more robust and resilient to such attacks. This cat-and-mouse game is crucial for building secure and reliable AI systems.
Machine Learning
- AdversaryBeginner
In cybersecurity, an adversary is any individual, group, or entity that attacks, or is a threat to, a computer system or network. Their motivations and capabilities vary widely, ranging from simple mischief to espionage or financial gain. Understanding the potential adversary is a fundamental aspect of threat modeling and designing effective security defenses.
Cybersecurity
- AdwareBeginner
Software designed to display unwanted advertisements on a user's computer. It often gets installed without the user's full consent, bundled with other free software. While its primary purpose is to generate revenue for its developer, it can be intrusive, slow down system performance, and sometimes collect user data for targeted advertising, blurring the line with spyware.
Cybersecurity
- AES Key SizeIntermediate
Refers to the length of the secret key used in the Advanced Encryption Standard (AES) algorithm. The standard sizes are 128, 192, and 256 bits, which determine the encryption strength and the number of internal transformation rounds. A larger key size provides stronger security against attacks but may require more computational resources.
Cryptography
- Agile DevelopmentBeginner
Agile Development is an iterative approach to project management and software development that helps teams deliver value to their customers faster and with fewer headaches. It emphasizes adaptive planning, evolutionary development, early delivery, and continual improvement, and it encourages rapid and flexible response to change.
Software Development Methodologies
- Agile TestingIntermediate
Agile Testing is a software testing practice that aligns with the principles of agile development. It involves integrating testing activities throughout the entire development lifecycle, rather than treating it as a separate phase. It emphasizes continuous feedback, close collaboration between testers and developers, and a 'whole-team' approach to quality.
Software Development
- AHIntermediate
AH, or Authentication Header, is a security protocol within the IPsec suite. It provides connectionless integrity, data origin authentication, and protection against replay attacks for IP packets. Unlike ESP, AH does not provide confidentiality, meaning it doesn't encrypt the data payload. Its primary function is to ensure that the data has not been tampered with in transit and that it truly originates from the claimed sender.
Network Security
- Aircrack-ngAdvanced
Aircrack-ng is a comprehensive suite of software tools used for Wi-Fi network security auditing. It focuses on monitoring, attacking, testing, and cracking wireless protocols, most notably recovering WEP and WPA/WPA2-PSK keys. The suite includes a packet sniffer, a WEP/WPA cracker, and other tools for analyzing 802.11 wireless LANs.
Cybersecurity
- Air GapIntermediate
A security measure that isolates a computer or network from other networks, such as the public internet or a local area network. This physical separation prevents unauthorized access and data breaches by creating a literal 'gap' of air between the secured system and any external connections.
Cybersecurity
- AI SafetyIntermediate
AI Safety is a multidisciplinary field dedicated to ensuring that artificial intelligence systems operate as intended without causing unintended harm. It focuses on preventing accidents, misuse, and unforeseen negative consequences from AI, particularly as systems become more powerful and autonomous. The core goal is to align AI objectives with human values and maintain long-term control.
Artificial Intelligence
- AlgorithmBeginner
A finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation.
Computer Science
- Alpha testingBeginner
A type of acceptance testing performed to identify bugs before the product is released to real users or the public. It is typically conducted by internal employees or a dedicated QA team at the developer's site.
Software Testing
- Always-On VPNIntermediate
A feature that enables a device to automatically establish and maintain a secure VPN connection whenever an internet connection is available. It ensures that all network traffic from the device is routed through the VPN tunnel, preventing data leaks and providing continuous protection without user intervention.
Network Security
- American Software Testing Qualifications Board (ASTQB)Medium
ASTQB stands for the American Software Testing Qualifications Board. It is the official United States country board for the ISTQB (International Software Testing Qualifications Board), responsible for administering software testing certification exams and accrediting training providers in the U.S.
Software Testing
- AMP for EndpointsIntermediate
AMP for Endpoints, now known as Cisco Secure Endpoint, is a cybersecurity solution that provides comprehensive protection for endpoints like computers and servers. It combines antivirus, endpoint protection platform (EPP), and endpoint detection and response (EDR) capabilities. It is designed to prevent, detect, and respond to advanced threats by continuously monitoring file activity and leveraging global threat intelligence.
Cybersecurity
- AMP for NetworksIntermediate
AMP (Advanced Malware Protection) for Networks is a Cisco security solution designed to detect, block, and analyze malware threats in real-time as they traverse a network. It provides comprehensive breach prevention and continuous monitoring of network traffic, leveraging global threat intelligence and sandboxing to identify and mitigate advanced threats that traditional security tools might miss.
Network Security
- Analytical Test StrategyIntermediate
An Analytical Test Strategy is a formal testing approach where test cases are designed based on a systematic analysis of a 'test basis,' such as requirements documents or risk assessments. Common examples include Requirements-Based Testing and Risk-Based Testing.
Software Testing
- Anomaly-based DetectionIntermediate
A method used in cybersecurity and other fields to identify threats or unusual events by detecting deviations from a pre-established baseline of normal behavior. Unlike signature-based detection, it can identify novel, previously unseen attacks by focusing on what is abnormal rather than what is known to be malicious.
Cybersecurity
- Anomaly detectionIntermediate
The process of identifying rare items, events, or observations which raise suspicions by differing significantly from the majority of the data. Also known as outlier detection, it is a critical technique in data mining and machine learning for finding unexpected patterns that do not conform to expected behavior.
Data Analysis
- AnsibleIntermediate
Ansible is an open-source software provisioning, configuration management, and application-deployment tool. It is known for its agentless architecture, which means it communicates with managed nodes over standard protocols like SSH without requiring any client software to be installed on them. Ansible uses human-readable YAML files, called Playbooks, to define automation tasks.
DevOps
- Ansible PlaybookBeginner
An Ansible Playbook is a file where you define a set of tasks and configurations to be executed on remote servers. Written in YAML, it acts as a blueprint for automation, describing the desired state of a system in a human-readable format. It is the core component for configuration management and application deployment in Ansible.
DevOps
- Antenna GainIntermediate
A key performance metric for an antenna that measures its ability to direct or concentrate radio frequency energy in a particular direction. It is typically expressed in decibels (dB) and compares the antenna's performance to a reference antenna, either an isotropic antenna (dBi) or a half-wave dipole antenna (dBd). Higher gain means a more focused beam and greater signal strength in the desired direction.
Telecommunications
- AntivirusBeginner
Antivirus is a type of software designed to detect, prevent, and remove malicious software (malware), such as viruses, worms, Trojans, and ransomware. It works by scanning files and programs, comparing them against a database of known threats and analyzing their behavior for suspicious activity to protect computer systems and networks.
Cybersecurity
- AnycastIntermediate
A networking and routing method where a single destination IP address is shared by multiple servers or endpoints. When a client sends a request to this address, the network routes it to the 'nearest' or 'best' destination as determined by routing protocols. This improves reliability, balances load, and reduces latency by directing traffic to the geographically or topologically closest server.
Network Architecture
- Anycast RPAdvanced
A technique in IP multicast routing that uses the same IP address for multiple Rendezvous Points (RPs) to provide redundancy and load balancing. It leverages anycast routing to direct sources and receivers to the topologically nearest RP, enhancing the resilience and efficiency of PIM-SM networks.
Network Engineering
- API CallBeginner
An API call, or API request, is a message sent by a client application to a server's Application Programming Interface (API) to request data or perform an action. The server processes this request and sends back a response, which typically includes the requested data and a status code indicating the outcome of the call.
Software Development
- API GatewayIntermediate
An API Gateway is a server that acts as a single entry point into a system, typically a microservices architecture. It intercepts all incoming client requests, routes them to the appropriate backend service, aggregates the results, and returns a unified response. It handles cross-cutting concerns like authentication, rate limiting, and logging, simplifying both client-side code and backend services.
Software Architecture
- APIPABeginner
A feature in operating systems that automatically assigns a unique, non-routable IP address to a device when it cannot obtain one from a DHCP server. This allows for communication on a local network segment without manual configuration. These addresses are in the 169.254.0.1 to 169.254.255.254 range.
Computer Networking
- API SecurityIntermediate
API Security refers to the strategies, practices, and tools used to protect Application Programming Interfaces (APIs) from attacks. It focuses on preventing unauthorized access, data breaches, and service disruptions by managing and securing the connections between different software components.
Cybersecurity
- API Security TestingIntermediate
API Security Testing is the process of identifying and mitigating security vulnerabilities within Application Programming Interfaces (APIs). It involves actively testing API endpoints for flaws like injection, broken authentication, improper data exposure, and authorization issues to ensure the API is resilient against malicious attacks.
Software Testing
- API TestingIntermediate
API testing is a type of software testing that validates Application Programming Interfaces (APIs) directly. It focuses on testing the business logic, functionality, performance, and security of an application without using a graphical user interface. This allows for faster and more reliable testing.
Software Testing
- ApplicationBeginner
A computer program or a suite of programs designed to perform a specific task or a set of tasks for an end-user.
Software Development
- Application-Aware RoutingIntermediate
A networking technique that routes traffic based on the application's specific requirements, such as latency, bandwidth, and jitter. It goes beyond traditional routing, which only considers network-level metrics, to inspect application-layer data (Layer 7) for more intelligent path selection, ensuring optimal performance for critical applications.
Networking
- Application FilteringIntermediate
A network security technique used to identify and control applications based on their traffic signatures, regardless of the port or protocol used. It operates at Layer 7 of the OSI model, providing granular control over network usage and enhancing security beyond traditional port-based firewalls.
Network Security
- Application MonitoringIntermediate
The process of collecting, analyzing, and using data to track the performance, availability, and user experience of software applications. It helps teams proactively identify, diagnose, and resolve issues to ensure application health and reliability.
Software Development
- Application ObjectIntermediate
A central object in many application frameworks that represents the application itself. It manages the main event loop, handles application-level events, and coordinates other high-level objects. It's the entry point and the core of the application's lifecycle.
Software Architecture
- Application Programming Interface (API)Beginner
An Application Programming Interface (API) is a set of rules and definitions that allows different software applications to communicate with each other. It acts as an intermediary, enabling data exchange and functionality sharing between disparate systems.
Software Development
- Application SecurityIntermediate
Application Security, often abbreviated as AppSec, is the discipline of processes, tools, and practices that aim to protect applications from threats throughout their entire lifecycle. It involves identifying, fixing, and preventing security vulnerabilities within software at the design, development, testing, deployment, and maintenance phases.
Cybersecurity
- Application VisibilityIntermediate
The capability of network administrators to identify, classify, and monitor the specific applications running on their network. It provides insights into which applications are being used, by whom, and their impact on network performance and security, independent of the ports or protocols they use.
Network Management
- APTBeginner
APT, or Advanced Package Tool, is the core software management system for Debian and its derivatives like Ubuntu. It is a powerful command-line tool that automates the process of installing, upgrading, configuring, and removing software packages, handling complex dependencies automatically.
Software Management
- APT GroupIntermediate
An APT Group is a highly sophisticated, well-resourced, and often state-sponsored team of hackers. They conduct targeted, long-term cyberattacks (Advanced Persistent Threats) to steal sensitive data, disrupt operations, or perform espionage. Unlike common cybercriminals, their primary motivation is strategic advantage, not immediate financial gain.
Cybersecurity
- ArchitectureMedium
A high-level plan or design of a system, outlining its components, their relationships, and the principles governing its design and evolution.
Software Engineering
- ARP cache poisoningIntermediate
A type of cyberattack where a malicious actor sends falsified ARP (Address Resolution Protocol) messages over a local area network. This results in linking an attacker's MAC address with the IP address of a legitimate computer or server on the network, allowing the attacker to intercept, modify, or stop data in transit.
Network Security
- ARP PoisoningIntermediate
A type of cyberattack where a malicious actor sends forged Address Resolution Protocol (ARP) messages onto a local area network. This attack links the attacker's MAC address with the IP address of a legitimate device, allowing the attacker to intercept, modify, or stop data in transit, typically as part of a Man-in-the-Middle (MitM) attack.
Network Security
- ASLRIntermediate
Address Space Layout Randomization (ASLR) is a computer security technique that randomly arranges the memory addresses of a process's key data areas. This includes the base of the executable and the positions of the stack, heap, and libraries. By making these locations unpredictable, ASLR makes it significantly more difficult for attackers to successfully exploit memory corruption vulnerabilities, such as buffer overflows, as they cannot reliably predict the target addresses for their malicious code.
Computer Security
- AssetBeginner
An asset is any resource, item, or entity that has value to a software project or organization. This includes digital files like code, documentation, images, and data, as well as physical items like hardware or software licenses. Assets are typically managed, versioned, and tracked throughout their lifecycle.
Software Engineering Concepts
- Asset classificationMedium
The process of systematically categorizing an organization's assets (such as data, hardware, and software) based on their value, sensitivity, and criticality. This practice is a cornerstone of information security and risk management, as it enables the application of appropriate security controls to protect assets according to their importance and associated risks.
Security
- Asset inventoryBeginner
An asset inventory is a comprehensive, curated list of an organization's IT assets. This includes hardware, software, cloud instances, and data. It serves as a foundational tool for IT management, cybersecurity, and financial planning, providing a single source of truth for what the organization owns and operates.
IT Operations
- Asset lifecycleIntermediate
The sequence of stages an asset goes through from its initial planning and acquisition to its eventual disposal or retirement. This framework helps organizations manage physical or intangible assets to maximize their value, track costs, and mitigate risks throughout their useful life. It is a core concept in both physical and IT asset management.
Business Management
- Asset managementMedium
A systematic process for developing, operating, maintaining, upgrading, and disposing of an organization's assets in the most cost-effective manner. It encompasses both tangible assets like hardware and infrastructure, and intangible assets such as software licenses and intellectual property, aiming to maximize value and minimize risk throughout the asset lifecycle.
Business Operations
- AssuranceMedium
Assurance in software engineering refers to the planned and systematic set of activities that provide justified confidence that a software product or service will satisfy given requirements for quality, safety, and security. It encompasses the entire development lifecycle, from requirements to deployment, aiming to prevent defects and vulnerabilities rather than just detecting them.
Software Quality
- ASTQBMedium
ASTQB stands for the American Software Testing Qualifications Board. It is the official United States country board for the ISTQB (International Software Testing Qualifications Board), responsible for administering ISTQB certification exams and accrediting training providers in the U.S.
Software Testing
- AsymmetricIntermediate
A term describing a system, process, or relationship where two or more parts are not identical, equal, or interchangeable. In computer science, it most commonly refers to asymmetric cryptography (public-key cryptography), which uses a pair of different keys for encryption and decryption.
Cryptography
- Atomic testBeginner
An atomic test is a small, self-contained, and independent test case that focuses on a single, specific functionality or behavior of a system. It is designed to pass or fail as a single unit, without dependencies on other tests or external states, ensuring clear and precise feedback on the code's correctness.
Software Testing
- Attack ChainIntermediate
An Attack Chain is a conceptual model that outlines the sequential stages an adversary follows to compromise a target. It breaks down a complex cyberattack into a series of distinct steps, from initial reconnaissance to the final objective. This framework helps security professionals analyze, detect, and disrupt attacks by implementing defenses at each phase.
Cybersecurity
- Attack surfaceBeginner
The total number of all possible entry points, or attack vectors, where an unauthorized user could attempt to access a system to enter or extract data. A smaller attack surface corresponds to a more secure system because there are fewer points for a potential attacker to exploit. It encompasses digital, physical, and social engineering vulnerabilities.
Cybersecurity
- Attack Surface ManagementIntermediate
Attack Surface Management (ASM) is the continuous process of discovering, analyzing, remediating, and monitoring the cybersecurity vulnerabilities and potential attack vectors that constitute an organization's digital footprint. It provides an external, attacker's-eye view of an organization's assets to identify and mitigate risks proactively.
Cybersecurity
- Attack Tree AnalysisIntermediate
A systematic method used in security engineering to model potential threats against a system. It uses a tree structure to represent an attacker's goal as the root node and the various methods to achieve that goal as the child nodes or branches. This visualization helps in understanding and mitigating vulnerabilities.
Security Engineering
- Attack vectorBeginner
An attack vector is the specific path or method a cybercriminal uses to gain unauthorized access to a system, network, or application to deliver a malicious payload. It represents the means by which a vulnerability can be exploited. Common examples include phishing emails, malware, and unpatched software vulnerabilities.
Cybersecurity
- AttestationIntermediate
Attestation is the process of providing evidence that a system's hardware and software are authentic and have not been tampered with. It allows a remote party (a verifier) to gain trust in a system (a claimant) by having the claimant generate a cryptographically signed report of its configuration and state. This report, or 'attestation quote', is then validated by the verifier against a known-good baseline, establishing a root of trust.
Computer Security
- Attribute Based Access ControlIntermediate
Attribute Based Access Control (ABAC) is an authorization model that grants access to resources based on policies that evaluate attributes. These attributes can describe the user (e.g., role, department), the resource being accessed (e.g., data sensitivity), the requested action (e.g., read, write), and the environment (e.g., time of day, location). This allows for highly dynamic and context-aware access decisions.
Cybersecurity
- Attribute Based Access Control ABACIntermediate
Attribute Based Access Control (ABAC) is a security model for managing access to resources. Instead of assigning static permissions to roles, ABAC uses policies that combine attributes of the user, the resource being accessed, and the environment. This allows for highly dynamic, context-aware, and fine-grained authorization decisions, making it ideal for complex systems.
Security
- Audit AuditingBeginner
An audit is a systematic and independent examination of books, accounts, records, documents, and systems of an organization. The goal is to ascertain how far financial statements and non-financial disclosures present a true and fair view, or to verify compliance with specific requirements. Auditing is the process of conducting this examination, which helps ensure regulatory compliance, identify internal control weaknesses, and improve operational efficiency.
Business Processes
- Audit LoggingIntermediate
A chronological and security-relevant record of events, providing documentary evidence of the sequence of activities that have affected a specific operation, procedure, or event within a system. Audit logs are essential for security analysis, compliance, and operational troubleshooting.
Security
- Audit ScopeBeginner
Defines the boundaries and extent of an audit. It specifies precisely which systems, processes, locations, business units, and time periods will be examined. Establishing a clear audit scope is a foundational step in the audit planning process to ensure all parties have a mutual understanding of the engagement's objectives and limitations.
Business Processes
- AuthenticationBeginner
Authentication is the security process of verifying the identity of a user, process, or device. It answers the question, "Are you who you claim to be?" It is a fundamental component of access control and is typically the first step before granting access to a system or resource.
Cybersecurity
- Authentication Assurance LevelsIntermediate
Authentication Assurance Levels (AAL) are a standard defined by the U.S. National Institute of Standards and Technology (NIST) in its Special Publication 800-63-3. They provide a measure of confidence in the authentication process, specifying the strength and security requirements for verifying a user's identity. There are three levels—AAL1, AAL2, and AAL3—each corresponding to an increasing level of security and assurance, typically mapped to the risk associated with unauthorized access.
Cybersecurity
- Authentication factorBeginner
An authentication factor is a category of credential used to verify a user's identity before granting access to a system or application. It is a single piece of evidence that confirms a user is who they claim to be. Factors are typically grouped into three categories: something you know (knowledge), something you have (possession), and something you are (inherence). Combining multiple factors from different categories forms the basis of multi-factor authentication (MFA), significantly enhancing security.
Cybersecurity
- Authentication PolicyIntermediate
A set of rules and configurations that govern how users prove their identity to gain access to a system, application, or network. It defines the required credentials, strength of verification methods, and conditions under which access is granted or denied, forming a critical component of an organization's security framework.
Security
- Authentication ProtocolIntermediate
A set of rules and procedures that allows a system to verify the identity of a user, device, or another system. It is a foundational component of cybersecurity, ensuring that an entity attempting to access a resource is genuinely who or what it claims to be before granting access.
Cybersecurity
- Authentication ServerIntermediate
An authentication server is a dedicated application or service that handles the process of verifying the identity of a user, device, or system attempting to access a network or other resources. It validates credentials, such as usernames and passwords or security tokens, against a secure database of authorized identities.
Security
- AuthenticatorBeginner
An authenticator is a tool, typically a software application or a hardware device, used to verify a user's identity as part of a multi-factor authentication (MFA) process. It provides a second layer of security beyond a password by generating a time-sensitive code or requiring a physical action, proving that the user possesses the device.
Cybersecurity
- Authorization HeaderIntermediate
An HTTP header used to provide credentials that authenticate a user agent with a server. It allows a client, such as a web browser or an application, to access protected resources by presenting proof of its identity and permissions.
Web Security
- Auth TokenIntermediate
An Auth Token, or Access Token, is a digital credential that grants a client application permission to access specific resources on a server on behalf of a user. It is issued by an authentication server after the user successfully authenticates and is included in subsequent API requests to prove authorization.
Security
- Automated TestingBeginner
Automated testing is the practice of using software tools to run tests on an application automatically. It involves comparing the actual results with expected results to identify defects, ensuring software quality and reliability, especially for repetitive test cases.
Software Testing
- Automation TestingIntermediate
A software testing technique that uses special software tools to execute pre-scripted tests on an application. It automates repetitive tasks and compares the actual outcomes with the expected outcomes to identify defects. The primary goal is to increase test efficiency, coverage, and speed, especially for regression testing within a continuous integration pipeline.
Software Testing
- Automation WorkflowIntermediate
A sequence of automated tasks, rules, and actions designed to execute a business or IT process without manual intervention. It involves triggers, actions, and conditional logic to streamline operations, improve efficiency, and reduce human error across various software systems.
Software Development
- Auto-MDIXBeginner
A feature on network interfaces that automatically detects the required cable connection type (straight-through or crossover) and configures the connection appropriately. It eliminates the need for crossover cables by electronically swapping the transmit and receive pairs.
Computer Networking
- Auto NegotiationBeginner
A signaling mechanism used by Ethernet devices to automatically choose the best common transmission parameters, such as speed (10/100/1000 Mbps) and duplex mode (half/full). It allows two connected devices to negotiate their capabilities and select the highest performance mode they both support, simplifying network setup and ensuring optimal performance without manual configuration.
Computer Networking
- Autonomous Access PointIntermediate
An autonomous access point is a self-contained wireless device that manages its own configuration, security, and client connections. It operates independently without needing a central wireless LAN controller, making it suitable for small-scale deployments where each access point is configured and managed individually.
Computer Networking
- Auto-summaryIntermediate
Auto-summary, or automatic summarization, is the process of using software to create a concise, accurate, and fluent summary of a longer text document. It leverages Natural Language Processing (NLP) and machine learning techniques to identify and distill the most critical information from the source material, presenting it in a shortened format.
Artificial Intelligence
- AvailabilityBeginner
Availability is a measure of a system's operational uptime and accessibility to users over a period. It is a key metric in reliability engineering, often expressed as a percentage (e.g., 99.999% or 'five nines'). It quantifies the probability that a system will be functioning and able to deliver its services at any given time. High availability is a primary goal in designing robust and dependable systems, especially for critical services.
System Design
- Availability TestingIntermediate
A type of non-functional testing that verifies a system's ability to remain operational and accessible for a required period. It focuses on testing the system's reliability, failover mechanisms, and recovery procedures to ensure it can withstand component failures and minimize downtime.
Software Testing
- Availability ZoneBeginner
An Availability Zone (AZ) is a distinct, physically isolated location within a cloud provider's region, equipped with its own power, cooling, and networking. Multiple AZs in a region are interconnected with low-latency links, allowing cloud customers to build highly available and fault-tolerant applications that can withstand data center-level failures.
Cloud Infrastructure
- Awareness TrainingBeginner
A formal process for educating individuals within an organization about security risks, policies, and procedures. Its primary goal is to change behavior, reduce human error, and foster a security-conscious culture, turning employees into a 'human firewall' against threats like phishing and social engineering.
Cybersecurity
B
32- BackdoorIntermediate
A backdoor is a covert method of bypassing normal authentication or encryption in a computer system, a cryptosystem, or an algorithm. It is a hidden entry point into a system that allows unauthorized access. Backdoors are often created for malicious purposes, such as remote access by an attacker, but can also be created by developers for legitimate reasons like troubleshooting, though this is a risky practice.
Cybersecurity
- Backdoor DetectionIntermediate
The process of identifying hidden, unauthorized access points (backdoors) within a computer system, network, or software application. These backdoors are often planted by attackers to bypass normal security measures and gain persistent, covert access to sensitive data or system controls.
Cybersecurity
- BackendBeginner
The part of a software application that runs on a server and is responsible for data storage, business logic, and communication with the frontend and other systems. It is not directly visible to the end-user.
Web Development
- Back-to-Back TestingIntermediate
A software testing method where two or more versions of a system are fed the same inputs, and their outputs are compared to detect regressions or unintended behavioral changes. It is commonly used when refactoring, optimizing, or migrating systems.
Software Testing
- Backup Integrity VerificationIntermediate
The process of checking a data backup to ensure it is complete, uncorrupted, and can be successfully restored. This critical procedure confirms that the backed-up data is reliable and can be used to recover systems and information in the event of data loss.
Data Management
- Backward CompatibilityBeginner
Backward compatibility is a property of a system, product, or technology that allows for interoperability with an older legacy system. It means a newer version can accept, read, or process data and inputs from older versions.
Software Engineering
- Bandwidth GuaranteeIntermediate
A network management feature that ensures a minimum amount of bandwidth is always available to a specific application, user, or traffic class. It prevents network congestion from degrading the performance of critical services by reserving a portion of the total available bandwidth for their exclusive use.
Network Management
- Bandwidth ThrottlingIntermediate
The intentional slowing or regulation of an internet service or network connection's speed. It is a practice used by Internet Service Providers (ISPs), network administrators, and sometimes applications to manage network traffic, reduce congestion, and enforce data limits.
Network Management
- Baseline Configuration ManagementIntermediate
A process in configuration management for establishing and maintaining a consistent, known state of a system or product at specific points in its lifecycle. This established state, known as a baseline, serves as a formal reference point for all future development, testing, and operational activities, ensuring that changes are managed in a controlled and traceable manner.
Software Engineering
- BaselinesBeginner
A baseline is a fixed point of reference used for comparison. In software engineering, it marks a specific state of a product, such as a set of source files or a built system, at a particular time. Baselines are crucial for configuration management, allowing teams to control changes, track progress, and revert to a known, stable state if necessary. They serve as the foundation for future development and testing activities.
Software Engineering
- Baseline SecurityIntermediate
A standardized level of security configuration and controls applied to all systems within an organization. It establishes a minimum security posture, ensuring that all assets meet a consistent and defined level of protection against common threats. This approach simplifies security management and compliance.
Information Security
- Baseline TestingIntermediate
A type of software testing that involves running a set of tests to capture performance metrics. These metrics serve as a documented reference point, or 'baseline,' against which future test results are compared to detect performance degradation or validate improvements.
Software Testing
- BaseliningBeginner
The process of establishing a known, fixed point of reference for future comparison. This baseline captures the state of a system, project, or product at a specific time, serving as a benchmark against which changes, performance, or progress can be measured and controlled.
Software Development Lifecycle
- BDDIntermediate
Behavior-Driven Development (BDD) is an agile software development methodology where teams collaborate to define system behavior using natural language. These descriptions, often in a Given-When-Then format, guide development and are automated to become living documentation and acceptance tests.
Software Development
- Behavioral Access ControlAdvanced
A dynamic security model that grants or denies access to resources based on the real-time analysis of user behavior and contextual factors. It continuously evaluates actions against a baseline of normal activity to identify anomalies and mitigate potential threats, moving beyond static permissions.
Cybersecurity
- Behavioral AnalyticsIntermediate
Behavioral Analytics is the process of collecting, analyzing, and interpreting data about user actions on websites, mobile apps, and other digital products. It focuses on understanding the 'why' behind user behavior to identify patterns, predict future actions, and optimize user experience, marketing efforts, and product features.
Data Science
- Behavioral BiometricsIntermediate
A method of identifying and authenticating individuals based on their unique patterns of behavior and actions, rather than physical characteristics. It analyzes how a user interacts with a device, such as their typing rhythm, mouse movements, or gait, to provide continuous and passive identity verification.
Cybersecurity
- Behavioral Biometrics DetectionIntermediate
A technology that identifies and authenticates individuals based on their unique patterns of behavior and interaction with devices. Unlike physical biometrics (e.g., fingerprints), it analyzes dynamic actions like typing rhythm, mouse movements, or gait. It is primarily used for continuous authentication and fraud detection, operating passively in the background to verify a user's identity throughout a session.
Cybersecurity
- Behavioral FirewallIntermediate
A security system that monitors network traffic and system activities for suspicious behavior and anomalies, rather than relying solely on predefined rules or signatures. It establishes a baseline of normal activity and flags deviations, enabling it to detect novel and zero-day threats.
Cybersecurity
- Behavioral Threat IntelligenceIntermediate
A proactive cybersecurity approach focusing on the 'how' and 'why' of cyberattacks by analyzing attacker behaviors, tactics, techniques, and procedures (TTPs). This allows for more resilient defense by predicting and identifying threats based on their actions, even if specific tools or malware change, moving beyond static indicators of compromise (IoCs).
Cybersecurity
- BenchmarksBeginner
A benchmark is a standardized test or set of tests used to measure and compare the performance of hardware, software, or systems. It involves running a specific workload in a controlled environment to obtain objective, repeatable, and comparable metrics like speed, throughput, or resource consumption. These results serve as a reference point for evaluation, optimization, and comparison against other systems or previous versions.
Software Development
- Beta testingBeginner
A pre-release testing phase where a product is given to a large group of external users to try under real-world conditions.
Software Development Lifecycle
- Big Bang TestingBeginner
Big Bang Testing is a software integration strategy where all developed modules are coupled together at once to form a complete system, which is then tested as a whole. Its main drawback is the extreme difficulty in isolating defects when tests fail.
Software Testing
- Black Box TestingBeginner
A software testing method where the internal structure, design, or implementation of the item being tested is not known to the tester. Testing focuses on the inputs and outputs of a software system to verify its functionality against the specified requirements.
Software Testing
- Bottom-up IntegrationIntermediate
Bottom-up integration is a software testing strategy where the lowest-level modules are tested first. These tested components are then progressively integrated with higher-level modules until the entire system is tested as a whole. This approach requires the use of 'test drivers' to simulate the behavior of higher-level components that are not yet integrated.
Software Testing
- Boundary TestingBeginner
A software testing technique that focuses on testing the 'boundaries' or 'edges' of input value ranges. It is a type of black-box testing based on the principle that errors are most likely to occur at the minimum, maximum, and adjacent values of an input domain.
Software Testing
- BranchBeginner
An independent line of development in a version control system, used to isolate work on new features or bug fixes from the main codebase.
Version Control
- BrowserStackBeginner
BrowserStack is a cloud-based web and mobile testing platform that allows developers to test their websites and mobile applications across a vast range of browsers, operating systems, and real mobile devices without requiring users to install or maintain an internal lab of virtual machines, devices or emulators.
Software Testing
- BS 7925-2Intermediate
BS 7925-2 was a British Standard that provided a formal process and vocabulary for software component testing. Now withdrawn, it has been superseded by the international standard ISO/IEC/IEEE 29119. It was highly influential in shaping modern testing practices and certifications.
Software Testing
- BugBeginner
A flaw, error, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.
Software Development
- BuildBeginner
The process of converting source code files into a standalone, executable software artifact, often involving compilation, linking, and packaging.
Software Development Lifecycle
- Build Verification TestingBeginner
Build Verification Testing (BVT) is a suite of automated tests run on every new software build to verify its basic stability and functionality. Also known as smoke testing or build acceptance testing, its purpose is to quickly reject a broken build before it enters the main testing cycle, saving time and resources. It is a cornerstone of Continuous Integration (CI) pipelines.
Software Testing
C
21- Canary TestingIntermediate
Canary Testing is a software release strategy where a new version of an application is deployed to a small subset of users before rolling it out to the entire user base. This method helps to detect potential issues in a controlled production environment, thus minimizing the risk and impact of bugs.
Software Testing
- Cascading Style Sheets (CSS)Beginner
A style sheet language used for describing the presentation of a document written in a markup language such as HTML or XML.
Web Development
- Chai.jsBeginner
Chai.js is a popular BDD/TDD assertion library for Node.js and the browser that can be paired with any JavaScript testing framework. It provides expressive, readable syntax in multiple styles (Expect, Should, and Assert) to verify test outcomes.
Software Testing
- Change ControlMedium
Change Control is a formal process used to ensure that changes to a product, system, or project are introduced in a controlled and coordinated manner. It involves identifying, documenting, approving, and implementing changes to minimize risk and disruption.
Project Management
- Change RequestsBeginner
A Change Request (CR) is a formal proposal to alter a product, system, or project. It is a key component of change management, ensuring that any proposed modifications are documented, assessed for impact, and properly approved before implementation. This process helps prevent scope creep and maintains project integrity.
Project Management
- Chaos EngineeringIntermediate
Chaos Engineering is the discipline of experimenting on a software system in production to build confidence in its ability to withstand turbulent and unexpected conditions. It involves intentionally injecting controlled failures, like server outages or network latency, to proactively identify and fix weaknesses before they cause real-world outages.
Software Engineering
- CI/CD PipelineIntermediate
An automated series of steps to build, test, and deploy new versions of software, enabling frequent and reliable releases.
DevOps
- Clean slateBeginner
A term referring to a new beginning, where past mistakes, actions, or history are disregarded. In technology, it often describes starting a project from scratch without using any existing code or systems.
Idiomatic Expressions
- Cloud ComputingBeginner
The on-demand delivery of computing services—including servers, storage, databases, networking, software, and analytics—over the Internet ('the cloud').
Infrastructure
- CMMIIntermediate
CMMI (Capability Maturity Model Integration) is a process improvement framework that provides organizations with the essential elements of effective processes. It helps organizations improve performance, quality, and efficiency by establishing a clear roadmap for maturing their capabilities.
Process Improvement
- Code CoverageIntermediate
Code coverage is a software testing metric that measures the percentage of a program's source code that has been executed by a test suite. It helps identify untested parts of an application, guiding developers to improve test thoroughness.
Software Testing
- Code RefactoringIntermediate
A disciplined technique for restructuring existing computer code—changing the factoring—without changing its external behavior.
Software Development
- Compatibility TestingIntermediate
A type of non-functional software testing to ensure an application runs correctly on different hardware, operating systems, network environments, browsers, or other software. Its goal is to verify consistent performance and user experience across various configurations.
Software Testing
- CompilerMedium
A program that translates source code written in a high-level programming language into a lower-level language (like machine code, assembly language, or bytecode) that a computer can execute.
Programming Languages
- Concurrency TestingIntermediate
A type of software testing that evaluates how an application behaves when multiple users or processes access the same shared resources simultaneously. Its goal is to identify and resolve defects like deadlocks, race conditions, and data integrity issues that only appear under concurrent conditions.
Software Testing
- ContainerizationIntermediate
A method of OS-level virtualization used to deploy and run applications by packaging them and their dependencies into isolated, lightweight units called containers.
DevOps
- Continuous Deployment (CD)Intermediate
A software release practice where every code change that passes the automated testing phase is automatically released to the production environment without any manual intervention.
DevOps
- Continuous Integration (CI)Beginner
A software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run.
DevOps
- Control Flow TestingIntermediate
Control Flow Testing is a white-box testing technique that analyzes the control flow graph of a program to design test cases. It focuses on executing various paths and decision points within the code to uncover logical errors.
Software Testing
- Cross-Browser TestingIntermediate
Cross-browser testing is the practice of ensuring that websites and web applications work correctly and consistently across different web browsers, operating systems, and devices. It aims to identify and fix bugs that may appear in one browser but not another, providing a uniform user experience for all visitors.
Software Testing
- CypressIntermediate
Cypress is a modern, all-in-one testing framework for web applications. It enables developers to write End-to-End (E2E) and component tests in JavaScript. It is known for its developer-friendly experience, featuring an interactive test runner, time-travel debugging, and automatic waiting, which leads to faster and more reliable tests.
Software Testing
D
12- DatabaseBeginner
A structured collection of data stored electronically, designed for efficient access, management, and updating.
Data Management
- Data Flow TestingIntermediate
A white-box testing technique that focuses on the lifecycle of variables. It tracks where variables are defined (assigned a value), used (referenced), and killed (destroyed) to detect data-related anomalies by testing the paths between these points.
Software Testing
- DebuggingBeginner
The process of finding and resolving defects or problems within a computer program that prevent correct operation.
Software Development
- Decision Table TestingIntermediate
A black-box testing technique that uses a table to systematically test complex business logic. It maps all combinations of input conditions to their corresponding actions, ensuring comprehensive coverage of business rules.
Software Testing
- Defect ManagementIntermediate
Defect Management is the systematic process of identifying, logging, tracking, and resolving defects or bugs in software. It involves a defined lifecycle from discovery to closure to ensure product quality and efficient resource allocation.
Software Testing
- Dependency TestingIntermediate
Dependency Testing is a type of software testing that verifies an application's functionality in conjunction with its external dependencies, such as libraries, frameworks, and APIs. It aims to uncover issues like version conflicts, breaking changes, or security vulnerabilities that arise from adding or updating these external components.
Software Testing
- DeploymentBeginner
The process of making a software application or system available for use in a specific environment, such as testing or production.
Software Development Lifecycle
- Design PatternMedium
A reusable, formalized best practice that solves a commonly occurring problem within a given context in software design.
Software Engineering
- DevOpsMedium
A set of practices and a cultural philosophy that combines software development (Dev) and IT operations (Ops) to shorten the development life cycle and provide continuous delivery with high software quality.
Software Development
- DevSecOpsIntermediate
DevSecOps is a methodology that integrates security practices within the DevOps process, emphasizing security automation and shared responsibility across development, security, and operations teams.
Software Development
- Documentation TestingBeginner
Documentation Testing is a non-functional testing process that verifies the accuracy, clarity, completeness, and usability of software documentation, such as user manuals, API guides, and help files. Its goal is to ensure users have reliable and easy-to-understand resources to use the software effectively.
Software Testing
- Dynamic TestingBeginner
Dynamic Testing is a software testing method where the code is executed to check the functional and non-functional behavior of the software. It involves providing inputs and observing the outputs to identify defects that occur during runtime, contrasting with static testing, which analyzes code without execution.
Software Testing
E
10- Edge TestingIntermediate
Edge Testing is a software testing technique that focuses on values at the boundaries of an input domain. It is based on the principle that errors are more likely to occur at the extreme ends of a range (e.g., minimum, maximum, just inside/outside) than in the middle. It is a type of black-box testing used to find off-by-one and other boundary-related defects.
Software Engineering
- EncapsulationBeginner
A fundamental principle of object-oriented programming (OOP) that involves bundling data and the methods that operate on that data into a single unit (a class), and restricting direct access to some of the object's components.
Object-Oriented Programming
- End-to-End TestingIntermediate
A software testing methodology that validates an entire application workflow from start to finish, simulating real user scenarios to ensure all integrated components work together correctly.
Software Testing
- End UserBeginner
A person who ultimately uses or is intended to ultimately use a product or service.
User Experience
- Entry CriteriaBeginner
Entry Criteria are a set of predefined conditions that must be met before a task or project phase can begin. In software testing, this ensures that the test environment, code, and resources are ready, preventing premature work and improving efficiency.
Software Testing
- EnvironmentBeginner
In computing, an environment is the context in which a program or process runs, comprising the hardware, operating system, system libraries, and configuration variables that affect its execution.
Software Development
- Equivalence PartitioningBeginner
Equivalence Partitioning is a black-box testing technique that divides the input data of a system into partitions of equivalent data. The method assumes that testing one value from each partition is sufficient to validate the behavior for that entire partition, thus reducing the number of test cases needed.
Software Testing
- Error GuessingIntermediate
Error Guessing is an experience-based software testing technique where testers use their intuition, knowledge, and experience to predict where defects are most likely to occur. It is an unstructured, ad-hoc method used to complement formal testing techniques.
Software Testing
- Expected ResultBeginner
In software testing, the Expected Result is the predefined outcome that a system should produce for a given test case. It serves as the benchmark against which the actual result is compared to determine if the test passes or fails.
Software Testing
- Extreme ProgrammingIntermediate
Extreme Programming (XP) is an agile software development framework focused on producing high-quality software and improving the development team's quality of life. It emphasizes customer satisfaction, teamwork, and technical excellence through a set of specific, interwoven practices like pair programming, test-driven development, and continuous integration.
Software Development Methodologies
F
15- Factory Acceptance TestingIntermediate
A formal test conducted at the manufacturer's facility to verify that a piece of equipment or a system meets the customer's contractual specifications before it is shipped to the operational site.
Quality Assurance
- Failover TestingIntermediate
Failover testing is a method of verifying a system's ability to automatically switch to a redundant or standby system upon the failure of the primary system. It ensures high availability and business continuity by simulating failures to confirm the backup system takes over seamlessly.
Software Testing
- False NegativeBeginner
A false negative is an error in which a test result incorrectly indicates that a particular condition or attribute is absent when it is actually present. It is often called a 'miss' or a Type II error in statistics.
Statistics
- False PositiveBeginner
A false positive is an error in which a test result incorrectly indicates the presence of a condition, such as a disease, a security threat, or a software bug, when in reality it is not present. It is also known as a Type I error or a false alarm.
Statistics
- Flaky TestIntermediate
A flaky test is an automated test that can both pass and fail for the same code without any changes. This non-deterministic behavior makes it unreliable and a common problem in CI/CD pipelines, as it can block deployments and erode trust in the test suite.
Software Testing
- FrameworkBeginner
A reusable, pre-packaged set of code, libraries, and conventions that provides a structure for developing software applications, characterized by Inversion of Control.
Software Development
- FrontendBeginner
The part of a website or application that the user interacts with directly, also known as the client-side or User Interface (UI).
Web Development
- Front-end TestingIntermediate
Front-end Testing is the practice of verifying the user interface (UI) and user experience (UX) of a web application. It ensures that all visual and interactive elements on the client-side function correctly, look as designed, and perform well across different browsers, devices, and screen sizes.
Software Testing
- Full Stack DeveloperIntermediate
A developer who works on both the front-end (client-side) and back-end (server-side) of an application, including the database and server infrastructure.
Software Engineering
- Functional IntegrationIntermediate
Functional Integration is a type of software testing that verifies the functionality and interaction between two or more combined software modules. It focuses on testing the interfaces, data flow, and communication between components to ensure they work together as a group to meet specified requirements.
Software Testing
- Functional ProgrammingIntermediate
A programming paradigm that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
Programming Paradigms
- Functional RequirementsBeginner
Functional requirements define what a software system must do. They specify the system's behaviors, functions, and features, describing how it should respond to specific inputs and user actions. They are the 'what' of a system, as opposed to non-functional requirements, which describe the 'how'.
Software Engineering
- Functional TestingBeginner
Functional testing is a quality assurance process that verifies a software application's features and functions against its specified requirements. It is a type of black-box testing that focuses on the input and expected output, without considering the internal code structure.
Software Testing
- Future Proof TestingIntermediate
Future Proof Testing is a strategy for designing automated tests to be resilient to changes in the application's user interface or underlying code. It focuses on principles like abstraction and decoupling to minimize test maintenance, ensuring the test suite remains stable and valuable as the software evolves.
Software Testing
- Fuzz TestingIntermediate
Fuzz Testing, or fuzzing, is an automated software testing technique that injects invalid, unexpected, or random data into a program to find bugs, crashes, and security vulnerabilities. It is a form of dynamic analysis highly effective at discovering memory corruption errors.
Software Testing
G
6- GherkinBeginner
Gherkin is a simple, human-readable language used to write behavior specifications in Behavior-Driven Development (BDD). It uses a structured format with keywords like Given, When, and Then to describe software features and scenarios, making them understandable to both technical and non-technical stakeholders.
Software Development
- GitBeginner
A distributed version control system for tracking changes in source code during software development, enabling collaboration and history management.
Version Control
- Glass Box TestingIntermediate
Glass Box Testing is a software testing method where the internal structure, design, and implementation of the item being tested are known to the tester. The tester uses this knowledge to design test cases that verify internal code paths, logic, and data flows. It is also known as White Box or Structural Testing.
Software Testing
- Gorilla TestingBeginner
Gorilla Testing is a software testing technique where a specific module or functionality is tested heavily and repetitively with random inputs. The goal is to check the module's robustness and find defects by attempting to crash it. It is an unscripted, manual testing approach focused on a single component.
Software Testing
- Graphical User Interface (GUI)Beginner
A visual way of interacting with a computer using items such as windows, icons, and menus, manipulated by a mouse or touchscreen.
User Interface
- Grey Box TestingIntermediate
Grey Box Testing is a software testing method that combines black-box and white-box testing techniques. The tester has partial knowledge of the system's internal structure, such as access to design documents or database schemas, but not the source code. This allows for the design of more targeted test cases to uncover context-specific defects.
Software Testing
H
7- Happy PathBeginner
The Happy Path is the default, expected, and successful execution path of a program, use case, or user interaction. It assumes no errors, exceptions, or extraordinary conditions occur, representing the ideal scenario where a user achieves their goal without issues.
Software Testing
- HardwareBeginner
The physical, tangible components of a computer or electronic system, such as the processor, memory, storage, and peripheral devices.
Computer Science
- HashingMedium
The process of transforming an input of any size into a fixed-size string of characters, which is the 'hash'. This process is typically irreversible and is used for data indexing, integrity verification, and cryptography.
Data Structures
- Headless TestingIntermediate
Headless testing is a way of running automated browser tests without a graphical user interface (GUI). This method is faster and uses fewer resources, making it ideal for automated environments like CI/CD pipelines where no visual output is needed.
Software Testing
- Heuristic TestingIntermediate
A software testing technique that leverages the tester's experience, intuition, and rules of thumb (heuristics) to discover defects. It is an exploratory approach that prioritizes discovery and learning over strict adherence to pre-written scripts.
Software Testing
- High-Level LanguageBeginner
A programming language designed to be easier for humans to read, write, and maintain by abstracting away the complex details of the computer's hardware.
Programming Languages
- Hypertext Markup Language (HTML)Beginner
The standard markup language used to create and structure the content of web pages and web applications.
Web Development
I
12- IEEE 829Intermediate
IEEE 829 is a standard from the Institute of Electrical and Electronics Engineers that defines a set of documents for use in all phases of software testing. It specifies the format and content for artifacts like the Test Plan, Test Case, and Test Summary Report to ensure a structured and consistent documentation process.
Software Engineering
- Impact AnalysisMedium
Impact Analysis is a systematic process used to evaluate and predict the potential consequences of a proposed change to a system, project, or organization. It helps in identifying the scope of work, estimating effort, and assessing risks before a change is implemented.
Software Engineering
- Incident ManagementIntermediate
Incident Management is the process used by IT, DevOps, and SRE teams to respond to an unplanned event or service interruption and restore the service to its operational state. The primary goal is to minimize the impact on business operations and end-users as quickly as possible.
IT Service Management (ITSM)
- Incident ReportBeginner
A formal document that details an unplanned event, such as a system outage, security breach, or operational failure. It outlines what happened, the impact, the actions taken to resolve it, and the steps to prevent recurrence. It's a key tool for learning and improvement in IT and software engineering.
IT Operations
- Incremental TestingIntermediate
Incremental Testing is a software testing approach where individual modules are integrated and tested one by one in a planned sequence, rather than all at once. This method helps in early defect detection and simplifies debugging by isolating faults to the newly added component.
Software Testing
- Independent Verification and ValidationIntermediate
Independent Verification and Validation (IV&V) is a process where a third-party, independent of the development team, checks a product or system. Verification ensures the product is built correctly according to specifications ('building the product right'), while Validation ensures it meets the user's actual needs ('building the right product'). This process is crucial for high-risk and mission-critical systems to ensure quality and reduce risk.
Quality Assurance
- Input Validation TestingIntermediate
Input Validation Testing is a type of software testing that verifies an application correctly accepts valid input and gracefully rejects invalid or malicious input. It is crucial for ensuring data integrity, system stability, and security against common vulnerabilities like SQL Injection and XSS.
Software Testing
- Integrated Development Environment (IDE)Beginner
A software application that provides comprehensive facilities to computer programmers for software development, typically consisting of a source code editor, build automation tools, and a debugger.
Software Development
- Integration TestingIntermediate
A level of software testing where individual software modules are combined and tested as a group to expose faults in their interaction.
Software Testing
- InterfaceBeginner
A shared boundary across which two or more separate components of a system exchange information. This can be a contract between software components (OOP/API) or the point of interaction between a human and a computer (UI).
Object-Oriented Programming
- Internationalization TestingMedium
Internationalization Testing (i18n Testing) is the process of verifying that a software application can be adapted to various languages and regions without engineering changes. It focuses on ensuring the core design and code are culturally and linguistically neutral, enabling future localization.
Software Testing
- International Software Testing Qualifications BoardMedium
The International Software Testing Qualifications Board (ISTQB) is a non-profit organization that provides the world's leading scheme for the certification of software testers. It defines and maintains a standardized body of knowledge, syllabi, and a glossary of terms, which are used by member boards in over 130 countries to deliver exams and accredit training providers.
Software Testing
J
6- JasmineBeginner
Jasmine is a behavior-driven development (BDD) framework for testing JavaScript code. It provides a clean, readable syntax using functions like `describe`, `it`, and `expect` to structure tests and make assertions. It is framework-agnostic and can be used to test any JavaScript application.
Software Testing
- JavaScriptBeginner
A high-level, interpreted programming language that conforms to the ECMAScript specification. It is one of the core technologies of the World Wide Web, enabling interactive and dynamic web pages.
Programming Languages
- JenkinsBeginner
An open-source automation server that helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery.
DevOps
- JestBeginner
Jest is a popular JavaScript testing framework developed by Meta (Facebook). It is known for its simplicity and 'zero-configuration' setup, providing an all-in-one solution with a test runner, assertion library, and mocking utilities. It is widely used for testing React applications but is suitable for any JavaScript project.
Software Testing
- JMeterIntermediate
JMeter, or Apache JMeter, is an open-source, Java-based application designed for performance testing. It is used to analyze and measure the performance of a variety of services, with a focus on web applications, by simulating heavy loads and providing detailed performance metrics.
Software Testing
- JUnit TestingBeginner
JUnit is a popular open-source unit testing framework for the Java programming language. It provides developers with a simple yet powerful way to write and run repeatable, automated tests to ensure that individual units of source code (methods) work as expected.
Software Testing
K
4- KanbanBeginner
Kanban is a workflow management method designed to help you visualize your work, limit work-in-progress (WIP), and maximize efficiency (or flow). It originated in manufacturing and has been widely adopted in software development and other knowledge work domains.
Agile Methodologies
- Keyword Driven TestingIntermediate
A software testing methodology that separates test case design from test execution. It uses keywords (or action words) stored in a data table, like a spreadsheet, to describe the actions to be performed. This allows non-technical users to create automated tests.
Software Testing
- KISS Principle (Keep it Simple Stupid)Beginner
A design principle that states that most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided.
Software Design
- KubernetesIntermediate
An open-source container orchestration system for automating the deployment, scaling, and management of containerized applications.
Cloud Computing
L
6- Lambda FunctionsIntermediate
A function that is not bound to an identifier, also known as an anonymous function. The term also refers to serverless, event-driven compute services, such as AWS Lambda.
Programming Concepts
- LibraryBeginner
A collection of pre-written code, functions, classes, and routines that can be reused by developers to perform common tasks without writing the code from scratch.
Software Development
- LighthouseBeginner
An open-source, automated tool from Google for improving the quality of web pages. It audits performance, accessibility, progressive web apps, SEO, and more, providing a report with actionable insights.
Web Development
- Load TestingIntermediate
Load testing is a type of performance testing that simulates a real-world user load on a software application or system. Its purpose is to measure the system's behavior and identify performance bottlenecks under both normal and peak conditions, ensuring it meets speed, scalability, and stability requirements.
Software Testing
- Localization TestingIntermediate
Localization testing, or L10n testing, is a software testing technique used to verify that an application is properly adapted for a specific target language, region, and culture. It goes beyond simple translation to check for cultural appropriateness, correct formatting of dates, times, and currencies, and overall user interface suitability for the target locale.
Software Testing
- LoopBeginner
A programming construct that repeats a sequence of instructions until a specific condition is met.
Programming Concepts
M
18- Machine LearningMedium
A field of artificial intelligence (AI) that enables computer systems to learn and improve from experience by analyzing data, without being explicitly programmed.
Artificial Intelligence
- MaintainabilityMedium
Maintainability is a software quality attribute that measures the ease with which a software system can be modified. This includes correcting defects, improving performance, or adapting to new requirements. High maintainability leads to lower long-term costs, faster development cycles, and reduced risk when making changes.
Software Quality
- MaintenanceBeginner
The process of modifying a software product after its initial delivery to correct faults, improve performance, or adapt it to a changed environment.
Software Development Lifecycle
- Maintenance TestingIntermediate
Maintenance Testing is the process of testing changes made to an existing software system. It aims to verify that modifications, such as bug fixes or new features, work correctly and have not negatively impacted the stability or functionality of the unchanged parts of the application.
Software Testing
- Manual TestingBeginner
Manual Testing is a software testing process where a human tester executes test cases by hand, without using automation tools. The goal is to find bugs, issues, and defects by interacting with the software as an end-user to ensure it meets requirements and provides a good user experience.
Software Testing
- Mean Time Between Failures MTBFIntermediate
Mean Time Between Failures (MTBF) is a reliability metric that represents the average time a repairable system or component operates before a failure occurs. It is calculated by dividing the total operational time by the number of failures. A higher MTBF indicates a more reliable system.
Reliability Engineering
- Merge ConflictBeginner
An event that occurs when a version control system is unable to automatically reconcile differences in code between two branches being merged, requiring manual intervention.
Version Control
- MethodologyIntermediate
A system of methods, principles, and rules used in a particular area of study or activity, such as software development or academic research.
Software Development
- MicrofrontendIntermediate
An architectural style where a web application is composed of small, independent, and deployable frontend applications.
Web Development
- MicroservicesIntermediate
An architectural style that structures an application as a collection of small, autonomous, and loosely coupled services, each responsible for a specific business capability.
Software Architecture
- Microservices TestingIntermediate
Microservices Testing is a strategy for verifying applications built with a microservices architecture. It involves multiple layers of testing, including unit, component, integration, contract, and end-to-end tests, to ensure that individual services work correctly in isolation and communicate effectively with each other to deliver the overall application functionality.
Software Testing
- MiddlewareIntermediate
Software that acts as an intermediary layer between applications, or between an application and the operating system, to provide common services and facilitate communication and data management.
Software Architecture
- Minimum Viable Product (MVP)Beginner
A version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort.
Product Management
- Mobile App TestingMedium
Mobile App Testing is the process of verifying the functionality, usability, performance, and consistency of software applications on mobile devices like smartphones and tablets. It aims to find and fix bugs before an app's release, ensuring it works correctly across a wide variety of devices, operating systems, and network conditions.
Software Testing
- Mobile Device TestingIntermediate
Mobile Device Testing is the quality assurance process for applications on handheld devices. It involves verifying an app's functionality, usability, performance, and compatibility across a wide variety of smartphones and tablets to ensure a high-quality user experience.
Software Testing
- Mock TestingIntermediate
Mock testing is a technique in software development where real system components are replaced with simulated objects, called mocks. This is done to isolate the code being tested from its dependencies, allowing for focused, fast, and reliable unit tests that verify behavior in a controlled environment.
Software Testing
- Model-View-Controller (MVC)Intermediate
A software design pattern for developing user interfaces that divides an application into three interconnected parts: the Model, the View, and the Controller.
Software Architecture
- Mutation TestingIntermediate
Mutation Testing is a software testing technique used to evaluate the quality of existing software tests. It involves modifying a program's source code in small ways to create versions called 'mutants' and then checking if the existing test suite can detect and 'kill' these mutants. A high kill rate indicates a robust test suite.
Software Testing
N
4- Node.jsIntermediate
A JavaScript runtime environment that allows executing JavaScript code on the server-side, outside of a web browser.
Backend Development
- Non-functional TestingIntermediate
A type of software testing that evaluates the operational characteristics and quality attributes of a system, such as its performance, security, usability, and reliability. It focuses on 'how' the system works, rather than 'what' specific functions it performs.
Software Testing
- NoSQLIntermediate
A database that provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. They are known for their flexible schemas, horizontal scalability, and varied data models.
Databases
- NUnitIntermediate
NUnit is a popular open-source unit testing framework for all .NET languages. It is used by developers to write and run repeatable tests to verify that their code works as intended. Part of the xUnit family, it uses attributes to define tests and provides a rich set of assertions to validate outcomes.
Software Testing
O
7- Object-oriented Programming (OOP)Intermediate
A programming paradigm based on the concept of "objects", which can contain data and code to manipulate that data.
Programming Paradigms
- Object-Relational Mapping (ORM)Intermediate
A programming technique for converting data between incompatible type systems in object-oriented programming languages and relational databases, allowing developers to work with objects instead of database tables and SQL.
Data Persistence
- Open SourceBeginner
A model for software development and licensing that makes source code publicly available for anyone to view, modify, and distribute.
Software Development
- Operational TestingIntermediate
Operational Testing is a type of software testing that evaluates a system's readiness for deployment by focusing on its operational aspects. Conducted in a production-like environment by operations staff, it validates non-functional requirements like backup/restore, disaster recovery, monitoring, security, and maintainability.
Software Testing
- OptimizationMedium
The process of making a system or design as effective or functional as possible, typically by minimizing cost, time, or resources, or by maximizing performance, efficiency, or output.
Computer Science
- Orthogonal Array TestingIntermediate
Orthogonal Array Testing (OAT) is a statistical black-box testing technique that reduces the number of test cases needed to test a system with multiple parameters. It uses a structured approach called an orthogonal array to ensure that all possible pairs of parameter values are tested at least once. This method is highly efficient for finding defects caused by the interaction of two parameters, solving the problem of 'combinatorial explosion' where exhaustive testing is impractical.
Software Testing
- OTT TestingIntermediate
OTT (Over-The-Top) Testing is a software testing process that verifies the quality of applications delivering video content over the internet. It focuses on functionality, performance, security, and compatibility across a wide range of devices like smart TVs, mobile phones, and streaming sticks to ensure a seamless user experience.
Software Testing
P
39- Package ManagerBeginner
A tool that automates the process of installing, updating, configuring, and removing software packages, while also managing their versions and dependencies.
Software Development
- Page Object ModelIntermediate
A design pattern in test automation where web pages are represented as classes. These classes, or 'Page Objects', contain the UI element locators and the methods to interact with them, separating test logic from page-specific code to improve maintainability and reduce duplication.
Software Testing
- Pair TestingBeginner
Pair Testing is a software testing technique where two people work together at one computer to test an application. One person, the 'driver,' controls the computer, while the other, the 'navigator,' observes, takes notes, and provides guidance, fostering collaboration and improving defect detection.
Software Testing
- Parameterized TestingIntermediate
A software testing technique where the same test is executed multiple times with different input values. It separates test logic from test data, reducing code duplication and making it easier to test a wide range of scenarios.
Software Testing
- Passive DNS MonitoringIntermediate
A method of collecting Domain Name System (DNS) data by silently capturing it from existing network traffic, rather than by actively querying DNS servers. This historical data is stored in a database and used for cybersecurity analysis, threat intelligence, and network forensics to map relationships between domain names, IP addresses, and other DNS records over time.
Network Security
- Password AuditIntermediate
A password audit is a security procedure that assesses the strength and compliance of passwords within an organization's systems. It involves checking for weak passwords, default credentials, password reuse, and adherence to password policies. The goal is to identify and mitigate risks associated with compromised or easily guessable passwords, thereby enhancing overall security posture.
Security Auditing
- Password Expiration PolicyBeginner
A security rule that requires users to change their passwords after a predetermined period. It is designed to limit the amount of time an attacker can use a compromised password, thereby reducing the window of vulnerability for unauthorized access.
Cybersecurity
- Password Hashing SchemeIntermediate
A Password Hashing Scheme is a cryptographic method for securely storing passwords. It transforms a password into a fixed-length string of characters, known as a hash, using a one-way function. This process is intentionally slow and resource-intensive, making it computationally infeasible for an attacker to reverse the hash and discover the original password, even if they gain access to the stored hashes.
Cybersecurity
- Password HygieneBeginner
Password hygiene refers to the set of best practices for creating, managing, and protecting passwords to enhance digital security. It involves using strong, unique passwords for different accounts, storing them securely using a password manager, and being vigilant against phishing and other threats. The goal is to minimize the risk of unauthorized access to personal and professional accounts.
Cybersecurity
- Password Spray AttackIntermediate
A type of brute-force attack where an attacker tries a single, commonly used password against many different user accounts. This method avoids account lockouts that typically occur after multiple failed login attempts on a single account. The goal is to find at least one account accessible with the common password.
Cybersecurity Attack Vectors
- PatchBeginner
A patch is a piece of software code designed to update a computer program or its supporting data. It is used to fix security vulnerabilities, bugs, improve functionality, or add new features. Patches are often applied to an existing software installation without needing to reinstall the entire program. They are a fundamental part of software maintenance and lifecycle management, ensuring systems remain secure, stable, and up-to-date.
Software Engineering
- Patch Compliance AuditIntermediate
A systematic review to verify that all systems, software, and applications within an organization are updated with the latest security patches. This process helps identify vulnerabilities, ensure security policy adherence, and mitigate risks from unpatched software.
Cybersecurity
- Patch DistributionIntermediate
The process of identifying, acquiring, testing, and deploying software updates, known as patches, to computer systems within a network. Its primary goal is to fix security vulnerabilities, correct bugs, and improve functionality and stability across an organization's IT infrastructure.
IT Management
- Patch PrioritizationIntermediate
The process of ranking software patches and vulnerabilities based on their risk and importance to an organization. This helps security teams focus on the most critical fixes first, optimizing resource allocation and minimizing exposure to threats by addressing the most significant dangers in a timely manner.
Cybersecurity
- Patch TestingBeginner
A software testing technique focused on verifying the correctness of a specific, small change or "patch" applied to a system. It ensures the patch fixes the intended issue without introducing new defects, often as a quick, targeted form of regression testing before a full regression suite is run.
Software Testing
- Patch Validation ProcessIntermediate
A systematic procedure to test and verify software patches before deployment. It ensures that a patch resolves the intended issue without introducing new bugs or regressions, confirming its stability, compatibility, and effectiveness within the target environment.
Software Development Lifecycle
- Path SelectionIntermediate
Path Selection is the process by which network devices, such as routers, choose the best route for data to travel from a source to a destination across a network. This decision is based on information gathered by routing protocols and uses various metrics like speed, cost, and reliability to determine the most optimal path.
Computer Networking
- Path Vector ProtocolAdvanced
A type of routing protocol where each router maintains the path information to reach a destination. Instead of just the next hop and cost, each routing update includes the entire sequence of autonomous systems (ASes) the route traverses. This mechanism is fundamental for loop prevention and implementing policy-based routing in large-scale networks like the internet. The Border Gateway Protocol (BGP) is the most prominent example.
Computer Networking
- Payload AnalysisIntermediate
The process in cybersecurity of examining the actual data content (the payload) of a network packet, rather than just its metadata or header. This inspection is used to detect malicious code, security threats, policy violations, or specific types of data that would be invisible to simpler forms of traffic analysis.
Cybersecurity
- Payload ObfuscationIntermediate
A set of techniques used in cybersecurity to conceal the content and intent of a data payload, particularly a malicious one. By encoding, encrypting, or otherwise modifying the payload's structure, it is made difficult for security systems like antivirus software and intrusion detection systems to recognize and block it.
Cybersecurity
- Payment Card Industry Data Security StandardMedium
An information security standard for organizations that handle branded credit cards from the major card schemes. The PCI Standard is mandated by the card brands and administered by the Payment Card Industry Security Standards Council. The standard was created to increase controls around cardholder data to reduce credit card fraud.
Cybersecurity
- Payment Gateway SecurityIntermediate
A set of security measures, technologies, and protocols designed to protect sensitive financial data, such as credit card numbers, during online transactions. It encompasses practices like encryption, tokenization, and compliance with standards like PCI DSS to ensure data confidentiality and integrity between the customer, merchant, and financial institutions.
Cybersecurity
- PBKDF2 HashingIntermediate
PBKDF2 (Password-Based Key Derivation Function 2) is a key stretching algorithm used to hash passwords securely. It repeatedly applies a cryptographic hash function, combined with a unique salt, to a password. This process intentionally slows down the computation, making it highly resistant to brute-force and rainbow table attacks, which try to guess passwords by hashing common words or pre-computing hashes.
Cybersecurity
- PCI DSS ComplianceAdvanced
PCI DSS (Payment Card Industry Data Security Standard) is a set of security standards designed to ensure that all companies that accept, process, store, or transmit credit card information maintain a secure environment. It was created to increase controls around cardholder data to reduce credit card fraud.
Information Security
- PEAPIntermediate
A protocol that encapsulates EAP within a TLS tunnel. It's commonly used in wireless networks (like WPA2-Enterprise) to securely authenticate users. PEAP was jointly developed by Cisco, Microsoft, and RSA Security. It provides a secure channel to protect the inner EAP authentication method, which could otherwise be vulnerable to eavesdropping.
Network Security
- Peer TestingBeginner
Peer Testing is an informal software testing method where developers, testers, or other team members evaluate each other's work. It aims to catch defects early in the development process through quick, collaborative feedback before code is formally submitted to a QA team.
Software Testing
- Peer-to-Peer RiskIntermediate
The potential for financial loss, security breaches, or other negative outcomes that arise when individuals transact directly with each other, bypassing traditional intermediaries like banks or centralized servers. This risk is prominent in P2P lending, file sharing, and cryptocurrency networks, where participants bear the direct consequences of counterparty failure, platform instability, or malicious activity.
Financial Technology (FinTech)
- Penetration TestingIntermediate
Penetration testing, also known as pen testing or ethical hacking, is an authorized simulated cyberattack on a computer system, performed to evaluate its security. Testers actively try to find and exploit vulnerabilities to determine the potential real-world impact of a breach.
Cybersecurity
- Penetration Testing as a Service PTaaSIntermediate
A subscription-based model for security testing that combines the automation of vulnerability scanning with the expertise of human penetration testers. Delivered through a cloud platform, PTaaS provides continuous security assessments, real-time vulnerability reporting, and on-demand testing, making it ideal for modern, agile development environments.
Cybersecurity
- Penetration Testing MethodologyIntermediate
A structured approach or framework for conducting penetration tests. It outlines the phases, tools, and techniques used to systematically identify, exploit, and report vulnerabilities in a target system, ensuring a comprehensive, repeatable, and effective security assessment.
Cybersecurity
- Performance IndicatorBeginner
A Performance Indicator (PI) is a measurable value used to track and evaluate the success of an organization or a specific activity in achieving its key objectives. It provides a way to quantify performance and helps in making informed business decisions.
Business
- Performance TestingIntermediate
A non-functional software testing technique used to determine how a system performs in terms of speed, responsiveness, and stability under a particular workload.
Software Testing
- PluginBeginner
A software component that adds a specific feature to an existing computer program, enabling customization and extensibility.
Software Architecture
- PolymorphismIntermediate
A core concept in object-oriented programming that allows objects of different classes to be treated as objects of a common superclass. It enables a single interface to represent different underlying forms (data types).
Object-Oriented Programming
- PostconditionIntermediate
A postcondition is a condition or predicate that must always be true immediately after the execution of a piece of code. It is a core component of Design by Contract, representing the 'guarantee' a method makes if its preconditions were met.
Software Engineering
- PostmanBeginner
Postman is a popular API platform used for building, testing, and documenting APIs. It provides a user-friendly interface to send requests, inspect responses, and streamline the entire API lifecycle, from design and mocking to automated testing and collaboration.
Software Development
- PriorityBeginner
Priority is a value assigned to a task, process, or item that determines its relative importance or urgency. In computing, it dictates the order of access to resources like the CPU. In project management, it guides the sequence of work to maximize value delivery.
Project Management
- PrototypeBeginner
A preliminary model or early sample of a product, concept, or system, built to test a concept, gather feedback, or validate a process before full-scale development.
Software Development
- Pull RequestBeginner
A mechanism for a developer to propose changes to a codebase, initiating a review and discussion before the code is merged into the main project.
Version Control
Q
6- QA MetricsIntermediate
QA Metrics are quantitative measurements used to assess the quality of a software product and the effectiveness of the testing process. They provide data-driven insights to track progress, identify areas for improvement, and make informed decisions about release readiness.
Software Testing
- QualityBeginner
Quality is a measure of excellence or a state of being free from defects, deficiencies, and significant variations. It is achieved by strict and consistent commitment to certain standards that achieve uniformity of a product in order to satisfy specific customer or user requirements.
Software Engineering
- Quality Assurance (QA)Beginner
A systematic, process-oriented approach to prevent defects and ensure quality throughout the entire software development lifecycle.
Software Development
- Quality attributeMedium
A quality attribute is a non-functional requirement that describes how a system should perform a certain function or behave under certain conditions. It defines the system's properties and constraints, such as performance, security, or reliability, rather than its specific features.
Software Architecture
- Quality characteristicMedium
A quality characteristic is an inherent, measurable feature or property of a product, process, or system that is used to evaluate its performance against requirements. It defines a specific aspect of quality, such as performance, reliability, or usability.
Quality Management
- Quality ManagementMedium
Quality Management is the systematic oversight of all activities and tasks needed to maintain a desired level of excellence. It encompasses four key components: quality planning, quality assurance, quality control, and quality improvement, all aimed at ensuring products or services consistently meet customer expectations.
Project Management
R
37- Rational Unified ProcessIntermediate
The Rational Unified Process (RUP) is an iterative software development process framework created by Rational Software Corporation. It organizes development into four phases—Inception, Elaboration, Construction, and Transition—each consisting of one or more time-boxed iterations. RUP is adaptable and focuses on best practices like managing requirements, using component-based architecture, and visually modeling with UML.
Software Development
- RecoverabilityIntermediate
Recoverability is a system's ability to restore itself to a consistent and operational state after a failure, such as a software crash, hardware malfunction, or data corruption. In databases, it ensures that committed transactions are permanent and incomplete ones are undone. In broader systems architecture, it refers to the overall resilience and ability to resume services after an outage.
Database Systems
- RecursionIntermediate
A process in which a function calls itself directly or indirectly to solve a problem by breaking it down into smaller, similar subproblems.
Computer Science
- RedundancyBeginner
Redundancy is the intentional duplication of critical components or functions within a system with the goal of increasing reliability and availability. By having backup components, a system can withstand the failure of one or more components without a complete outage.
System Architecture
- RefactoringIntermediate
The process of restructuring existing computer code to improve its internal structure without changing its external behavior.
Software Engineering
- Regression TestingBeginner
A type of software testing that verifies that recent code changes have not broken existing functionality. It involves re-running a set of tests to ensure the application has not 'regressed' after modifications.
Software Testing
- Release TestingIntermediate
Release Testing is the final phase of software testing conducted before a product is released to customers. It focuses on validating the complete system to ensure it meets user requirements and is stable enough for the production environment.
Software Testing
- ReliabilityMedium
Reliability is a measure of a system's ability to perform its intended function without failure for a specified period under defined conditions. It is a key aspect of system dependability and focuses on failure prevention and consistency of service.
Software Engineering
- ReplaceabilityIntermediate
Replaceability is a quality attribute in software engineering that refers to the ease with which a component or subsystem can be replaced by another with equivalent functionality, without causing major disruptions to the overall system. It is achieved through modular design, low coupling, and stable interfaces.
Software Architecture
- RepositoryBeginner
A central storage location where digital assets, most commonly source code, are stored and managed. In version control, it tracks the complete history of a project's files.
Version Control
- Representational State Transfer (REST)Medium
An architectural style for designing networked applications, which uses a stateless, client-server model and relies on standard HTTP methods. APIs conforming to this style are called RESTful APIs.
Software Architecture
- RequirementBeginner
A requirement is a documented statement of a need that a product or system must fulfill. It defines what the system should do (functional) or the qualities it must have (non-functional), serving as a guide for design, development, and testing.
Software Engineering
- Requirement attributeBeginner
A requirement attribute is metadata that describes, classifies, or manages a requirement. It provides additional context beyond the requirement's core statement, such as priority, status, source, and a unique identifier, aiding in tracking, analysis, and project management.
Software Engineering
- Requirements acceptanceMedium
Requirements acceptance is the formal process where stakeholders agree that a set of requirements is complete, correct, and meets their needs. This approval, often called a sign-off, establishes a baseline for the project's scope before development begins or continues.
Requirements Engineering
- Requirements DevelopmentMedium
Requirements Development is the process of eliciting, analyzing, specifying, and validating the requirements for a system or software product. It is a critical early-stage activity that forms the foundation for all subsequent design, implementation, and testing efforts.
Software Engineering
- Requirements elicitationMedium
The process of seeking, uncovering, acquiring, and elaborating requirements for a system from users, customers, and other stakeholders. It is an active discovery process that uses techniques like interviews, workshops, and prototyping to understand the goals and constraints for the system to be developed.
Software Engineering
- Requirements ManagementMedium
Requirements Management is the systematic process of documenting, analyzing, tracing, prioritizing, and agreeing on requirements and then controlling change and communicating to relevant stakeholders. It is a continuous process throughout a project's lifecycle to ensure the final product meets stakeholder needs.
Software Engineering
- Requirements Management toolMedium
A Requirements Management tool is a software application that helps teams document, analyze, trace, prioritize, and agree on requirements for a system. It provides a centralized platform to manage the entire lifecycle of a requirement, from its conception to its implementation and testing.
Software Engineering
- Requirements modelMedium
A requirements model is a collection of text, diagrams, and prototypes that specify a system's functions, constraints, and goals. It serves as a communication tool between stakeholders and developers to ensure a shared understanding of what needs to be built.
Software Engineering
- Requirements phaseBeginner
The Requirements Phase is the initial stage in the software development lifecycle where the needs and expectations for a new system are identified, analyzed, documented, and validated. Its goal is to define what the system should do.
Software Development Lifecycle
- Requirements sourceBeginner
A requirements source is the origin from which a requirement is derived. It can be a person (like a stakeholder), a document (like a business plan or regulation), or an existing system. Identifying the source is crucial for understanding, validating, and tracing requirements throughout a project's lifecycle.
Software Engineering
- Requirements traceabilityIntermediate
Requirements traceability is the ability to describe and follow the life of a requirement in both a forward and backward direction. It links requirements to their origins and to other development artifacts like designs, code, and tests, ensuring all requirements are addressed and facilitating change management.
Software Engineering
- Requirements Traceability MatrixIntermediate
A Requirements Traceability Matrix (RTM) is a document that maps and traces user requirements with test cases and other project artifacts. It ensures that all requirements are covered by tests, helps in analyzing the impact of changes, and provides a clear audit trail throughout the development lifecycle.
Software Development
- Responsive DesignBeginner
Responsive Design is a web design approach that creates dynamic changes to the appearance of a website, depending on the screen size and orientation of the device being used to view it. It uses fluid grids, flexible images, and media queries to provide an optimal user experience across desktops, tablets, and mobile phones.
Web Development
- RetestingBeginner
Retesting is the process of testing a specific functionality or module again after a defect has been fixed to verify that the fix has resolved the issue. It is a planned activity that uses the same test case that initially revealed the bug.
Software Testing
- ReviewBeginner
A review is a process in software engineering where a work product, such as code, design, or documentation, is examined by individuals other than the author. The goal is to identify defects, improve quality, ensure adherence to standards, and facilitate knowledge sharing among team members.
Software Development Lifecycle
- ReviewerBeginner
A reviewer is an individual responsible for examining and evaluating a piece of work to ensure it meets specific standards of quality, correctness, and completeness. In software development, a reviewer assesses source code for issues before it is integrated. In other fields, they may evaluate research papers, documents, or creative works.
Software Development
- Review toolBeginner
A review tool is a software application or feature that facilitates the collaborative process of examining and providing feedback on work products like source code, documents, or designs. It helps improve quality, enforce standards, and share knowledge.
Software Development
- RiskBeginner
Risk is the potential for an unwanted outcome resulting from an action or inaction. It is an uncertain event that, if it occurs, could have a positive or negative effect on objectives. It is typically measured by combining the probability of an event and the magnitude of its impact.
Project Management
- Risk analysisMedium
Risk analysis is the systematic process of identifying, evaluating, and prioritizing potential threats or hazards that could negatively impact an organization, project, or investment. It involves assessing the probability of a negative event occurring and the potential severity of its impact to inform decision-making and mitigation strategies.
Project Management
- Risk categoryBeginner
A risk category is a classification used to group potential risks based on their common characteristics, such as their source or the area of the project they impact. This practice helps in systematically identifying, analyzing, and managing risks.
Project Management
- Risk controlMedium
Risk control is the process of identifying potential risks and implementing strategies to reduce the likelihood of those risks occurring or to minimize their impact. It involves methods such as avoidance, reduction, transfer, and acceptance of risk.
Risk Management
- Risk identificationBeginner
Risk identification is the process of finding, recognizing, and documenting potential risks that could impact an organization or project. It involves identifying both threats (negative risks) and opportunities (positive risks). This is the first and most critical step in the overall risk management process.
Project Management
- Risk levelBeginner
A risk level is a qualitative or quantitative measure of a risk's magnitude, determined by combining its likelihood of occurrence and its potential impact. It is used to prioritize risks for management and decision-making.
Risk Management
- Risk ManagementMedium
Risk Management is the systematic process of identifying, assessing, and controlling threats and opportunities to an organization's objectives. It involves analyzing potential risks, developing strategies to mitigate negative risks, and capitalizing on positive ones to achieve desired outcomes.
Project Management
- Risk typeBeginner
A risk type, also known as a risk category, is a classification used to group potential risks based on common characteristics, such as their source or the area of the business they impact. This helps in organizing, analyzing, and managing risks more effectively.
Risk Management
- RuntimeBeginner
The phase in the software lifecycle where a program is executing or running on a computer.
Programming Concepts
S
58- SafetyBeginner
Safety is the state of being protected from harm, danger, risk, or injury. It involves the presence of measures and controls designed to prevent accidents and mitigate the consequences of failures, applying to individuals, systems, and environments.
Risk Management
- ScalabilityIntermediate
Scalability is the property of a system to handle a growing amount of work by adding resources. This is typically achieved by either adding more powerful hardware to an existing machine (vertical scaling) or by adding more machines to the system (horizontal scaling).
System Design
- Scalability TestingIntermediate
Scalability Testing is a non-functional testing method used to measure how an application's performance scales with an increase in workload, such as user traffic or data volume. Its purpose is to identify performance bottlenecks and determine the system's capacity for growth, ensuring it can maintain performance standards as demand increases.
Software Testing
- ScenarioBeginner
A scenario is a narrative or story that describes a sequence of events, a user's interaction with a system, or a potential future state. It is used in various fields like software testing, UX design, and strategic planning to understand context, test functionality, and prepare for different outcomes.
Software Development
- ScopeBeginner
Scope in programming refers to the context in which variables, functions, and objects are accessible. It determines the visibility of identifiers, preventing name collisions and managing memory. The two main types are lexical scope, determined at compile time, and dynamic scope, determined at runtime.
Programming Concepts
- Screenshot TestingIntermediate
Screenshot Testing is an automated testing practice where screenshots of a user interface are compared against a baseline version to detect unintended visual changes. Also known as Visual Regression Testing, it helps catch bugs in layout, styling, and rendering that functional tests might miss.
Software Testing
- ScribeIntermediate
Scribe is a scalable, real-time log aggregation framework developed by Facebook. It was designed to collect vast amounts of log data from numerous servers and transport it to a central storage system. It uses a Thrift-based protocol for communication and features buffering for fault tolerance. While influential, it has largely been superseded by newer technologies like Apache Kafka and Fluentd.
Logging
- ScrumBeginner
A lightweight Agile framework for developing, delivering, and sustaining complex products through iterative and incremental practices.
Agile Methodologies
- Security TestingIntermediate
Security Testing is a type of software testing that uncovers vulnerabilities, threats, and risks in a software application. Its purpose is to identify and fix security weaknesses to protect the system from malicious attacks, ensuring data confidentiality, integrity, and availability.
Software Testing
- SeleniumIntermediate
Selenium is a popular open-source framework for automating web browsers. It provides a suite of tools, including WebDriver for creating robust, code-based tests; IDE for simple record-and-playback; and Grid for parallel test execution. It's widely used for automated testing of web applications and web scraping.
Software Testing
- Selenium IDEBeginner
Selenium IDE is a browser extension that provides a simple record-and-playback interface for creating automated web tests. It allows users to record their actions in a browser and export them as a script, making it an ideal entry point for beginners in quality assurance and test automation.
Software Testing
- Sequence diagramBeginner
A sequence diagram is a UML interaction diagram that shows how processes or objects operate with one another and in what order. It visualizes the exchange of messages between objects over time, making it useful for understanding the dynamic behavior of a system.
Software Engineering
- Serverless ComputingIntermediate
A cloud computing model where the cloud provider runs the server and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity.
Cloud Computing
- Session-Based TestingIntermediate
Session-Based Testing is a structured approach to exploratory testing where testing activities are conducted in uninterrupted, time-boxed periods called sessions. Each session has a clear mission (a 'charter'), and the results are documented and discussed in a debriefing, ensuring accountability and measurability.
Software Testing
- SetupBeginner
Setup refers to the process of preparing a system, software, or hardware for operation. It encompasses all the steps required to make a component or system functional, including installation, configuration, and initialization.
Software Development
- SeverityBeginner
Severity is a classification used to measure the degree of impact that a defect, risk, or incident has on a system, project, or business operation. It helps teams understand the seriousness of an issue, distinct from its priority, which dictates the urgency of fixing it.
Software Development
- Shift-left TestingIntermediate
Shift-left testing is a software development practice where testing is performed earlier in the lifecycle. Instead of being a final phase, testing is integrated continuously from the initial stages, aiming to prevent defects, reduce costs, and shorten feedback loops. It is a core component of Agile and DevOps.
Software Testing
- SignoffBeginner
A formal approval or acceptance that marks the completion of a project phase, milestone, or deliverable. It confirms that the work meets predefined requirements and serves as an official agreement for stakeholders to proceed to the next stage or conclude the project.
Project Management
- SoftwareBeginner
A set of instructions, data, or programs used to operate computers and execute specific tasks.
Computer Science
- Software as a Service (SaaS)Beginner
A software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted by a provider. It is accessed by users over the internet, typically via a web browser.
Cloud Computing
- Software Failure ModeIntermediate
A Software Failure Mode is the specific, observable way in which a software system fails to perform its intended function. It describes the external symptom of a failure, such as a system crash, incorrect output, or a frozen user interface, rather than the underlying bug that caused it.
Software Engineering
- Software Failure Mode and Effect AnalysisAdvanced
Software Failure Mode and Effect Analysis (SFMEA) is a systematic, proactive method for evaluating a software system to identify potential failures, their causes, and their effects on system operation. It uses a Risk Priority Number (RPN) to prioritize risks and guide mitigation efforts, enhancing software reliability and safety.
Software Engineering
- Software LifecycleBeginner
A structured process used by the software industry to design, develop, and test high-quality software, covering its entire life from conception to retirement.
Software Engineering
- Software Process ImprovementIntermediate
Software Process Improvement (SPI) is a systematic approach for analyzing and changing an organization's software development processes to improve product quality, increase productivity, and enhance predictability.
Software Engineering
- Software qualityMedium
Software quality is a measure of how well a software product meets both its specified functional requirements and the implicit non-functional expectations of its users, such as reliability, usability, and performance. It is a multi-dimensional concept that encompasses the entire software development lifecycle, aiming to deliver a product that is not only correct but also robust, secure, and maintainable.
Software Engineering
- Software quality characteristicMedium
A software quality characteristic is a distinct attribute or property of a software product by which its quality can be described and evaluated. Standard models, like ISO/IEC 25010, categorize these into areas such as Performance Efficiency, Usability, Security, and Maintainability to provide a framework for defining and measuring non-functional requirements.
Software Engineering
- Software Quality ManagementIntermediate
Software Quality Management (SQM) is a comprehensive process for ensuring a software product meets quality standards and user expectations. It consists of three main activities: Quality Planning (defining standards), Quality Assurance (preventing defects through process improvement), and Quality Control (identifying defects through testing).
Software Engineering
- Software Risk AnalysisIntermediate
Software Risk Analysis is the process of identifying, analyzing, and planning responses to potential problems that could negatively affect a software project. It involves assessing the probability and impact of risks related to budget, schedule, technology, and security to proactively manage and mitigate them.
Software Engineering
- Software TestingBeginner
Software testing is the process of evaluating a software application to identify any defects or errors. Its goal is to verify that the software meets technical specifications and validate that it fulfills end-user requirements, ultimately ensuring the quality of the final product.
Software Development
- Software Testing Life CycleIntermediate
The Software Testing Life Cycle (STLC) is a structured sequence of specific activities conducted during the software testing process. It defines a systematic approach to testing, from analyzing requirements to closing the test cycle, to ensure the software product meets quality standards and business requirements.
Software Engineering
- SolutionBeginner
In software engineering, a solution is a complete and functional system, product, or service that addresses a specific business or technical problem. It encompasses all necessary components, including the software application, architecture, infrastructure, data, and processes, to deliver a comprehensive answer to a need.
Software Development
- Solution modelIntermediate
A solution model is a detailed representation of how a specific business or technical problem will be solved. It outlines the components, interactions, processes, and data required to implement a solution, effectively serving as a blueprint that bridges the gap between requirements and the final implementation.
Software Architecture
- Solution SpecificationMedium
A Solution Specification is a formal document that provides a detailed description of a proposed system or product. It outlines the functional and non-functional requirements, design, architecture, and implementation details, serving as a blueprint for the development team and a point of agreement for all stakeholders.
Software Development
- Solution validationIntermediate
Solution validation is the process of testing a proposed solution with customers and users to ensure it solves their problem, meets their needs, and is something they are willing to use or pay for. It focuses on confirming the 'right solution' is being built before significant development resources are invested.
Product Management
- Source CodeBeginner
A set of human-readable instructions written in a programming language that serves as the blueprint for a computer program.
Programming
- SprintBeginner
A short, time-boxed period during which a specific amount of work has to be completed and made ready for review. It's a core concept in the Scrum framework.
Agile Development
- StabilityMedium
Stability in software engineering refers to a system's ability to operate reliably and predictably over time, without crashing or exhibiting erratic behavior. It is a measure of how well software resists failure, handles errors, and maintains performance under both expected and unexpected conditions.
Software Engineering
- StakeholderBeginner
A stakeholder is any individual, group, or organization who can affect or be affected by the outcome of a project, business, or system. They have an interest, or 'stake,' in its success or failure, which can be financial or non-financial.
Project Management
- State machineIntermediate
A state machine is a mathematical model of computation that can be in exactly one of a finite number of states at any given time. It transitions from one state to another in response to external inputs or events. In software engineering, it's also a behavioral design pattern used to make an object's behavior dependent on its state.
Computer Science
- State machine diagramIntermediate
A behavioral diagram in UML that describes the dynamic behavior of an object over its lifetime. It shows the sequence of states an object goes through in response to events, along with the transitions between those states and the actions performed.
Software Engineering
- State transitionBeginner
A state transition is the change of a system from one state (a specific condition or configuration) to another. This change is typically triggered by an event, input, or the satisfaction of a condition. It is a fundamental concept in state machines and systems modeling.
Computer Science
- State Transition TestingIntermediate
State Transition Testing is a black-box testing technique that models the system under test as a set of states, events, and transitions. Test cases are designed to verify that the system correctly moves between states in response to specific events and produces the expected outputs or actions.
Software Testing
- Static TestingBeginner
Static testing is a software testing method that involves examining the code and related documents without executing the program. It aims to find defects early in the development cycle through techniques like code reviews, walkthroughs, and automated static analysis.
Software Testing
- StorytellingBeginner
Storytelling is the art of conveying events, experiences, and ideas through a narrative. It is a fundamental human activity used to entertain, educate, persuade, and build connections, applied across various fields from literature and film to business marketing and user experience design.
Communication
- Stress TestingIntermediate
Stress Testing is a type of software testing that determines the stability and robustness of a system by testing it under extreme conditions, beyond its normal operational capacity. The goal is to identify the system's breaking point, observe its failure behavior, and verify its ability to recover gracefully.
Software Testing
- Structure diagramBeginner
A structure diagram is a type of diagram in UML that shows the static structure of a system. It visualizes the system's components, such as classes, objects, and packages, and the relationships between them, providing a blueprint of the system's architecture without regard to time-dependent behavior.
Software Engineering
- Structured Query Language (SQL)Beginner
A domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS) or for stream processing in a relational data stream management system (RDSMS).
Database
- Subject Matter ExpertBeginner
A Subject Matter Expert (SME) is an individual with profound knowledge and expertise in a specific area, topic, or domain. They are considered the go-to authority for detailed information, guidance, and problem-solving within their field, often bridging the gap between business needs and technical teams.
Project Management
- SuitabilityEasy
Suitability is the quality of being appropriate, right, or fit for a particular purpose, person, or situation. In specialized fields, it takes on specific meanings, such as a financial regulation requiring investments to match a client's profile, a measure of a software's fitness for a task in UX, or the alignment of a candidate with a job role in HR.
General
- SwaggerBeginner
Swagger is a popular suite of open-source and commercial tools for API developers, built around the OpenAPI Specification. It simplifies the process of designing, building, documenting, and consuming RESTful APIs through tools like Swagger UI (interactive documentation), Swagger Editor (API designer), and Swagger Codegen (code generation).
API Development
- SWOTBeginner
SWOT is a strategic planning framework used to identify and analyze an organization's Strengths, Weaknesses, Opportunities, and Threats. Strengths and Weaknesses are internal factors, while Opportunities and Threats are external. It helps in developing strategies by aligning internal capabilities with the external environment.
Business
- System AnalysisMedium
System Analysis is the process of studying a procedure, business, or system to identify its goals and purposes and create new systems and procedures that will achieve them in an efficient and effective way. It focuses on defining what the system needs to do.
Software Engineering
- System AnalystMedium
A System Analyst is an IT professional who analyzes, designs, and implements information systems. They serve as the crucial link between business problems and technology solutions, translating stakeholder requirements into technical specifications for development teams.
Information Technology
- System boundaryBeginner
A system boundary is a conceptual line that separates a system from its environment. It defines what is considered part of the system and what is external to it, thereby clarifying the scope for analysis, design, or control.
Systems Engineering
- System Integration TestingIntermediate
System Integration Testing (SIT) is a software testing phase where individual software modules are combined and tested as a group. It focuses on verifying the data communication and interactions between these integrated components to expose faults in their interfaces.
Software Testing
- System Interface AnalysisIntermediate
System Interface Analysis is the process of identifying, defining, and analyzing the interfaces between different systems or components to ensure they communicate correctly and efficiently. It involves specifying data formats, protocols, and interaction sequences, often documented in an Interface Control Document (ICD).
Systems Engineering
- Systems Modeling LanguageIntermediate
Systems Modeling Language (SysML) is a general-purpose graphical modeling language for systems engineering. It is used to specify, analyze, design, and verify complex systems that include hardware, software, and personnel. As a profile of UML, it provides specific diagrams for modeling system requirements, structure, behavior, and parametrics.
Systems Engineering
- System TestingIntermediate
A level of software testing where a complete and integrated software application is tested to evaluate its compliance with specified requirements. It validates the system's end-to-end functionality, performance, and reliability from a user's perspective, treating the software as a black box.
Software Testing
T
40- Technical DebtMedium
Technical debt is the implied cost of rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.
Software Development
- Technical reviewMedium
A technical review is a quality assurance process where a technical artifact, such as code or a design document, is examined by a team of qualified peers to identify defects and areas for improvement. It is more formal than a walkthrough but less rigid than a software inspection.
Software Engineering
- TestabilityMedium
Testability is a non-functional quality attribute of software that describes how easily a system or component can be tested. It is determined by factors like how easy it is to control the system's state and observe its outputs. High testability leads to lower testing costs, higher quality, and enables practices like automated testing and continuous integration.
Software Engineering
- Testable requirementsBeginner
Testable requirements are criteria for a system that are specific, measurable, and verifiable. They are written without ambiguity, allowing testers to create clear pass/fail tests to confirm if the system meets its intended functionality and quality attributes.
Software Testing
- Test ApproachMedium
A Test Approach is the high-level strategy that defines the methodology, objectives, and scope of testing for a software project. It outlines how testing will be performed, including the types of testing, tools, environments, and risk mitigation strategies, serving as a guide for creating detailed test plans.
Software Testing
- Test CaseBeginner
A test case is a set of specific steps, conditions, and inputs used to validate a particular functionality or feature of a software application. It includes a predefined expected result to determine if the software is working correctly.
Software Testing
- Test Case ManagementIntermediate
Test Case Management (TCM) is the process of managing the lifecycle of software tests, which includes planning, creating, organizing, executing, and tracking test cases. It is typically performed using specialized software to ensure comprehensive test coverage, streamline QA efforts, and provide clear reporting on software quality.
Software Testing
- Test ClassBeginner
A Test Class is a class in object-oriented programming that contains methods specifically written to test the functionality of another class (the production code). It groups related tests, setup, and teardown logic together to verify that the code under test behaves as expected.
Software Testing
- Test ComparisonBeginner
Test comparison is the process of checking the actual output of a software system against its expected output. This expected result is often called a baseline or golden master. The goal is to find discrepancies, which indicate potential bugs or regressions. It is a fundamental activity in all forms of automated testing.
Software Testing
- Test DataBeginner
Test data is the input given to a software program during testing to verify its functionality, performance, and error-handling capabilities. It can range from simple, manually created values to large, complex datasets that are synthetically generated or derived from production environments.
Software Testing
- Test Design SpecificationIntermediate
A Test Design Specification (TDS) is a detailed document that describes the test approach for a specific software feature or set of features. It outlines what needs to be tested, how it will be tested, and the criteria for passing, serving as a bridge between the high-level Test Plan and the granular Test Cases.
Software Testing
- Test Design ToolIntermediate
A Test Design Tool is a software application that helps quality assurance professionals create, manage, and optimize test cases. It employs systematic techniques like combinatorial testing or model-based testing to improve test coverage, reduce redundancy, and increase the efficiency of the testing process.
Software Testing
- Test-Driven Development (TDD)Intermediate
A software development process where developers write a failing automated test case before writing the production code to fulfill that test, and then refactor the code.
Software Development Methodology
- Test EnvironmentBeginner
A Test Environment is a controlled setup of software, hardware, and network configurations where a software application is tested. It is isolated from production and development systems to ensure that testing is safe, reliable, and does not impact live users.
Software Testing
- Test ExecutionBeginner
Test execution is the phase in the software testing process where a software application is actively run and tested against defined test cases to find defects. It involves comparing the actual results of the software with the expected results to verify its functionality.
Software Testing
- Test Execution AutomationIntermediate
Test Execution Automation is the process of using software tools to run tests automatically, compare actual outcomes with expected results, and report on their success or failure. It is a core practice in modern software development for increasing speed, efficiency, and reliability in the testing process.
Software Testing
- Test Execution ScheduleBeginner
A Test Execution Schedule is a detailed timeline that specifies when and by whom specific test cases or test suites will be executed. It is a key component of a test plan that outlines the sequence of testing activities, resource allocation, required environments, and expected timelines to ensure an organized and trackable testing process.
Software Testing
- Test Execution TechniqueIntermediate
A Test Execution Technique is a method or strategy for running tests. It defines the order in which test cases are executed to efficiently find defects, manage resources, and provide timely feedback, based on factors like risk, requirements, or available time.
Software Testing
- Test Execution ToolBeginner
A test execution tool is a software application that automates the process of running tests. It executes test scripts, interacts with the application being tested, compares actual results to expected outcomes, and reports the pass or fail status.
Software Testing
- Test InfrastructureIntermediate
Test Infrastructure is the comprehensive set of tools, environments, data, and processes that support software testing. It provides the foundation for running tests in a repeatable, reliable, and efficient manner, and is a critical component of modern CI/CD pipelines and DevOps practices.
Software Testing
- Test LogBeginner
A Test Log is a chronological record of the relevant details and events that occur during the execution of a test. It documents which tests were run, when they were run, who ran them, and what the outcomes (pass, fail, etc.) were.
Software Testing
- Test ObservabilityIntermediate
Test Observability is the practice of equipping software testing processes with tools to provide deep, queryable insights into test execution and outcomes. It goes beyond simple pass/fail reports by collecting and correlating rich data like logs, traces, network requests, and video recordings to help engineers quickly understand why a test failed, thereby accelerating debugging and improving software quality.
Software Testing
- Test OraclesIntermediate
A test oracle is a mechanism or source of information used to determine the expected outcome of a test and compare it with the actual outcome. It is the fundamental component that decides whether a test has passed or failed, effectively acting as the 'source of truth' for a test case.
Software Testing
- Test PlanBeginner
A Test Plan is a formal document that details the strategy, objectives, schedule, estimation, and resources required for testing a software product. It acts as a comprehensive roadmap for the Quality Assurance (QA) process.
Software Testing
- Test PolicyBeginner
A Test Policy is a high-level document that defines an organization's principles, objectives, and overall approach to software testing. It serves as a guiding framework for all testing activities, ensuring consistency and alignment with business goals.
Software Testing
- Test ProcessMedium
A Test Process, also known as the Software Test Life Cycle (STLC), is a structured sequence of activities designed to validate a software product. It encompasses everything from initial planning and test design to execution, reporting, and final closure, ensuring the software meets quality standards and requirements.
Software Testing
- Test Process ImprovementIntermediate
Test Process Improvement (TPI) is a structured approach for assessing, analyzing, and systematically enhancing an organization's software testing processes to improve quality, efficiency, and effectiveness. It often uses maturity models like TMMi to guide continuous improvement.
Software Testing
- Test PyramidIntermediate
The Test Pyramid is a strategic model for software test automation that advocates for a large base of fast unit tests, a smaller middle layer of integration tests, and a minimal top layer of slow end-to-end tests. This structure promotes a fast, stable, and maintainable test suite.
Software Testing
- Test ReportBeginner
A Test Report is a formal document that summarizes the activities and results of a testing effort. It provides stakeholders with a comprehensive overview of the software's quality, including metrics, defects found, and an overall assessment to support release decisions.
Software Testing
- Test ScenarioBeginner
A Test Scenario is a high-level description of a functionality or an end-to-end user flow that needs to be tested. It answers the question "What to test?" and serves as a container for multiple, more detailed test cases.
Software Testing
- Test StubBeginner
A Test Stub is a simple, simulated object used in testing to stand in for a real dependency. It provides predefined, hard-coded answers to method calls, allowing the component under test to be tested in isolation under controlled conditions.
Software Testing
- Test SuiteBeginner
A test suite is a collection of test cases grouped together for execution. These tests are typically related by functionality or purpose, such as verifying a specific feature or ensuring that recent changes have not introduced new bugs (regression testing).
Software Testing
- Test ToolBeginner
A Test Tool is a software application or program used by testers and developers to help perform testing activities, such as automating test execution, managing test cases, or analyzing application performance.
Software Testing
- Timebox TestingIntermediate
Timebox testing is a software testing approach where testing activities are allocated a fixed period, known as a timebox. The goal is to complete as much prioritized testing as possible within this timeframe, focusing on the most critical areas. It emphasizes managing time and scope rather than trying to test everything.
Software Testing
- TokenizationBeginner
The process of breaking down a stream of text or data into smaller, discrete units called tokens.
Natural Language Processing
- Top-Down IntegrationIntermediate
Top-Down Integration is a software testing strategy where high-level system modules are tested first, and lower-level modules are gradually integrated and tested one by one. It uses 'stubs'—dummy modules—to simulate the functionality of the lower-level components that are not yet built.
Software Testing
- TraceabilityMedium
Traceability is the ability to track and follow the history, application, or location of an item or activity through documented records. In software engineering, it refers to linking requirements to design, code, and tests. In supply chains, it means tracking a product from origin to consumer.
Software Engineering
- TrendEasy
A trend is a general direction in which something is developing or changing over time. In data analysis, it's the long-term movement in a time series. In culture and fashion, it refers to a prevailing style or practice that becomes popular for a period.
Data Analysis
- Trial and ErrorBeginner
A fundamental problem-solving method involving repeated, varied attempts which are continued until success. It is a basic method of learning that relies on feedback from failures to guide subsequent attempts, rather than on a pre-existing theory.
Problem-Solving
- TypeScriptIntermediate
A statically typed superset of JavaScript that compiles to plain JavaScript, designed for building large-scale applications.
Programming Languages
U
14- UnderstandabilityBeginner
Understandability is a software quality attribute that measures how easily a person can comprehend the purpose, structure, and behavior of a system or its components. In software engineering, it relates to code and architecture clarity, while in UI/UX design, it refers to the intuitiveness of the user interface. High understandability is crucial for effective maintenance, debugging, and user satisfaction.
Software Quality
- Unified Modeling Language (UML)Intermediate
A standardized graphical modeling language used to visualize, specify, construct, and document the artifacts of software systems.
Software Engineering
- Unit Test FrameworkBeginner
A Unit Test Framework is a set of tools, libraries, and conventions that helps developers write and run automated tests for the smallest, isolated pieces of their code (units). It typically includes a test runner, assertion functions, and fixtures for setup and teardown.
Software Testing
- Unit TestingBeginner
A software testing method where individual units of source code—such as functions or methods—are tested in isolation to determine if they are fit for use.
Software Testing
- UsabilityBeginner
Usability is a quality attribute that assesses how easy user interfaces are to use. It refers to the methods for improving ease-of-use during the design process and is defined by five components: learnability, efficiency, memorability, errors, and satisfaction.
User Experience (UX)
- Usability TestingBeginner
Usability Testing is a user-centered research method for evaluating a product's ease of use by testing it with real users. Participants attempt to complete typical tasks while observers watch, listen, and take notes to identify areas of confusion and opportunities for improvement.
User Experience (UX)
- Use caseBeginner
A use case is a technique used in software and systems engineering to capture the functional requirements of a system. It describes the step-by-step interaction between an external user (an 'actor') and a system to achieve a specific goal.
Software Engineering
- Use Case diagramBeginner
A Use Case diagram is a behavioral diagram in UML that visualizes the interactions between a system and its external users (actors). It captures the system's functional requirements by showing what actors can do with the system and what goals they can achieve.
Software Engineering
- Use Case TestingIntermediate
A black-box testing technique that focuses on the user's perspective. Test cases are designed based on use cases, which describe how a user interacts with a system to achieve a specific goal. It validates end-to-end user journeys, including both successful paths and error conditions.
Software Testing
- User Acceptance TestingBeginner
User Acceptance Testing (UAT) is the final phase of the software testing process where end-users test the software to ensure it meets business requirements and can handle real-world scenarios before deployment. Its goal is to validate the software's fitness for purpose, not just its technical functionality.
Software Testing
- User Experience (UX)Beginner
The overall experience and satisfaction a person has when interacting with a product, system, or service.
Design
- User InnovationIntermediate
User innovation is a process where new products or services are developed by end-users or consumers, rather than by manufacturers. These users are motivated to create or modify things to solve their own specific needs, often leading to novel and commercially significant breakthroughs.
Innovation Studies
- User Interface (UI)Beginner
The space where interactions between humans and machines occur. It includes all the visual elements, controls, and feedback mechanisms that allow a person to use a computer, software, or device.
Human-Computer Interaction
- User StoryBeginner
An informal, general explanation of a software feature written from the perspective of the end user or customer.
Agile Development
V
13- ValidationBeginner
The process of checking if data, a process, or a system meets a certain set of criteria, rules, or requirements.
Data Processing
- Validation TestingIntermediate
Validation Testing is the process of evaluating a software product to ensure it meets the business requirements and the needs of the end-user. It answers the question, "Are we building the right product?" and is typically performed at the end of the development cycle.
Software Testing
- ValueBeginner
In programming, a value is a piece of data, such as a number, text string, or object. It is the fundamental information that is stored in variables, passed to functions, and manipulated by expressions. Every value has a data type that defines its nature and the operations that can be performed on it.
Programming Fundamentals
- VariableBeginner
A symbolic name associated with a value that can be changed. It acts as a named storage location in a computer's memory or as a placeholder for a quantity in mathematics.
Programming Fundamentals
- VendorBeginner
A vendor is an individual or company that sells goods or services. In a supply chain, a vendor, also known as a supplier, provides parts or products to another company. The term is used in both business-to-business (B2B) and business-to-consumer (B2C) contexts.
Business
- VersionBeginner
A version is a specific, unique state of a file, software, or system at a particular point in time. It is used to track changes, manage development, and allow for rollbacks to previous states. Versions are typically identified by a number, name, or date.
Software Development
- Version ControlBeginner
Version Control is a system that records changes to a file or set of files over time, allowing you to recall specific versions later. It enables multiple people to collaborate on a project, tracking every modification and preventing conflicts. It is essential for software development and other collaborative work.
Software Development
- Version Control System (VCS)Beginner
A system that records changes to a file or set of files over time so that you can recall specific versions later. It is a fundamental tool for collaboration in software development.
Software Development
- Vertical traceabilityIntermediate
Vertical traceability is the process of tracing requirements up to their origins (e.g., business needs) and down to their implementation artifacts (e.g., design, code, tests). It ensures that all requirements are addressed and that the final product aligns with the initial objectives.
Software Engineering
- Virtual Machine (VM)Intermediate
A Virtual Machine (VM) is a software-based emulation of a computer system that provides the functionality of a physical computer. It allows one computer system (the host) to run one or more separate environments (guests).
Virtualization
- VisionEasy
A vision is a long-term, aspirational description of what an organization or product wants to achieve or become. It serves as a clear, guiding statement of purpose that inspires and directs strategic decisions and actions.
Business Strategy
- V-modelIntermediate
The V-model is a software development lifecycle model where processes are executed sequentially in a V-shape. It demonstrates the relationships between each phase of the development life cycle and its associated testing phase. It is considered an extension of the Waterfall model with a strong emphasis on early test planning.
Software Development
- Vue.jsBeginner
A progressive JavaScript framework for building user interfaces and single-page applications, known for its approachability, performance, and versatility.
Frontend Development
W
12- Waterfall ModelBeginner
A linear, sequential software development process model where each phase must be completed before the next phase can begin.
Software Engineering
- Web Application FrameworkMedium
A software framework designed to support the development of web applications, including web services, web resources, and web APIs, by providing pre-built components and tools.
Software Development
- Web AutomationIntermediate
Web Automation is the use of software to control a web browser and automate human tasks, such as testing web applications, scraping data from websites, or performing repetitive actions as part of a business process. It involves writing scripts that simulate user interactions like clicking, typing, and navigating through web pages.
Software Testing
- WebDriverIntermediate
WebDriver is a W3C standard and protocol that allows programs to control and automate web browsers. It acts as a remote control interface, enabling scripts to perform actions like clicking, typing, and navigating pages, which is essential for automated software testing and web scraping.
Web Automation
- WebhookBeginner
An automated message sent from one application to another when a specific event occurs, enabling real-time communication via a 'push' mechanism.
Web Development
- Web Performance TestingIntermediate
Web Performance Testing is a process of evaluating a web application's speed, responsiveness, stability, and scalability under a specific workload. It aims to identify and resolve performance bottlenecks to ensure a fast and reliable user experience.
Software Testing
- Web ServicesMedium
A standardized method for different software applications to communicate and exchange data over a network, typically the internet, enabling interoperability between diverse systems.
Networking
- Web Test Automation ToolsIntermediate
Software applications or frameworks used to automate the testing of web applications. They simulate user interactions in a browser to verify functionality, find bugs, and ensure quality, replacing manual testing processes.
Software Testing
- Web TestingBeginner
Web testing is the process of checking a website or web application for potential bugs, errors, and issues before it is made live. It involves verifying its functionality, usability, compatibility across different browsers and devices, performance under load, and security to ensure a high-quality, reliable user experience.
Software Testing
- Work Breakdown StructureBeginner
A Work Breakdown Structure (WBS) is a project management tool that provides a hierarchical decomposition of the total scope of work. It breaks down a project into smaller, more manageable, and deliverable-oriented components, with the lowest level being a 'work package'.
Project Management
- WorkshopBeginner
A workshop is an interactive, collaborative session where a group of people engage in intensive discussion and hands-on activities on a particular subject or project to achieve a specific goal. Unlike a passive lecture, it emphasizes participation and tangible outcomes.
Collaboration
- WrapperIntermediate
A wrapper in software engineering is a piece of code that encapsulates or provides a modified interface to another component, system, or data type, often to abstract complexity, provide compatibility, or add functionality.
Software Design
X
1#
11- 5GHz BandBeginner
A range of radio frequencies, approximately 5.1 to 5.8 gigahertz, used for wireless communication, most notably for Wi-Fi. It is known for providing faster data speeds and having less interference than the 2.4GHz band, but at the cost of a shorter effective range and poorer obstacle penetration.
Wireless Communication
- 5G SecurityAdvanced
5G Security encompasses the standards, technologies, and practices designed to protect 5th generation mobile networks, including their infrastructure, connected devices, and the data transmitted over them. It represents a significant evolution from previous generations, adopting a 'security-by-design' approach to address new threats arising from virtualization, network slicing, and the massive scale of the Internet of Things (IoT). Key features include stronger encryption, enhanced subscriber privacy, and a flexible, service-oriented security architecture.
Cybersecurity
- 6GHz BandIntermediate
The 6GHz band is a segment of the radio spectrum, typically from 5.925 GHz to 7.125 GHz, designated for unlicensed use in wireless communications. It is primarily utilized by modern Wi-Fi standards like Wi-Fi 6E and Wi-Fi 7. This band offers a large, contiguous block of clean spectrum, enabling wider channels, higher speeds, lower latency, and significantly reduced interference compared to the crowded 2.4 GHz and 5 GHz bands.
Networking
- 802.11 AssociationIntermediate
The process by which a wireless client (station) formally establishes a data link with an access point (AP). It is the second and final step in connecting to a Wi-Fi network, occurring after successful authentication, allowing the client to send and receive data.
Wireless Networking
- 802.11 AuthenticationIntermediate
The process by which a wireless client device proves its identity to an access point (AP) to gain access to a Wi-Fi network. It is the first step in the two-step process of connecting to a wireless network, followed by association. This procedure is fundamental to network security, ensuring that only authorized devices can connect.
Network Security
- 802.1DIntermediate
802.1D is an IEEE standard for Media Access Control (MAC) Bridges. It is most famous for defining the original Spanning Tree Protocol (STP), an essential network protocol that prevents broadcast storms and MAC table instability by creating a loop-free logical topology in Ethernet networks with redundant physical links.
Network Protocols
- 802.1QIntermediate
An IEEE standard that defines a system for VLAN (Virtual Local Area Network) tagging on Ethernet networks. It allows multiple VLANs to share a single physical link by inserting a tag into Ethernet frames, which identifies the VLAN the frame belongs to. This enables network segmentation, traffic isolation, and efficient use of infrastructure.
Networking Standards
- 802.1sAdvanced
802.1s is the IEEE standard for the Multiple Spanning Tree Protocol (MSTP). It is an advanced network protocol that prevents Layer 2 loops in Ethernet networks by creating multiple spanning tree instances. This allows different VLANs to be mapped to different instances, enabling traffic load balancing across redundant paths while maintaining fast network convergence.
Network Protocols
- 802.1wIntermediate
An IEEE standard for network protocols, 802.1w is also known as Rapid Spanning Tree Protocol (RSTP). It is an enhancement of the original Spanning Tree Protocol (802.1D) designed to provide significantly faster network convergence after a topology change, thereby minimizing downtime.
Network Protocols
- 802.1XIntermediate
802.1X is an IEEE standard for Port-Based Network Access Control (PNAC). It provides a robust authentication mechanism for devices seeking to connect to a Local Area Network (LAN) or Wireless LAN (WLAN). It authenticates a user or device before granting access to the network, acting as a gatekeeper at the physical connection point, such as a switch port or a wireless access point.
Network Security
- 802.1X AuthenticationIntermediate
An IEEE standard for Port-Based Network Access Control (PNAC) that provides a robust authentication mechanism for devices connecting to a LAN or WLAN. It acts as a gatekeeper, preventing access to the network until a device's identity has been verified by a central authentication server.
Network Security