In the series we will define the basic terms that every developer needs to know about testing. The purpose is to give all team members a shared understanding of the fundamental terminology of the quality assurance and all related processes. Later this will improve the communication and reviews quality. It will further increase the testing capabilities of each member. In this part, we will talk about fundamental testing process.
As part of the professional services we provide at BELLATRIX, we consult companies and help them to improve their QA process and set up an automated testing infrastructure. After the initial review process and giving improvement recommendations for some companies we need to hire new talents that can help the company to scale-up the solutions we provided. This was part of training we did for a company we consulted so that we educate all of their developers.
Terms
Definition
Test Basis – all documents from which the requirements of a component or system can be inferred. The documentation on which the test cases are based. If a document can be amended only by way of formal amendment procedure, then the test basis is called a frozen test basis.
Definition
Test Condition – an item or event of a component or system that could be verified by one or more test cases e.g., a function, transaction, feature, quality attribute, or structural element.
Definition
Test Design – the process of transforming general testing objectives into tangible test conditions and test cases.
Definition
Test Suite – set of several test cases for a component or system under test, where the post condition of one test is often used as the precondition for the next one.
Definition
Test Log – a chronological record of relevant details about the execution of tests.
I create while ago a detailed article describing how to create test logs- Be Better QA- Start Creating Test Logs
Definition
Testware – artifacts produced during the test process required to plan, design, and execute tests, such as documentation, scripts, inputs, expected results, set-up and clear-up procedures, files, databases, environment, and any additional software or utilities used in testing.
Test Planning
Determine the scope and risks and identify the objectives of testing. Determine the test approach (techniques, test items, coverage, identifying and interfacing with the teams involved in testing, testware). Determine the exit criteria.
Test Analysis and Design
-
Review the test basis
-
Identify gaps and ambiguities in the specifications
-
Prevent defects appearing in the code
-
Evaluating testability of the test basis and test objects
-
Identifying and prioritizing test conditions based on analysis of test items, the specification, behaviour and structure
-
Designing the test environment set-up and identifying any required infrastructure and tools
Part of test design- identifying necessary test data to support the test conditions and test cases, initial conditions, actions, expected results.
Test Implementation and Execution
Execute the test suites and individual test cases - manually or by using execution tools. Log the outcome of test execution. Compare actual results with expected results. Report discrepancies as incidents and analyzing them in order to establish their cause.
Definition
Re-testing – testing that runs test cases that failed the last time they were run, in order to verify the success of corrective actions.
Definition
Regression Testing – testing of a previously tested program following modification to ensure that defects have not been introduced or uncovered in unchanged areas of the software, as a result of the changes made. It is performed when the software or its environment is changed.
Definition
Testing – the activity that initially finds failures in a software item.
Definition
Debugging – the process of finding, analyzing and removing the causes of failures in software.
Often following the debugging cycle the fixed code is tested to retest the fix itself to apply regression testing to the surrounding unchanged software.
Definition
Exit Criteria – the set of generic and specific conditions, agreed upon with the stakeholders, for permitting a process to be officially completed. The purpose of exit criteria is to prevent a task from being considered completed when there are still outstanding parts of the task which have not been finished. Exit criteria are used to report against and to plan when to stop testing.
Validation vs Verification
In every development life cycle, a part of testing is focused on verification testing and a part is focused on validation testing
Validation
-
Are we building the right system?
-
Does the product (or a part of it) solve its task?
-
Is this product suitable for its intended use?
Verification
-
Are we building the system right?
-
Does the product meet its specification?
-
Has it been achieved correctly and completely?
