Qa
Lộ trình phát triển toàn diện Qa theo tiêu chuẩn quốc tế nilbuild/developer-roadmap
Hướng dẫn từng bước từ nền tảng đến chuyên sâu giúp bạn làm chủ Qa. Tích hợp tài liệu lý thuyết, bài viết thực chiến, video tham khảo và bài tập lập trình trực tiếp trên IDE.
Nền Tảng & Khái Niệm Cốt Lõi
Giai đoạn 1 tập trung hoàn thiện 30 chủ đề then chốt.
Accessibility Testing
Accessibility Testing is defined as a type of Software Testing performed to ensure that the application being tested is usable by people with disabilities like hearing, color blindness, old age, low vision and other disadvantaged groups.
Accessibility testing
In software QA, accessibility testing is the practice of confirming that an application is usable for as many people as possible, including people with disabilities such as vision impairment, hearing problems and cognitive conditions.
Agile Model
The Agile model is an iterative, incremental approach to software development that delivers working software in short cycles called sprints or iterations. Testing is integrated throughout each iteration rather than as a separate phase. Agile teams collaborate closely between developers and QA, with continuous feedback and adaptation to change.
Ajax
AJAX stands for Asynchronous JavaScript And XML. In a nutshell, it is the use of the XMLHttpRequest object to communicate with servers. It can send and receive information in various formats, including JSON, XML, HTML, and text files.
Allure
Allure Report is a flexible, lightweight multi-language test reporting tool. It provides clear graphical reports and allows everyone involved in the development process to extract the maximum of information from the everyday testing process.
Appium
Appium is an open-source framework that allows QAs to conduct automated app testing on different platforms like Android, iOS, and Windows. It is developed and supported by Sauce Labs to automate native and hybrid mobile apps. It is a cross-platform mobile automation tool, which means that it allows the same test to be run on multiple platforms.
Artillery
Artillery is an open-source load testing toolkit for APIs and microservices. Test scenarios are defined in YAML or JavaScript, and it supports HTTP, WebSocket, and [Socket.io](http://Socket.io) protocols. Artillery is designed to run in CI/CD pipelines and integrates with monitoring platforms for capturing and visualizing performance data.
Assembla
Assembla is an extensive suite of applications for software development, enabling distributed agile teams. It allows development teams to manage, initiate and maintain agile projects, applications and websites.
Acceptance Test-Driven Development (ATDD)
ATDD is a collaborative approach where the whole team defines acceptance criteria before development begins. These acceptance criteria are then turned into automated tests, which guide the development process. The goal is to ensure that the software meets the specific needs and expectations of the stakeholders.
Atlassian
Jira is a software application used for issue tracking and project management. The tool, developed by the Australian software company Atlassian, has become widely used by agile development teams to track bugs, stories, epics, and other tasks.
Attack vectors
This metric reflects the context by which vulnerability exploitation is possible. This metric value (and consequently the Base Score) will be larger the more remote (logically, and physically) an attacker can be in order to exploit the vulnerable component. The assumption is that the number of potential attackers for a vulnerability that could be exploited from across a network is larger than the number of potential attackers that could exploit a vulnerability requiring physical access to a device, and therefore warrants a greater Base Score.
Authentication / Authorization
Authentication testing verifies that the system correctly identifies users through login flows, session management, and token handling. Authorization testing verifies that authenticated users can only access the resources they are permitted to. Weak authentication or authorization is consistently among the most critical and exploited security vulnerabilities.
Axe
Axe is a fast and lightweight accessibility testing tool that checks the entire document against the rules and generates a report with all violations, passes, etc.
Azure DevOps
Azure DevOps is developed by Microsoft as a full scale application lifecycle management and CI/CD service. Azure DevOps provides developer services for allowing teams to plan work, collaborate on code development, and build and deploy applications.
Backend Automation
Backend Testing is a testing method that checks the server side or database of web applications or software. Backend testing aims to test the application layer or database layer to ensure that the web application or software is free from database defects like deadlock, data corruption, or data loss.
Bamboo
Bamboo is a CI/CD service provided by Atlassian. Bamboo is primarily used for automating builds, tests and releases in a single workflow.
Behavior-Driven Development
Behavior-Driven Development (BDD) is a software development process that emphasizes collaboration between developers, testers, and business stakeholders. It focuses on defining the expected behavior of the software in plain language, using examples to illustrate the desired functionality. These examples are then translated into automated tests, ensuring that the software meets the agreed-upon requirements.
Bitbucket
Bitbucket is a Git based hosting and source code repository service that is Atlassian's alternative to other products like GitHub, GitLab etc. Bitbucket offers hosting options via Bitbucket Cloud (Atlassian's servers), Bitbucket Server (customer's on-premise) or Bitbucket Data Centre (number of servers in customers on-premise or cloud environment)
Black box testing
Black Box Testing is a software testing method in which the functionalities of software applications are tested without having knowledge of internal code structure, implementation details and internal paths. Black Box Testing mainly focuses on input and output of software applications and it is entirely based on software requirements and specifications. It is also known as Behavioral Testing.
Browser Devtools
Every modern web browser includes a powerful suite of developer tools. These tools do a range of things, from inspecting currently-loaded HTML, CSS and JavaScript to showing which assets the page has requested and how long they took to load. This article explains how to use the basic functions of your browser's devtools.
BugBug
BugBug is a browser extension designed to help with test automation, particularly for web applications. It allows users to record their interactions with a website and then generate test scripts from those recordings, aiming to simplify the process of creating automated UI tests. It often emphasizes ease of use and integration with existing testing frameworks.
Caching
Caching ensures that the resources downloaded once are reused instead of doing a fresh fetch again. It is useful for increasing subsequent page load speed by reusing cached images, fonts, and other static assets. Caching should not be typically done on dynamic content. For example list of posts or comments. As part of the testing strategy, both caching and cache invalidation (not getting stale dynamic content) needs to be tested.
Chrome DevTools
Chrome DevTools includes an accessibility panel, a color contrast checker, and Lighthouse accessibility audits for evaluating web page compliance. The accessibility tree view shows how assistive technologies interpret page elements. DevTools also simulates visual impairments like color blindness to help evaluate inclusive design.
CI / CD
Continuous Integration and Continuous Delivery (CI/CD) automates building, testing, and deploying code on every change. For QA, CI/CD pipelines run automated test suites on every commit or pull request, providing rapid feedback on regressions. Common CI/CD platforms used in QA include CircleCI, GitLab CI, Jenkins, Travis CI, Bamboo, Drone, TeamCity, and Azure DevOps.
CircleCI
CircleCI is a CI/CD service that can be integrated with GitHub, BitBucket and GitLab repositories. The service that can be used as a SaaS offering or self-managed using your own resources.
Compatibility
Compatibility is nothing but the capability of existing or living together. Compatibility Testing is a type of Software testing to check whether your software is capable of running on different hardware, operating systems, applications, network environments or Mobile devices.
CSR vs SSR
Client-Side Rendering (CSR) builds pages in the browser using JavaScript after load, while Server-Side Rendering (SSR) delivers fully rendered HTML from the server. The rendering approach affects when elements are available in the DOM, which directly impacts how and when automation tools can safely interact with the page.
Cypress
Cypress framework is a JavaScript-based end-to-end testing framework built on top of Mocha – a feature-rich JavaScript test framework running on and in the browser, making asynchronous testing simple and convenient. It also uses a BDD/TDD assertion library and a browser to pair with any JavaScript testing framework.
Cypress
Cypress framework is a JavaScript-based end-to-end testing framework built on top of Mocha – a feature-rich JavaScript test framework running on and in the browser, making asynchronous testing simple and convenient. It also uses a BDD/TDD assertion library and a browser to pair with any JavaScript testing framework.
Cypress
Cypress framework is a JavaScript-based end-to-end testing framework built on top of Mocha – a feature-rich JavaScript test framework running on and in the browser, making asynchronous testing simple and convenient. It also uses a BDD/TDD assertion library and a browser to pair with any JavaScript testing framework.
Kỹ Năng Trọng Tâm & Thực Hành
Giai đoạn 2 tập trung hoàn thiện 30 chủ đề then chốt.
Datadog
Datadog is a monitoring and analytics platform for large-scale applications. It encompasses infrastructure monitoring, application performance monitoring, log management, and user-experience monitoring. Datadog aggregates data across your entire stack with 400+ integrations for troubleshooting, alerting, and graphing.
Delphix
Delphix is a data management platform that focuses on providing virtualized, masked, and rapidly provisioned data copies for various purposes like development, testing, and reporting. It allows organizations to create and manage virtual databases from a single source, reducing storage costs and accelerating data delivery while maintaining data security and compliance.
Detox
Detox is a JavaScript mobile testing framework that is built into the application and the test execution starts with app launch. This makes test execution really fast and robust as no external additional tools are needed to orchestrate and synchronize during the test execution.
Drone
Drone is a CI/CD service offering by Harness. Each build runs on an isolated Docker container, and Drone integrates with many popular source code management repositories like GitHub, BitBucket and GitLab
Email Testing
Email testing allows you to view your email before sending it out to your subscriber list to verify links, design, spelling errors, and more.
Espresso
Espresso is a native testing framework for Android to write reliable UI tests. Google released the Espresso framework in October 2013 and, as of release version 2.0, Espresso is part of the Android Support Repository. One of the important features in Espresso is that it automatically synchronizes your test actions with the user interface of your application. The framework also ensures that your activity is started before the test runs. It can also force a test to wait until all observer background activities have finished, which is sometimes a problem with other testing frameworks.
Exploratory testing
Exploratory testing is evaluating a product by learning about it through exploration and experimentation, including to some degree: questioning, study, modeling, observation, inference, etc.
Frontend automation
Front-end automation is a way to characterize automation that streamlines tasks focused on interactivity, websites, and attended processes. Robotic process automation, or RPA, is considered automation on the front end, or from the user-interface (UI) level. Benefits of front-end automation include quick task building with no programming knowledge, no required changes to existing programs or applications, and those individuals who know the keystrokes can easily build the automation task.
Functional Testing
Functional testing is a type of software testing that validates the software system against the functional requirements/specifications. The purpose of Functional tests is to test each function of the software application by providing appropriate input and verifying the output against the Functional requirements.
Gatling
Gatling is an open-source load testing framework written in Scala, designed for high-performance testing of HTTP-based services. Tests are written as code using a fluent DSL and can be version-controlled alongside application code. Gatling generates detailed HTML reports and is known for its ability to simulate large numbers of concurrent users efficiently.
Ghost Inspector
Ghost Inspector is a codeless automated testing tool that allows you to easily create and run automated browser tests for websites and web applications. These tests carry out actions in a web browser the same way a real user would to ensure that everything is working properly.
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
GitHub
GitHub is a provider of Internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
GitLab CI
GitLab offers a CI/CD service that can be used as a SaaS offering or self-managed using your own resources. You can use GitLab CI with any GitLab hosted repository, or any BitBucket Cloud or GitHub repository in the GitLab Premium self-managed, GitLab Premium SaaS and higher tiers.
GitLab
GitLab is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
Gmail Tester
Gmail-tester is a simple Node.js Gmail client which checks/returns email message(s) straight from any Gmail-powered account (both private and company).
Grafana
Grafana is an open-source analytics and visualization platform for creating dashboards from metrics stored in data sources like Prometheus, InfluxDB, and Datadog. QA teams use Grafana to visualize load test results, track performance metrics over time, and build custom dashboards for monitoring test environment health.
Gray Box Testing
Gray box testing is a software testing technique to test a software product or application with partial knowledge of the internal structure of the application. The purpose of gray box testing is to search and identify the defects due to improper code structure or improper use of applications.
Headless Chrome
Headless Chrome is a way to run the Chrome browser in a headless environment without the full browser UI. One of the benefits of using Headless Chrome (as opposed to testing directly in Node) is that your JavaScript tests will be executed in the same environment as users of your site.
Headless Fox
Headless Browser Testing is a process of running the browser tests without the type of browser UI or GUI. In headless browser testing, to conduct cross-browser testing the tester can run test cases accurately and successfully without requiring the browser on which application needs to be tested.
Headless Testing
Headless testing runs browser-based tests without a visible graphical user interface. Headless browsers execute JavaScript and render pages in memory, making tests faster and suitable for CI/CD environments where a display server is not available. Tools for headless testing include Cypress, Playwright, Puppeteer, Zombie.js, Headless Chrome, Headless Firefox, and HtmlUnit.
HTML, CSS, JavaScript
HTML, CSS, and JavaScript are the three core web technologies that frontend test automation engineers must understand. HTML defines the structure of web pages, CSS controls styling and layout, and JavaScript powers interactivity. This knowledge enables testers to locate elements reliably, understand rendering behavior, and write effective automation scripts.
HTML Unit
HtmlUnit is a headless, Java-based browser for testing web applications. It simulates a browser by processing HTML, JavaScript, and CSS without a graphical interface. HtmlUnit is commonly used in Java-based test suites as a lightweight headless browser option, particularly in projects using Selenium WebDriver with a Java stack.
Integration Testing
Integration Testing is a type of testing where software modules are integrated logically and tested as a group. A typical software project consists of multiple software modules coded by different programmers. This testing level aims to expose defects in the interaction between these software modules when they are integrated. Integration Testing focuses on checking data communication amongst these modules.
Jasmine
Jasmine is a very popular JavaScript BDD (behavior-driven development) framework for unit testing JavaScript applications. It provides utilities that can be used to run automated tests for both synchronous and asynchronous code. It does not depend on any other JavaScript frameworks. It does not require a DOM.
Jenkins
Jenkins is an open-source CI/CD automation server. Jenkins is primarily used for building projects, running tests, static code analysis and deployments.
Jest
Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects using: Babel, TypeScript, Node, React, Angular, Vue and more!
JMeter
Apache JMeter is an Apache project that can be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications.
JUnit
JUnit is known as a unit testing framework used for the Java programming language. JUnit has been playing a crucial in the development of test-driven development and is one of a family of unit testing frameworks. JUnit is useful to write repeatable tests for your application code units. JUnit stimulates the idea of “testing first, then coding,”. The test approach explicates –test a little + code a little = JUnit. JUnit helps the programmer by increasing the productivity and the stability of the program’s code snippets.That will helps in reducing the time of the tester, which is spent on debugging of the code.
k6
Grafana k6 is an open-source load testing tool that makes performance testing easy and productive for engineering teams. k6 is free, developer-centric, and extensible. Using k6, you can test the reliability and performance of your systems and catch performance regressions and problems earlier. k6 will help you to build resilient and performant applications that scale.
Kiến Trúc Nâng Cao & Tối Ưu
Giai đoạn 3 tập trung hoàn thiện 30 chủ đề then chốt.
Kanban
Kanban is an Agile workflow management method that visualizes work on a board with columns representing stages like To Do, In Progress, and Done. Work items flow through columns as they are completed, and work-in-progress limits prevent bottlenecks. QA teams use Kanban to manage testing tasks and make workflow impediments visible.
Karateframework
Karate is an open-source test automation framework that combines API testing, mocking, and performance testing using a plain-text Gherkin-like syntax. It does not require programming knowledge for basic test cases, making it accessible to non-developer testers. Karate integrates with CI/CD pipelines and supports parallel test execution out of the box.
Kibana
Kibana is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack. Do anything from tracking query load to understanding the way requests flow through your apps.
Learn the Fundamentals
The fundamentals of QA cover the core concepts, terminology, and practices every software tester needs to know. This includes what quality assurance is, common testing techniques and approaches, test management tools, and how QA integrates into software development lifecycles.
Lighthouse
Lighthouse is an open-source, automated tool for improving the quality of web pages. You can run it against any web page, public or requiring authentication. It has audits for performance, accessibility, progressive web apps, SEO, and more. You can run Lighthouse in Chrome DevTools, from the command line, or as a Node module. You give Lighthouse a URL to audit, run a series of audits against the page, and then generate a report on how well the page did. From there, use the failing audits as indicators on how to improve the page. Each audit has a reference doc explaining why the audit is important and how to fix it.
Load & Performance Testing
Load and performance testing evaluates how a system behaves under expected and peak traffic conditions. Tools like K6, JMeter, Gatling, Locust, and Artillery simulate concurrent users and measure response times, throughput, and error rates. Results inform capacity planning, infrastructure decisions, and optimization priorities.
Load Testing
Load Testing is a type of Performance Testing that determines the performance of a system, software product, or software application under real-life-based load conditions. Load testing determines the behavior of the application when multiple users use it at the same time. It is the response of the system measured under varying load conditions.
Locust
Locust is an open-source Python-based load testing tool where user behavior is defined in plain Python code. It simulates large numbers of concurrent users using lightweight coroutines rather than threads, making it efficient for high-load scenarios. Locust provides a real-time web UI for monitoring results and supports distributed load generation.
Mailinator
Mailinator allows Developers and QA Testing teams to automatically test their SMS and Email workflows like 2FA verifications, sign-ups, and password resets with trillions of inboxes at your fingertips. Whether you do Manual Testing, use an API, or a framework like Selenium, Cypress, Playwright, or Puppeteer - Mailinator will close the loop on email/SMS testing.
Manage Your Testing
Test Management is a process of managing the testing activities in order to ensure high quality and high-end testing of the software application. The method consists of organizing, controlling, ensuring traceability and visibility of the testing process in order to deliver the high quality software application. It ensures that the software testing process runs as expected.
QA Manual Testing
Manual Testing is a type of software testing in which test cases are executed manually by a tester without using any automated tools. The purpose of Manual Testing is to identify the bugs, issues, and defects in the software application. Manual software testing is the most primitive technique of all testing types, and it helps to find critical bugs in the software application.
Mobile Automation
Mobile automation, as the name suggests, refers to 'automation' that is done on mobile devices. Mobile Automation can test a WAP site or an app. As we know, mobile devices consist of hardware and software components, while a mobile application is simply the software. Testing the mobile device is also connected to evaluating the hardware component and the software part.
Mocking
Mocking is a testing technique where you replace real dependencies (like databases, APIs, or other services) with simulated objects that mimic their behavior. This allows you to isolate the code you're testing and verify that it interacts correctly with those dependencies, without actually relying on them being available or behaving predictably.
Monitoring and Logs
DevOps monitoring entails overseeing the entire development process from planning, development, integration and testing, deployment, and operations. It involves a complete and real-time view of the status of applications, services, and infrastructure in the production environment. Features such as real-time streaming, historical replay, and visualizations are critical components of application and service monitoring.
New Relic
New Relic is an observability platform that helps you build better software. You can bring in data from any digital source so that you can fully understand your system and how to improve it.
Nightwatch
Nightwatch.js is an open-source automated testing framework that is powered by Node.js and provides complete E2E (end to end) solutions to automation testing with Selenium Javascript be it for web apps, browser apps, and websites.
Non-Functional Testing
Non-functional testing is a type of software testing to test non-functional parameters such as reliability, load test, performance, and accountability of the software. The primary purpose of non-functional testing is to test the reading speed of the software system as per non-functional parameters. The parameters of non-functional testing are never tested before the functional testing.
OWASP 10
The OWASP Top 10 is a list of the most critical web application security risks, published by the Open Web Application Security Project. It covers vulnerabilities like injection attacks, broken authentication, insecure deserialization, and security misconfiguration. Security testing commonly uses the OWASP Top 10 as a checklist to verify that an application's most critical risks are addressed.
Pager Duty
PagerDuty is an incident management and alerting platform that routes alerts from monitoring tools to on-call teams. In QA contexts, it notifies engineers of critical failures detected in staging or production environments. PagerDuty integrates with tools like Datadog, New Relic, and Grafana to trigger incidents based on defined threshold conditions.
Performance Testing
Performance testing measures the speed, scalability, and stability of a system under various conditions. It encompasses load testing, stress testing, endurance testing, and spike testing. The goal is to identify performance bottlenecks and verify that response times and throughput meet defined service level objectives.
Playwright
Playwright is an open-source test automation library initially developed by Microsoft contributors. It supports programming languages such as Java, Python, C#, and NodeJS. Playwright comes with Apache 2.0 License and is most popular with NodeJS with Javascript/Typescript.
Playwright
Playwright Test was created specifically to accommodate the needs of end-to-end testing. Playwright supports all modern rendering engines including Chromium, WebKit, and Firefox. Test on Windows, Linux, and macOS, locally or on CI, headless or headed with native mobile emulation of Google Chrome for Android and Mobile Safari.Playwright leverages the DevTools protocol to write powerful, stable automated tests.Playwright can actually see into and control the browser rather than relying on a middle translation layer, it allows for the simulation of more insightful and relevant user scenarios.
Playwright
Playwright is an open-source library for automating web browsers built by Microsoft, similar to Selenium, it's commonly used for testing web applications. It's built on top of the .NET Core runtime and it provides bindings for C#, it allows developers to write tests for web applications in C# or other .NET languages. Playwright is designed to be fast and reliable and allows developers to run tests in multiple browsers.
Newman
Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster. It is an API client that makes it easy for developers to create, share, test, and document APIs. With this open-source solution, users can create and save simple and complex HTTP/s requests and read their responses.
Project Management
Project management tools in QA help teams plan, track, and coordinate testing activities within the broader software project. They manage requirements, bugs, sprints, and progress reporting. Platforms commonly used in QA teams include Atlassian products, Assembla, YouTrack, and Trello.
Puppeteer
Puppeteer is a Node library that provides a high-level API to control headless Chrome or Chromium browsers over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome or Chromium.
Puppeteer
Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome or Chromium.
QA Mindset
The QA mindset is the set of critical thinking habits and attitudes that make an effective tester. It includes questioning assumptions, thinking about how systems can fail, paying attention to detail, and advocating for the user's perspective. A strong QA mindset balances thoroughness with pragmatism, focusing testing effort where it creates the most value.
QA Wolf
QA Wolf is a hybrid platform & service that helps software teams ship better software faster by taking QA completely off their plate.
QTest
qTest is a test management tool used for Project Management, Bug Tracking, and Test Management. It follows the centralized test management concept that helps to communicate easily and assists in rapid development of task across QA team and other stakeholders.
Hệ Sinh Thái & Triển Khai Thực Tế
Giai đoạn 4 tập trung hoàn thiện 30 chủ đề then chốt.
Root Cause Analysis
Root Cause Analysis (RCA) is a systematic problem-solving method that aims to identify the fundamental reasons behind an issue or event. It goes beyond addressing the immediate symptoms to uncover the core factors that led to the problem, to prevent recurrence. By understanding the underlying causes, effective solutions can be implemented to eliminate or mitigate the risk of similar issues happening again.
Regression Testing
Regression Testing is a type of software testing to confirm that a recent program or code change has not adversely affected existing features. Regression testing is a black box testing technique. Test cases are re-executed to check the previous functionality of the application is working fine and that the new changes have not produced any bugs.
Repo Hosting Services
There are different repository hosting services with the most famous one being GitHub, GitLab and BitBucket. I would recommend creating an account on GitHub because that is where most of the OpenSource work is done and most of the developers are.
Reporting
Test reporting collects and presents the results of test execution in a readable format for QA teams, developers, and stakeholders. Good reports show which tests passed or failed, trends over time, defect density, and coverage levels. Tools like TestRail, Allure, and JUnit report formats integrate with CI/CD systems to publish results automatically after each build.
Responsive vs Adaptive
Responsive design uses fluid layouts that scale to any screen size, while adaptive design serves fixed layouts targeted to specific breakpoints. Testing responsive and adaptive applications requires verifying layouts across different viewport sizes and devices. Automated tests can simulate various resolutions, and visual regression tools detect unexpected layout changes.
REST Assured
Rest-assured helps developers and test engineers to test REST APIs in Java ease by using techniques used in dynamic languages such as Groovy and Ruby.
Robot
Robot Framework is an open-source, keyword-driven test automation framework with a human-readable tabular test syntax. It is extensible through Python or Java libraries and supports web, API, desktop, and mobile testing. Robot Framework is widely used for acceptance testing and integrates with SeleniumLibrary and the Browser Library.
RunScope
Runscope (now part of Blazemeter) is an API monitoring and testing tool that checks API endpoints for correctness, performance, and availability on a scheduled or triggered basis. It is used for continuous API monitoring in production and staging environments. Runscope alerts teams when API responses deviate from expected behavior or exceed response time thresholds.
SAFe
Scaled Agile Framework (SAFe) is a freely available online knowledge base that allows you to apply lean-agile practices at the enterprise level. It provides a simple and lightweight experience for software development. It is a set of organizations and workflow patterns intended to guide enterprises for scaling lean and agile practices. It is divided into three segments which are Team, Program and Portfolio.
Sanity Testing
Sanity testing is a kind of Software Testing performed after receiving a software build, with minor changes in code, or functionality, to ascertain that the bugs have been fixed and no further issues are introduced due to these changes. The goal is to determine that the proposed functionality works roughly as expected. If sanity test fails, the build is rejected to save the time and costs involved in a more rigorous testing.
Scrum
Scrum in Software Testing is a methodology for building complex software applications. It provides easy solutions for executing complicated tasks. Scrum helps the development team to focus on all aspects of the software product development like quality, performance, usability, and so on. It provides with transparency, inspection and adaptation during the software development to avoid complexity.
SDLC
The Software Development Life Cycle (SDLC) is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.
Secrets Management
Secrets Management is a systematic way of in managing, storing, securing, and retrieving credentials for any systems, database, and other services. Credentials such as passwords, SSH keys, certificates, API keys, backup codes, and more.
Security Testing
Security Testing is a type of Software Testing that uncovers vulnerabilities, threats, or risks in a software application and prevents malicious attacks from intruders. The purpose of Security Tests is to identify all possible loopholes and weaknesses of the software system which might result in a loss of information, revenue, repute at the hands of the employees or outsiders of the organization.
Security Testing
Security testing identifies vulnerabilities and weaknesses in an application that could be exploited by attackers. It covers authentication and authorization controls, secrets management, vulnerability scanning, adherence to OWASP guidelines, and analysis of common attack vectors. Security testing is increasingly integrated into CI/CD pipelines as part of DevSecOps practices.
Selenium IDE
Selenium IDE is a browser extension for Chrome and Firefox that records user interactions and generates Selenium-compatible test scripts. It is designed for rapid test creation without programming, making it accessible to manual testers. Recorded scripts can be exported in multiple languages and integrated into existing Selenium-based automation suites.
Selenium
Selenium is an open-source tool that automates web browsers. It provides a single interface that lets you write test scripts in programming languages like Ruby, Java, NodeJS, PHP, Perl, Python, and C#, among others.
Sentry
Sentry tracks your software performance, measuring metrics like throughput and latency, and displaying the impact of errors across multiple systems. Sentry captures distributed traces consisting of transactions and spans, which measure individual services and individual operations within those services.
Smoke Testing
Smoke Testing is a software testing process that determines whether the deployed software build is stable or not. Smoke testing is a confirmation for QA team to proceed with further software testing. It consists of a minimal set of tests run on each build to test software functionalities.
SoapUI
SoapUI is the world's leading Functional Testing tool for SOAP and REST testing. With its easy-to-use graphical interface, and enterprise-class features, SoapUI allows you to easily and rapidly create and execute automated functional, regression, and load tests.
Spiral Model
The Spiral Model is a software development lifecycle (SDLC) approach that emphasizes risk management. It involves iterative cycles of planning, risk analysis, engineering, and evaluation. Each cycle builds upon the previous one, gradually refining the software and mitigating potential risks as the project progresses.
Stress Testing
Stress testing evaluates a system's behavior when pushed beyond its normal operational capacity. It determines the system's breaking point by gradually increasing load until failure. Stress tests reveal how the system fails, whether it fails gracefully, and how it recovers after load is reduced.
SWAs, PWAs, JAMStack
Single Web Apps (SWAs), Progressive Web Apps (PWAs), and JAMStack are modern web application architectures with distinct rendering and caching behaviors. PWAs add offline support and installability, while JAMStack pre-renders content at build time for fast delivery. Testing these architectures requires understanding service worker interactions, offline behavior, and incremental static regeneration.
Swift Testing
Swift testing involves writing code to automatically verify the functionality of Swift applications, especially those built for iOS, macOS, watchOS, and tvOS. This includes creating unit tests to check individual components, UI tests to simulate user interactions, and performance tests to ensure the app runs efficiently. The goal is to identify and fix bugs early in the development cycle, leading to more reliable and robust mobile applications.
TDD - Test Driven Development
Test Driven Development (TDD) is software development approach in which test cases are developed to specify and validate what the code will do. In simple terms, test cases for each functionality are created and tested first and if the test fails then the new code is written in order to pass the test and making code simple and bug-free.
TeamCity
TeamCity is a CI/CD service provided by JetBrains. TeamCity can be used as a SaaS offering or self-managed using your own resources.
Test Cases and Scenarios
Test cases are documented descriptions of conditions, inputs, and expected results used to verify a specific aspect of a system. Test scenarios describe the higher-level situation being tested, and one scenario typically encompasses multiple test cases. Well-written test cases provide repeatable, clear documentation of what is being tested and what constitutes pass or fail.
Test Oracles
A test oracle is a mechanism; different from the program itself that can be used to check the correctness of the program's output for the test cases. Conceptually, we can consider testing a process in which the test cases are given to the test oracle and the program under testing.
Test Planning
A Test Plan is a detailed document that describes the test strategy, objectives, schedule, estimation, deliverables, and resources required to perform testing for a software product. Test Plan helps us determine the effort needed to validate the quality of the application under test.
Test Prioritization
Test prioritization is ordering the test cases to be conducted eventually. Prioritizing test cases aids to meet two important constraints, namely time and budget in software testing to enhance the fault detection rate as early as possible.
Chuyên Gia & Mở Rộng Hệ Thống
Giai đoạn 5 tập trung hoàn thiện 26 chủ đề then chốt.
Testing Approaches
Testing approaches describe the general perspective from which tests are designed and executed. The three main categories are white box testing, which tests internal code paths; black box testing, which tests behavior without knowledge of internals; and gray box testing, which combines elements of both.
Testing Data Management
Data testing management involves the strategies and processes used to plan, create, acquire, store, control, and protect the data used for testing software applications. It ensures that testers have access to the right data, in the right format, at the right time, to effectively validate the functionality, performance, and reliability of the system under test. This includes techniques for data masking, data generation, data subsetting, and data virtualization to create realistic and representative test environments.
Testing Methodologies
Testing methodologies define structured approaches for integrating testing into the development process. Common methodologies include Test-Driven Development (TDD), Acceptance Test-Driven Development (ATDD), Behavior-Driven Development (BDD), and Root Cause Analysis (RCA). Each shapes when tests are written, by whom, and how they communicate intent.
Testing Techniques
Testing Techniques are methods applied to evaluate a system or a component with a purpose to find if it satisfies the given requirements. Testing of a system helps to identify gaps, errors, or any kind of missing requirements differing from the actual requirements. These techniques ensure the overall quality of the product or software including performance, security, customer experience, and so on.
TestLink
TestLink is most widely used web based open source test management tool. It synchronizes both requirements specification and test specification together. Tester can create test project and document test cases using this tool. With TestLink you can create an account for multiple users and assign different user roles.
TestRail
TestRail is a web-based test case management tool. It is used by testers, developers and team leads to manage, track, and organize software testing efforts. TestRail allows team members to enter test cases, organize test suites, execute test runs, and track their results, all from a modern and easy to use web interface.
Test Rail
TestRail is a web-based test management tool used by testers, developers and other stake holders to manage, track and organize software testing efforts. It follows a centralized test management concept that helps in easy communication and enables rapid development of task across QA team and other stakeholders .
Travis CI
Travis CI is a CI/CD service that is primarily used for building and testing projects that are hosted on BitBucket and GitHub. Open source projects can utilized Travis CI for free.
Trello
Trello is a visual project management tool based on Kanban-style boards with cards and lists. Teams use it to track tasks, manage workflows, and coordinate work across members. In QA contexts, Trello is commonly used for lightweight test planning and defect tracking in smaller teams or projects.
UAT
User Acceptance Testing (UAT) is a type of testing performed by the end user or the client to verify/accept the software system before moving the software application to the production environment. UAT is done in the final phase of testing after functional, integration and system testing is done.
Unit Testing
Unit testing is where individual **units** (modules, functions/methods, routines, etc.) of software are tested to ensure their correctness. This low-level testing ensures smaller components are functionally sound while taking the burden off of higher-level tests. Generally, a developer writes these tests during the development process and they are run as automated tests.
V Model
V Model is a highly disciplined SDLC model that has a testing phase parallel to each development phase. The V model is an extension of the waterfall model wherein software development and testing is executed in a sequential way. It's also known as the Validation or Verification Model.
Vegeta
Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. It can be used both as a command line utility and a library.
Verification and Validation
Verification checks that the software meets its specified design and requirements, asking "Are we building the product right?" Validation checks that the software meets the actual needs of the user, asking "Are we building the right product?" Both activities are performed at different stages of the development process and together ensure both correctness and fitness for purpose.
Version Control Systems
Version control/source control systems allow developers to track and control changes to code over time. These services often include the ability to make atomic revisions to code, branch/fork off of specific points, and to compare versions of code. They are useful in determining the who, what, when, and why code changes were made.
Vulnerability Scanning
Vulnerability scanning uses automated tools to detect known security weaknesses in applications, dependencies, and infrastructure. Scanners check against databases of known vulnerabilities like the CVE list and flag outdated libraries, insecure configurations, and exposed endpoints. Regular automated scanning is a baseline practice in DevSecOps workflows.
Waterfall Model
Waterfall Model is a sequential model that divides software development into pre-defined phases. Each phase must be completed before the next phase can begin with no overlap between the phases. Each phase is designed for performing specific activity during the SDLC phase.
Wave
Wave is a suite of evaluation tools that helps authors make their web content more accessible to individuals with disabilities. WAVE can identify many accessibility and Web Content Accessibility Guideline (WCAG) errors, but also facilitates human evaluation of web content.
Webdriver.io
WebdriverIO is a Node.js-based test automation framework for web and mobile applications built on the WebDriver protocol. It provides an async API for browser automation and integrates with popular test frameworks like Mocha, Jasmine, and Cucumber. WebdriverIO supports Selenium, Chrome DevTools Protocol, and Appium as underlying drivers.
WebPageTest
WebPageTest is a web performance tool providing deep diagnostic information about how a page performs under a variety of conditions. Each test can be run from different locations around the world, on real browsers, over any number of customizable network conditions.
What is Quality Assurance?
Quality Assurance (QA) is a systematic process for ensuring that software products meet defined quality standards before delivery. It encompasses planning, executing, and evaluating tests to identify defects, verify requirements, and improve development processes. QA is process-oriented and aims to prevent defects throughout the development cycle, not just detect them at the end.
White Box Testing
White Box Testing is a technique in which software’s internal structure, design, and coding are tested to verify input-output flow and improve design, usability, and security. In white box testing, code is visible to testers, so it is also called Clear box testing, Open box testing, Transparent box testing, Code-based testing, and Glass box testing.
XP
Extreme Programming (XP) is an agile software development framework that aims to produce higher quality software, and higher quality of life for the development team. XP is the most specific of the agile frameworks regarding appropriate engineering practices for software development.
YouTrack
YouTrack is a project management software developed by JetBrains. It’s in the form of a plugin that can be attached to the JetBrains IDEs such as Intellij Idea, and helps create and assign tasks to a development team as well as track the progress of working.
Zephyr
Zephyr is a test management solution available as a Jira plugin (Zephyr Scale, Zephyr Squad) and as a standalone product. It allows teams to create test cases, organize them into cycles, execute tests, and view reports without leaving the Jira interface. Zephyr is widely used in teams that rely on Jira as their primary project tracking tool.
Zombie.js
Zombie.js allows you to run Unit or Integration tests without a real web browser. Instead, it uses a simulated browser where it stores the HTML code and runs the JavaScript you may have in your HTML page. This means that an HTML page doesn’t need to be displayed, saving precious time that would otherwise be occupied rendering it.