Meego Wiki
Views

Quality/Test areas and types

From MeeGo wiki
< Quality(Difference between revisions)
Jump to: navigation, search
(Efficiency quality characteristics)
(Maintainability quality characteristics)
 
(9 intermediate revisions not shown)
Line 2: Line 2:
== Functionality quality characteristics ==
== Functionality quality characteristics ==
-
* '''Functional (accuracy) testing''' : Testing the application's or component's adherence to the specified or implied requirements.
+
* '''Functional (accuracy) testing''': testing to determine the capability of the software product to provide the right or agreed results or effects with the needed degree of precision (ISO 9126).
-
** Test type '''Certification''' : Testing the SW component’s adherence to the specified or implied certification requirements.
+
* '''Functional (suitability) testing''': testing to determine the capability of the software product to provide an appropriate set of functions for specified tasks and user objectives (ISO 9126). This testing can be based on use cases or procedures. Testing shall also evaluate the application's or component's tolerance to faults in terms of handling unexpected input values, data, messages or triggers (so-called negative tests).
-
*** Proposed to be moved under Compliance: Test type Certification has to be moved to a missing attribute: ‘Compliance’ that is one of the functionality quality characteristics defined by the ISO 9126. Here is the ISTQB definition of certification: the process of confirming that a component, system or person complies with its specified requirements, e.g. by passing an exam. So, Compliance Testing : has to be added here. Compliance is the capability of the software product to adhere to standards, conventions or regulations in laws and similar prescription (according to ISO9126). The test type ‘Certification’ could be moved functional (accuracy) testing  to this new characteristic. Certification as such is not done in meego.com.
+
** Test type '''Functional positive''': tests aim at showing that a component or a system works as expected in terms of accuracy or suitability when handling valid inputs or expected user behaviors.
-
*** Answer: Just remove Certification and add Compliance testing with description given in proposal.
+
** Test type '''Functional negative''': tests aim at ensuring that a component or a system can gracefully handle invalid inputs or exceptions.
-
* '''Functional (suitability) testing''' : Evaluating and validating the appropriateness of application or a set of features for its intended specified tasks. This testing can be based on use cases or procedures. Testing shall also evaluate the application's or component's tolerance to faults in terms of handling unexpected input values, data, messages or triggers (so-called negative tests).
+
* '''Technical Security Testing''': testing to determine the ability of the software product to prevent unauthorized access, whether accidental or deliberate, to programs and data (ISO 9126).
-
** Test type '''Functional''' : See description above.
+
** Test type ''' Security ''': tests aim at attempting to compromise a system's security policy by assessing a system's vulnerability to threats, this domain is mainly covered with a dedicated test plan, see [http://wiki.meego.com/Quality/Plans/MeeGo_Security_Test_Plan Meego Security Test Plan]
-
*** Proposed to be replaced by negative and positive types: This is too generic and can be decomposed into 2 test types: ‘Functional positive’ and ‘Functional negative’ that cover both ‘accuracy’ and ‘suitability’ attributes.
+
-
*** Answer: Functional can be removed and these two types added over here. One needs definition to be written for both.
+
-
* '''SW Interoperability Testing''' (a.k.a. System Integration Testing): Tests whether a given group components and applications can function correctly in intended target configuration. Testing for interoperability may, for example, focus on ability of the software to automatically detect the communications needs of the systems it interacts with and switch accordingly.
+
-
** Proposed to be removed.
+
-
** Answer: Could be removed. This is more like a test set than test type.
+
-
* '''Technical Security Testing''' : Technical security testing attempts to compromise a system's security policy by assessing a system's vulnerability to threats.
+
-
** Proposed to have Security testing as a new test type: A ‘Security’ test type should be added as a dedicated Meego test plan already covers this area, http://wiki.meego.com/Quality/Plans/MeeGo_Security_Test_Plan.
+
-
** Answer: Security to be added as test type with description given in proposal and/or test plan.
+
-
* '''Accessibility Testing''' : Evaluating and validating the accessibility of software to those with particular requirements or restrictions in its use. This includes those with disabilities.
+
-
** Proposed to be move under Usability: Accessibility is not listed in the functional quality characteristics defined by the ISO9126 standard. Moreover, this domain is related to the user experience, here is the definition provided by the ISTQB: Testing to determine the ease by which users with disabilities can use a component or system. So, it can be moved to ‘usability quality characteristics’ section below.
+
-
** Answer: Lets remove this totally. Usability as such might have similar checks included but today Accessibility as such is not in a scope of meego.com.
+
== Efficiency quality characteristics ==
== Efficiency quality characteristics ==
* '''Performance Testing''' : Focuses on the ability of a application or component to respond to user or system inputs within a specified time and under specified conditions (e.g. normal load, low resource and stress situations). Performance might be measured according to CPU cycles, response or latency times, frame rates, etc.
* '''Performance Testing''' : Focuses on the ability of a application or component to respond to user or system inputs within a specified time and under specified conditions (e.g. normal load, low resource and stress situations). Performance might be measured according to CPU cycles, response or latency times, frame rates, etc.
-
** Test type '''performance''' : The process of testing to determine the performance (or efficiency) of a software product. The measurable could be:
+
** Test type '''performance''' : The process of testing to determine the performance (or efficiency) of a software product. It can serve to validate and verify different aspects of the system, such as
*** '''Framerate''' : Measuring the frequency rate at which an imaging device produces unique consecutive images.  
*** '''Framerate''' : Measuring the frequency rate at which an imaging device produces unique consecutive images.  
*** '''Latency''' : Measures time delay between the moment something is initiated, and the moment one of its effects begins or becomes detectable.  
*** '''Latency''' : Measures time delay between the moment something is initiated, and the moment one of its effects begins or becomes detectable.  
Line 33: Line 22:
== Reliability quality characteristics ==
== Reliability quality characteristics ==
-
* '''Robustness Testing''' : Evaluate a application's or component's tolerance to faults which occur externally to the system under the test (e.g. memory full, process or service not available, file not found).
+
 
-
** Test type '''Low-resource''' : Testing how system behaves (functional vice) under low system resources. For example, low disk space, available RAM etc.  
+
* '''Reliability Testing''' : Tests to discover potential problems with the design as early as possible and, ultimately, provide confidence that the system meets its reliability requirements.
-
* '''Recoverability Testing''' : Evaluate the software application's or component's ability to recover from hardware or software failures in a predetermined manner which subsequently allows normal operations to be resumed.
+
** Test Type '''Reliability''' : Testing to discover potential problems with the design as early as possible and, ultimately, provide confidence that the system meets its reliability requirements. It can serve to validate and verify different aspects of the system, such as
-
** Test type '''Recovery''' : Testing aimed at verifying the system's ability to recover from varying degrees of failures, for example, reaction to unplanned breakdowns of service. Recovery testing ensures that the integrity of data won’t break when something unexpected happens.
+
*** '''Robustness Testing''' : Evaluate a application's or component's tolerance to faults which occur externally to the system under the test (e.g. memory full, process or service not available, file not found).
-
* Test type '''Iterative''' : Performing multiple iterations of the same test case in order to expose possible problems in sequential runs.
+
**** '''Low-resource''' : Testing how system behaves (functional vice) under low system resources. For example, low disk space, available RAM etc.  
-
* Test type '''Long-lasting''' : Executing a test case for a long time in order to find errors, which occur during a longer usage.
+
*** '''Recoverability Testing''' : Evaluate the software application's or component's ability to recover from hardware or software failures in a predetermined manner which subsequently allows normal operations to be resumed.
 +
**** '''Recovery''' : Testing aimed at verifying the system's ability to recover from varying degrees of failures, for example, reaction to unplanned breakdowns of service. Recovery testing ensures that the integrity of data won’t break when something unexpected happens.
 +
*** '''Iterative''' : Performing multiple iterations of the same test case in order to expose possible problems in sequential runs.
 +
*** '''Long-lasting''' : Executing a test case for a long time in order to find errors, which occur during a longer usage.
== Usability quality characteristics ==
== Usability quality characteristics ==
 +
* '''Usability Testing''' : Testing to determine the extent to which the application or feature is understood, easy to learn, easy to operate and attractive to the users under specified conditions.
* '''Usability Testing''' : Testing to determine the extent to which the application or feature is understood, easy to learn, easy to operate and attractive to the users under specified conditions.
-
* Proposed that ‘User experience’ (already created in testlink) needs to be described here
+
** Test type '''User experience''' : The tests focusing on users' feelings stemming both from pragmatic and hedonic aspects of the system. The focus is on pleasure and value rather than on performance (getting task done), which is aim for usability testing.
-
* Answer: ‘User experience’ to be added and described
+
== Maintainability quality characteristics ==
== Maintainability quality characteristics ==
-
* '''Dynamic maintainability testing''' : Evaluating the documented procedures developed for maintaining a particular application (e.g. for performing software upgrades).
+
 
-
* '''Changeability testing''' : Evaluate the effort required to make changes to a system (e.g. code changes). Both testability (effort required to test the changes made) and stability (system’s response to change) aspect should be taken into account here.
+
* '''Maintainability testing''' : The process of testing to determine the maintainability of a software product.
-
* Proposal: A test type ‘Maintainability’ needs to be added to cover following items: analyzability, modifiability, stability and testability
+
** Test type '''Maintainability''' can be either a static form of testing, i.e. carried out by inspections and reviews, or a dynamic form i.e. measuring the effort required to execute maintenance activities. It can serve to validate and verify analyzability, modifiability, stability and testability of the system.
-
* Answer: ‘Maintainability’ test type and sub-test types to be added and defined
+
*** '''Dynamic maintainability testing''' : Evaluating the documented procedures developed for maintaining a particular application (e.g. for performing software upgrades).
 +
*** '''Changeability testing''' : Evaluate the effort required to make changes to a system (e.g. code changes). Both testability (effort required to test the changes made) and stability (system’s response to change) aspect should be taken into account here.
== Portability quality characteristics ==
== Portability quality characteristics ==
-
* '''Installability testing''' : Testing conducted on the software used to install other software on its target environment.
+
 
-
* '''Compatibility testing''' : Evaluation of possible adverse impact on functionality when applications are loaded on the same environment (e.g. conflict resource usage when a server runs multiple applications).
+
* '''Portability testing''' : The process of testing to determine the portability of a software product.
-
* '''Adaptability testing''' : Evaluating whether a give application can function correctly in all intended target environments (hardware, software, middleware, operating system, etc.). This testing can be done by using a selection of functional test cases which exercise the various components present in the environment.
+
** Test type '''Portability''' : The testing to determine the portability of a software product. It can serve to validate and verify installability, compatibility, adaptability and replaceability of the system.
-
* '''Replaceability testing''' : Evaluating the ability of software components within the system to be exchanged for others.
+
*** '''Installability testing''' : Testing conducted on the software used to install other software on its target environment.
-
* Proposal: A test type ‘Portability’ needs to be added to cover following items: installability, compatibility, adaptability and replaceability
+
*** '''Compatibility testing''' : Evaluation of possible adverse impact on functionality when applications are loaded on the same environment (e.g. conflict resource usage when a server runs multiple applications).
-
* Answer: ‘Portability’ test type and sub-test types to be added and defined
+
*** '''Adaptability testing''' : Evaluating whether a give application can function correctly in all intended target environments (hardware, software, middleware, operating system, etc.). This testing can be done by using a selection of functional test cases which exercise the various components present in the environment.
 +
*** '''Replaceability testing''' : Evaluating the ability of software components within the system to be exchanged for others.

Latest revision as of 06:14, 18 April 2011

Aligned with ISO/IEC 9126-1 Software Quality Model and ISTQB Advanced Level Syllabus. Note that this includes also description for test types used in Test plan xml files visible through http://testplans.meego.com (e.g. MCTS - Meego Core Test Suite - through http://testplans.meego.com/mcts/#matrix).

Contents

Functionality quality characteristics

  • Functional (accuracy) testing: testing to determine the capability of the software product to provide the right or agreed results or effects with the needed degree of precision (ISO 9126).
  • Functional (suitability) testing: testing to determine the capability of the software product to provide an appropriate set of functions for specified tasks and user objectives (ISO 9126). This testing can be based on use cases or procedures. Testing shall also evaluate the application's or component's tolerance to faults in terms of handling unexpected input values, data, messages or triggers (so-called negative tests).
    • Test type Functional positive: tests aim at showing that a component or a system works as expected in terms of accuracy or suitability when handling valid inputs or expected user behaviors.
    • Test type Functional negative: tests aim at ensuring that a component or a system can gracefully handle invalid inputs or exceptions.
  • Technical Security Testing: testing to determine the ability of the software product to prevent unauthorized access, whether accidental or deliberate, to programs and data (ISO 9126).
    • Test type Security : tests aim at attempting to compromise a system's security policy by assessing a system's vulnerability to threats, this domain is mainly covered with a dedicated test plan, see Meego Security Test Plan

Efficiency quality characteristics

  • Performance Testing : Focuses on the ability of a application or component to respond to user or system inputs within a specified time and under specified conditions (e.g. normal load, low resource and stress situations). Performance might be measured according to CPU cycles, response or latency times, frame rates, etc.
    • Test type performance : The process of testing to determine the performance (or efficiency) of a software product. It can serve to validate and verify different aspects of the system, such as
      • Framerate : Measuring the frequency rate at which an imaging device produces unique consecutive images.
      • Latency : Measures time delay between the moment something is initiated, and the moment one of its effects begins or becomes detectable.
      • Response : Measures the time a system takes to react to given input by end-user; the total time it takes from a user request until response is received. When talking about response time one usually means completion time.
      • Benchmark : A test that is be used to compare components or systems to each other or to a standard.
      • Throughput : The (average) rate of successful message delivery over a communication channel in a given period of time.
      • Memory : Amount of (RAM) memory used during a use case or over a period of time
      • Load : Average amount of work that system is doing over a period of time.

Reliability quality characteristics

  • Reliability Testing : Tests to discover potential problems with the design as early as possible and, ultimately, provide confidence that the system meets its reliability requirements.
    • Test Type Reliability : Testing to discover potential problems with the design as early as possible and, ultimately, provide confidence that the system meets its reliability requirements. It can serve to validate and verify different aspects of the system, such as
      • Robustness Testing : Evaluate a application's or component's tolerance to faults which occur externally to the system under the test (e.g. memory full, process or service not available, file not found).
        • Low-resource : Testing how system behaves (functional vice) under low system resources. For example, low disk space, available RAM etc.
      • Recoverability Testing : Evaluate the software application's or component's ability to recover from hardware or software failures in a predetermined manner which subsequently allows normal operations to be resumed.
        • Recovery : Testing aimed at verifying the system's ability to recover from varying degrees of failures, for example, reaction to unplanned breakdowns of service. Recovery testing ensures that the integrity of data won’t break when something unexpected happens.
      • Iterative : Performing multiple iterations of the same test case in order to expose possible problems in sequential runs.
      • Long-lasting : Executing a test case for a long time in order to find errors, which occur during a longer usage.

Usability quality characteristics

  • Usability Testing : Testing to determine the extent to which the application or feature is understood, easy to learn, easy to operate and attractive to the users under specified conditions.
    • Test type User experience : The tests focusing on users' feelings stemming both from pragmatic and hedonic aspects of the system. The focus is on pleasure and value rather than on performance (getting task done), which is aim for usability testing.

Maintainability quality characteristics

  • Maintainability testing : The process of testing to determine the maintainability of a software product.
    • Test type Maintainability can be either a static form of testing, i.e. carried out by inspections and reviews, or a dynamic form i.e. measuring the effort required to execute maintenance activities. It can serve to validate and verify analyzability, modifiability, stability and testability of the system.
      • Dynamic maintainability testing : Evaluating the documented procedures developed for maintaining a particular application (e.g. for performing software upgrades).
      • Changeability testing : Evaluate the effort required to make changes to a system (e.g. code changes). Both testability (effort required to test the changes made) and stability (system’s response to change) aspect should be taken into account here.

Portability quality characteristics

  • Portability testing : The process of testing to determine the portability of a software product.
    • Test type Portability : The testing to determine the portability of a software product. It can serve to validate and verify installability, compatibility, adaptability and replaceability of the system.
      • Installability testing : Testing conducted on the software used to install other software on its target environment.
      • Compatibility testing : Evaluation of possible adverse impact on functionality when applications are loaded on the same environment (e.g. conflict resource usage when a server runs multiple applications).
      • Adaptability testing : Evaluating whether a give application can function correctly in all intended target environments (hardware, software, middleware, operating system, etc.). This testing can be done by using a selection of functional test cases which exercise the various components present in the environment.
      • Replaceability testing : Evaluating the ability of software components within the system to be exchanged for others.
Personal tools