| |
Software Testing Glossary
A software testing glossary is a tool that you should have at your fingertips as you build your quality assurance
career.
Keeping up with quality assurance definitions is a valuable habit to acquire. Continually “sharpening the saw” by solidifying and increasing your quality assurance knowledge will keep you in-the-know and in demand. Our goal with this software testing glossary is to bring you the terms and definitions that you need to know in order to succeed. We don’t want to create a software testing glossary that simply inundates and confuses you. We do our best to keep only terms that can be readily useful for you. If there are test terms that you think should be included, just
contact us
and let us know. We will review your submission and add it to our list if there is enough demand. This software testing glossary is for you – so tell us what you want to know. This software testing glossary will give you not only the textbook definitions, but also provide valuable real-world explanations. What other software testing glossary does that? If you want to increase your value as a
QA Tester,
if you really want to
succeed as a tester;
you should learn all of the terms in this software testing glossary. These definitions are standard. Although each company tends to use slightly different terminology (and each company believes that they are right), if you learn the software quality assurance definitions in this list, you will be well on your way to fluency in any environment. If you want a
job
in the world of software testing, learn these terms. If you want to be a leader in the technology industry, learn these terms. If you want to apply the correct techniques, then you must know these terms. Live it, learn it, love it…this software testing glossary is for you!
• Acceptance Testing – Testing conducted to determine whether a software build is of acceptable quality to test further. Normally performed to validate the software meets a set of agreed acceptance criteria • Ad Hoc Testing – A testing in which the tester tries to break the system by randomly trying the system's functionality • Agile Testing – Testing practice for projects using agile methodologies, treating development as the customer of testing and emphasizing a test-first design paradigm • Alpha – Alpha is the test phase in which the product is usable in a test environment but not necessarily bug-free •
Automated Testing
– Testing employing software tools which execute tests without manual intervention • Benchmark Testing – Tests that use representative sets of programs and data designed to evaluate the performance of computer hardware and software in a given configuration • Beta – Beta is the test phase in which the product is feature complete. This version may be distributed for limited public testing and feedback •
Beta Testing
– Testing of a build or version that has met Beta milestone criteria. Testing a release or version of a product conducted by the public •
Black Box Testing
– Testing based on an analysis of the specification of a piece of software without reference to its internal workings. Testing by using the GUI, not by analyzing at the code level • Boundary Testing – Testing of the program’s own rules, from within • Bug – A fault in a program which causes the program to perform in an unintended or unanticipated manner. An anomaly, defect, error, exception, or fault • Bugbase – The database in which all defects (bugs) are logged, prioritized, and tracked. (see Defect Tracking System) • Compatibility Testing – Testing how well software performs in a particular hardware/software/operating system/network/etc. environment • Defect – See “Bug” •
Defect Tracking System
– A tool used by a project team to organize, prioritize, and track all defects (bugs) related to the project. The engine most often used is a database, although projects may also use a spreadsheet • Endurance Testing – Checks for memory leaks or other problems that may occur with prolonged execution • End-to-End Testing – Testing a complete application environment in a situation that mimics real-world use, such as interacting with a database, using network communications, or interacting with other hardware, applications, or systems if appropriate • Final Candidate – A Release Candidate that meets the criteria to have the final tests performed before Gold Master is declared • Functional Specification – A document that describes in detail the characteristics of the product with regard to its intended features • Functional Testing – Testing the features and operational behavior of a product to ensure they correspond to its specifications. (See Black Box Testing) • Gold Master – A shippable version of the product • Gray Box Testing – A combination of Black Box and White Box testing methodologies to test software against its specification but using some knowledge of its internal workings • Integration Testing – Testing of combined parts of an application to determine if they function together correctly. Usually performed after unit and functional testing. This type of testing is especially relevant to client/server and distributed systems • ISO 9000 – A family of standards used for quality management systems. ISO stands for the International Organization for Standardization • Load Testing – Testing that creates demand on a system to define its limits by measuring the system’s response • Localization Testing – Testing software specifically designed for a specific locality – this testing focuses on language
• Metric – A standard of measurement. Software metrics are the statistics describing the structure or content of a program. A metric should be a real objective measurement of something such as number of bugs per lines of code
A software testing glossary should help you solidify your knowledge of QA terminology and increase your understanding of the software testing process. We do our best to keep the terms in this software testing glossary topical and useful so that you remain topical and useful.
• Negative Testing – Testing aimed at showing software does not work and checking for failure states • Performance Testing – Testing conducted to evaluate the compliance of a system or component with specified performance requirements. Often this is performed using an automated test tool to simulate large number of users • Post Mortem – An end-of-project wrap up meeting to review the project and set a path for improvement • Pre-Alpha – A phase of testing during which builds that are only semi-functional. Testing focuses on specific features, not holistic testing • QA – Quality Assurance • Quality Assurance – All the planned or systematic actions necessary to provide adequate confidence that a product or service is of the type and quality needed and expected by the customer • Regression Testing – Testing a previously tested program following modification to ensure that faults have not been introduced as a result of the changes made • Release Candidate – A pre-release version, which contains the desired functionality of the final version, but which needs to be tested to verify it is ready for release • RTFM – Read The Manual (don't ask what the "F" stands for) • Sanity Testing – Brief test of major functional elements of a piece of software to determine if it’s basically operational (See also Smoke Testing) •
SCM
– (link opens in new window) Software Configuration Management. These are the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations • SDLC – Software Development Lifecycle or Software Design Lifecycle • Smoke Testing – A quick-and-dirty test that the major functions of a piece of software work. The name of this test originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch on fire • Soak Testing – Running a system at high load for a prolonged period of time. For example, running several times more transactions in an entire day (or night) than would be expected in a busy day, to identify and performance problems that appear after a large number of transactions have been executed • Software Development Lifecycle – The processes and parameters that govern the creation of software in a defined project or projects •
SQA
– Software Quality Assurance • Stress Testing – Testing the limits of a system by altering the external variables • System Testing – Testing that attempts to discover defects that are properties of the entire system rather than of its individual components • Test Bed – An execution environment configured for testing. May consist of specific hardware, OS, network topology, configuration of the product under test, other application or system software, etc. The Test Plan for a project should enumerated the test beds(s) to be used • Test Case – A commonly used term for a specific test • Test Environment – The hardware and software environment in which tests will be run, and any other software with which the software under test interacts when under test including stubs and test drivers • Test Plan – A document describing the scope, approach, resources, and schedule of intended testing activities. It identifies test items, the features to be tested, the testing tasks, who will do each task, and any risks requiring contingency planning. Ref IEEE Std 829 • Test Suite – A collection of tests used to validate the behavior of a product • Unit Testing – Testing of individual software components. Often this testing is performed at the code level • Usability Testing – Testing the ease with which users can learn and use a product • Use Case – The specification of tests that are conducted from the end-user perspective. Use cases tend to focus on operating software as an end-user would conduct their day-to-day activities • Waterfall Testing – A model that is sequential, flowing through several predefined phases • White Box Testing – Testing based on an analysis of internal workings and structure of a piece of software
We will continue to update this software testing glossary so that it can be a repository of information you can rely on. Subscribe to our feed (in the left margin) to receive updates as they appear. Remember, if there is a specific term that you would like this software testing glossary to define (technically as well as practically) just let us know. We will do our best to oblige!
Return from our
Software Testing Glossary
to
Successful Quality Assurance Home
|