Monday, February 19, 2007

Testing Dictionary

Alpha Test: Alpha testing happens at the development site just before the roll out of the application to the customer. Alpha tests are conducted replicating the live environment where the application would be installed and running Behavioral Tests: Behavioral Tests are often used to find bugs in the high-level operations, at the levels of features, operational profiles, and customer scenarios. Beta Tests: Beta testing happens at the actual place of installation in the live environment. Here the users play the role of testers. Black Box Tests: Black Box tests aim at testing the functionality of the application basing on the Requirements and Design documents. Condition Coverage: Condition coverage reports the true or false outcome of each Boolean sub-_expression, separated by logical-and and logical-or if they occur. Condition coverage measures the sub-expressions independently of each other. Condition/Decision Coverage: Condition/Decision Coverage is a hybrid measure composed by the union of condition coverage and decision coverage. Data Flow Coverage: This variation of path coverage considers only the sub-paths from variable assignments to subsequent references of the variables. The advantage of this measure is the paths reported have direct relevance to the way the program handles data. One disadvantage is that this measure does not include decision coverage. Another disadvantage is complexity. Researchers have proposed numerous variations, all of which increase the complexity of this measure. For example, variations distinguish between the use of a variable in a computation versus a use in a decision, and between local and global variables. As with data flow analysis for code optimization, pointers also present problems. Decision Coverage: This measure reports whether Boolean expressions tested in control structures (such as the if-statement and while-statement) evaluated to both true and false. Defect: Any deviation in the working of the application that is not mentioned in any documents in SDLC can be termed as a defect. Defect Density: Defect Density is the number of defects raised to the size of the program. Defect Report: A report, which lists the defects, noticed in the application. Function Coverage: This measure reports whether you invoked each function or procedure. It is useful during preliminary testing to assure at least some coverage in all areas of the software. Broad, shallow testing finds gross deficiencies in a test suite quickly. Grey Box Tests: Grey Box tests are a combination of Black Box and White Box tests. Installation Tests: Installation tests aim at testing the installation of an application. Testing of application for installing on a variety of hardware and software requirements is termed as installation. Integration Tests: Testing two or more programs, which together accomplish a particular task. Also, Integration Tests aim at testing the binding and communication between programs. Linear Code Sequence and Jump (LCSAJ) Coverage: This variation of path coverage considers only sub-paths that can easily be represented in the program source code, without requiring a flow graph. An LCSAJ is a sequence of source code lines executed in sequence. This "linear" sequence can contain decisions as long as the control flow actually continues from one line to the next at run-time. Sub-paths are constructed by concatenating LCSAJs. Researchers refer to the coverage ratio of paths of length n LCSAJs as the test effectiveness ratio (TER) n+2. The advantage of this measure is that it is more thorough than decision coverage yet avoids the exponential difficulty of path coverage. The disadvantage is that it does not avoid infeasible paths. Load Tests: Load testing aims at testing the maximum load the application can take basing on the requirements. Load can be classified into number of users of the system, load on the database etc. Loop Coverage: This measure reports whether you executed each loop body zero times, exactly once, and more than once (consecutively). For do-while loops, loop coverage reports whether you executed the body exactly once, and more than once. Modified Condition/Decision Coverage: Also known as MC/DC and MCDC. This measure requires enough test cases to verify every condition can affect the result of its encompassing decision. Multiple Condition Coverage: Multiple condition coverage reports whether every possible combination of Boolean sub-expressions occurs. Object Code Coverage: This measure reports whether each machine language conditional branch instruction both took the branch and fell through. This measure gives results that depend on the compiler rather than on the program structure since compiler code generation and optimization techniques can create object code that bears little similarity to the original source code structure. Since branches disrupt the instruction pipeline, compilers sometimes avoid generating a branch and instead generate an equivalent sequence of non-branching instructions. Compilers often expand the body of a function inline to save the cost of a function call. If such functions contain branches, the number of machine language branches increases dramatically relative to the original source code. Path Coverage: This measure reports whether each of the possible paths in each function have been followed. A path is a unique sequence of branches from the function entry to the exit. Also known as predicate coverage. Predicate coverage views paths as possible combinations of logical conditions. Race Coverage: This measure reports whether multiple threads execute the same code at the same time. It helps detect failure to synchronize access to resources. It is useful for testing multi-threaded programs such as in an operating system. Relational Operator Coverage: This measure reports whether boundary situations occur with relational operators (<, <=, >, >=). The hypothesis is that boundary test cases find off-by-one errors and mistaken uses of wrong relational operators such as < instead of <=. For example, consider the following C/C++ code fragment:if (a < b) statement; Relational operator coverage reports whether the situation a==b occurs. If a==b occurs and the program behaves correctly, you can assume the relational operator is not suppose to be <=. Statement Coverage: This measure reports whether each executable statement is encountered.The chief advantage of this measure is that it can be applied directly to object code and does not require processing source code. Performance profilers commonly implement this measure. The chief disadvantage of statement coverage is that it is insensitive to some control structures. For example, consider the following C/C++ code fragment:Int* p = NULL;if (condition)p = &variable;*p = 123;Without a test case that causes condition to evaluate false, statement coverage rates this code fully covered. In fact, if condition ever evaluates false, this code fails. This is the most serious shortcoming of statement coverage. If-statements are very common. Performance Tests: Performance tests are coupled with stress testing and usually require both hardware and software instrumentation. Quality ControlRelates to a specific product or service.Verifies whether specific attributes are in, or are not in, a specific product or service. Identifies defects for the primary purpose of correction defects. Is the responsibility of team/workers.Is concerned with a specific product. Quality AssuranceHelps establish process. Sets up measurements programs to evaluate processes.Identifies weakness in processes and improves them. Is management responsibility, frequently performed by staff function.Is concerned with all of the products that will ever be produced by a process. Is sometimes called quality control over Quality Control because it evaluates whether quality is working.QA personnel should not ever perform Quality Control unless it is to validate QC. Quality Engineering ToolsThe Sever Quality Engineering Tools are as follows:Flow Charts. Run Charts. Check Sheet. Histogram. Pareto Diagram.Ishikawa Diagram. Scatter Diagram. The tools can be used in the following areas: Problem Representation (Flow Charts, Run Charts)Data Collection (Check Sheet, Histogram) Data Analysis and Synthesis (Histogram, Pareto Diagram, Ishikawa Diagram and Scatter Diagram)The Quality Management ToolsThe Sever Quality Management Tools are as follows:Process Decision Program Chart (PDPC). Activity Network. Tree Diagram. Matrix Data Analysis Diagram.Relationship Diagram. Affinity Diagram. Prioritization Matrix.The tools can be used in the following areas:Problem Representation (PDPC, Activity Network, Tree Diagram)Data Collection (Matrix Data Analysis Diagram) Data Analysis and Synthesis (Relationship Diagram, Tree Diagram, Affinity Diagram, Prioritization Matrix)Recovery Tests: Recovery testing is a system test that focuses the software to fall in a variety of ways and verifies that recovery is properly performed. If recovery is automatic, reinitialization, checkpointing mechanisms, data recovery and restart are evaluated for correctness. If recovery requires human intervention, the mean-time-to-repair (MTTR) is evaluated to determine whether it is within acceptable limits.Regression Tests: Regression tests address the changes in the functionality. If the application undergoes changes, tests are conducted to verify if the basic functionality is working properly and also the changes are working as intended. Regression tests become indispensable when there are continuos changes in the application. Security Testing: Security testing attempts to verify that protection mechanisms built into a system will, in fact, protect it from improper penetration. During Security testing, password cracking, unauthorized entry into the software, network security are all taken into consideration.Smoke Tests: "Smoke testing might be a characterized as a rolling integration strategy". Smoke testing is an integration testing approach that is commonly used when "shrink-wrapped" software products are being developed. It is designed as a pacing mechanism for time-critical projects, allowing the software team to assess its project on a frequent basis. The smoke test should exercise the entire system from end to end. Smoke testing provides benefits such as:1) Integration risk is minimized.2) The quality of the end-product is improved.3) Error diagnosis and correction are simplified.4) Progress is easier to asses.Stress Tests: Stress testing executes a system in a manner that demands resources in abnormal quantity, frequency, or volume.The following types of tests may be conducted during stress testing;· Special tests may be designed that generate ten interrupts per second, when one or two is the average rate.· Input data rates may be increases by an order of magnitude to determine how input functions will respond.· Test Cases that require maximum memory or other resources.· Test Cases that may cause excessive hunting for disk-resident data. · Test Cases that my cause thrashing in a virtual operating system. Structural Tests: Structural Tests find bugs in low-level operations such as those that occur down at the levels of lines of code, database schemas, chips, subassemblies, and interfaces. System Tests: System tests concentrate on testing the behavior of the application. These tests are usually conducted based on the Requirements to check if the system is performing the required. Test: An activity in which a system or component is executed under specified conditions, the results are observed or recorded, and an evaluation is made of some aspect of the system or component. Test Case: A set of test inputs, execution conditions, and expected results developed for a particular objective. Test Case Types: There are six types of test cases mentioned by Bill Hetzel, Requirements Based, Design-Based, Code-Based, Randomized, Extracted and Abnormal. Test Procedure: The detailed instruction for the set-up, execution, and evaluation of results for a given test case. Test Design: Test Design depicts the design of tests which need to be executed basing on the Design of the application. Test Granularity: Test Granularity refers to the fitness or coarseness of a test’s focus. Test Plan: A Test Plan depicts the plan for conducting tests. This usually includes: Test Strategy, Schedules and Resource allocation. Unit Tests: Testing the individual units of the software. Unit can be an input field, a screen, group of screens performing one single task, one part of the program or a complete program. Validation MethodsProven test-design methods provide a more intelligent and effective means of identifying tests than a purely random approach. Black-box methods for function-based tests The following methods are commonly used:1. Equivalence Partitioning.2. Boundary Value Analysis.3. Error Guessing.The following are the lesser-used methods.1. Cause-Effect graphing.2. Syntax Testing.3. State Transition Testing.4. Graph Matrix.Weak Mutation Tests: This measure is similar to relational operator coverage but much more general. It reports whether test cases occur which would expose the use of wrong operators and also wrong operands. It works by reporting coverage of conditions derived by substituting (mutating) the program's expressions with alternate operators, such as "-" substituted for "+", and with alternate variables substituted. This measure interests the academic world mainly. Caveats are many; programs must meet special requirements to enable measurement. White Box Tests: White Box Tests aim at testing the program to the set standards rather than merely checking if the application is running as per requirement or not.

No comments: