<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:ContentDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.3/uma.ecore" epf:version="1.0.0" xmi:id="_y-_PIMPdEdmbOvqy4O0adg" name="types_of_test,_0aJ6cMlgEdmt3adZL5Dmdw" guid="_y-_PIMPdEdmbOvqy4O0adg" changeDate="2006-09-20T15:37:14.071-0700">
  <mainDescription>&lt;h3&gt;
    Introduction
&lt;/h3&gt;
&lt;p&gt;
    There is much more to testing computer software than simply evaluating the functions, interface, and response-time
    characteristics of a target-of-test.&amp;nbsp;Additional tests must focus on characteristics and attributes, such as the
    target-of-test.
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        integrity (resistance to failure)
    &lt;/li&gt;
    &lt;li&gt;
        ability to be installed and executed on different platforms
    &lt;/li&gt;
    &lt;li&gt;
        ability to handle many requests simultaneously
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    To achieve this, many different types of tests are implemented and executed.&amp;nbsp;Each test type has a specific
    objective and support technique.&amp;nbsp;Each technique focuses on testing one or more characteristics or attributes of
    the target-of-test.
&lt;/p&gt;
&lt;p&gt;
    The following sections list the types of test based on the most obvious &lt;strong&gt;quality dimensions&lt;/strong&gt; they
    address.
&lt;/p&gt;
&lt;h3&gt;
    Quality Dimension: Functionality
&lt;/h3&gt;
&lt;h4&gt;
    Types of Test
&lt;/h4&gt;
&lt;p&gt;
    &lt;strong&gt;Function test:&lt;/strong&gt;&amp;nbsp;Tests focused on validating the target-of-test functions as intended, providing
    the required services, methods, or use cases. This test is implemented and executed against different targets-of-test,
    including units, integrated units, applications, and systems.
&lt;/p&gt;
&lt;p&gt;
    &lt;strong&gt;Security test:&lt;/strong&gt;&amp;nbsp;Tests focused on ensuring the target-of-test data (or systems) are accessible only
    to those actors for which they are intended. This test is implemented and executed on various targets-of-test.
&lt;/p&gt;
&lt;p&gt;
    &lt;strong&gt;Volume test:&lt;/strong&gt;&amp;nbsp;Tests focused on verifying the target-of-test's ability to handle large amounts of
    data, either as input and output or resident within the database.&amp;nbsp;Volume testing includes test strategies such as
    creating queries that would return the entire contents of the database, or that would have so many restrictions that no
    data is returned, or where the data entry has the maximum amount of data for each field.
&lt;/p&gt;
&lt;h3&gt;
    Quality Dimension:&amp;nbsp;Usability
&lt;/h3&gt;
&lt;h4&gt;
    Types of Test
&lt;/h4&gt;
&lt;p&gt;
    &lt;strong&gt;Usability test:&lt;/strong&gt;&amp;nbsp;Tests that focus on:
&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;
        human factors
    &lt;/li&gt;
    &lt;li&gt;
        esthetics
    &lt;/li&gt;
    &lt;li&gt;
        consistency in the user interface
    &lt;/li&gt;
    &lt;li&gt;
        online and context-sensitive help
    &lt;/li&gt;
    &lt;li&gt;
        wizards and agents
    &lt;/li&gt;
    &lt;li&gt;
        user documentation
    &lt;/li&gt;
    &lt;li&gt;
        training materials
    &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
    &lt;strong&gt;Integrity test:&lt;/strong&gt;&amp;nbsp;Tests that focus on assessing the target-of-test's robustness (resistance to
    failure), and technical compliance to language, syntax, and resource usage.&amp;nbsp;This test is implemented and executed
    against different targets-of-tests, including units and integrated units.
&lt;/p&gt;
&lt;p&gt;
    &lt;strong&gt;Structure test&lt;/strong&gt;: Tests that focus on assessing the target-of-test's adherence to its design and
    formation.&amp;nbsp;Typically, this test is done for Web-enabled applications ensuring that all links are connected,
    appropriate content is displayed, and no content is orphaned.
&lt;/p&gt;
&lt;h3&gt;
    Quality Dimension: Reliability
&lt;/h3&gt;
&lt;h4&gt;
    Types of Test
&lt;/h4&gt;
&lt;p&gt;
    &lt;strong&gt;Stress test:&lt;/strong&gt;&amp;nbsp; A type of reliability test that focuses on evaluating how the system responds under
    abnormal conditions.&amp;nbsp;Stresses on the system could include extreme workloads, insufficient memory, unavailable
    services and hardware, or limited shared resources.&amp;nbsp;These tests are often performed to gain a better understanding
    of how and in what areas the system will break, so that contingency plans and upgrade maintenance can be planned and
    budgeted for well in advance.
&lt;/p&gt;
&lt;p&gt;
    &lt;strong&gt;Benchmark test:&lt;/strong&gt;&amp;nbsp; A type of performance test that compares the performance of a new or unknown
    target-of-test to a known reference-workload and system.
&lt;/p&gt;
&lt;p&gt;
    &lt;strong&gt;Contention test:&lt;/strong&gt;&amp;nbsp; Tests focused on validating the target-of-test's ability to acceptably handle
    multiple actor demands on the same resource (data records, memory, and so on).
&lt;/p&gt;
&lt;h3&gt;
    Quality Dimension: Performance
&lt;/h3&gt;
&lt;h4&gt;
    Types of Test
&lt;/h4&gt;
&lt;p&gt;
    &lt;strong&gt;Load test:&lt;/strong&gt;&amp;nbsp; A type of performance test used to validate and assess acceptability of the
    operational limits of a system under varying workloads while the system-under-test remains constant.&amp;nbsp;In some
    variants, the workload remains constant and the configuration of the system-under-test is varied.&amp;nbsp; Measurements
    are usually taken based on the workload throughout and in-line transaction response time.&amp;nbsp;The variations in
    workload usually include emulation of average and peak workloads that occur within normal operational tolerances.
&lt;/p&gt;
&lt;p&gt;
    &lt;strong&gt;Performance profile:&lt;/strong&gt; A test in which the target-of-test's timing profile is monitored, including
    execution flow, data access, function and system calls to identify and address both performance bottlenecks and
    inefficient processes.
&lt;/p&gt;
&lt;p&gt;
    &lt;strong&gt;Configuration test:&lt;/strong&gt;&amp;nbsp; Tests focused on ensuring the target-of-test functions as intended on
    different hardware and software configurations.&amp;nbsp;This test might also be implemented as a system performance test.
&lt;/p&gt;
&lt;h3&gt;
    Quality Dimension: Supportability
&lt;/h3&gt;
&lt;h4&gt;
    Types of Test
&lt;/h4&gt;
&lt;p&gt;
    &lt;strong&gt;Installation test:&lt;/strong&gt;&amp;nbsp; Tests focused on ensuring the target-of-test installs as intended on
    different hardware and software configurations, and under different conditions (such as insufficient disk space or
    power interruptions).&amp;nbsp;This test is implemented and executed against applications and systems.
&lt;/p&gt;</mainDescription>
</org.eclipse.epf.uma:ContentDescription>
