Thursday, September 26, 2013

Software Verification and Validation


Software testing is used in association with verification and validation:
· Verification: Have we built the software right? (i.e., does it match the specification).

· Validation: Have we built the right software? (i.e., is this what the customer wants).

The terms verification and validation are commonly used interchangeably in the industry; it is also common to see these two terms incorrectly defined. According to the IEEE Standard Glossary of Software Engineering Terminology:

Verification is the process of evaluating a system or component to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.

Use – To identify defects in the product early in the life cycle

 

Validation is the process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements.

 

Verification & Method of Verification

Verification

Verification is a quality assurance process intended to check that a product, service, or system (or portion thereof, or set thereof) meets a set of initial design requirements, specifications, and regulations. In the development phase, verification procedures involve performing special tests to model or simulate a portion, or the entirety, of a product, service or system, then performing a review or analysis of the modeling results. In the post-development phase, verification procedures involve regularly repeating tests devised specifically to ensure that the product, service, or system continues to meet the initial design requirements, specifications, and regulations as time progresses It is a process that is used to evaluate whether a product, service, or system complies with regulations, specifications, or conditions imposed at the start of a development phase. Verification can be in development, scale-up, or production. This is often an internal process.

 

Validation & Level of Validation

Validation

Validation is a quality control process intended to check that development and verification procedures for a product, service, or system (or portion thereof, or set thereof) result in a product, service, or system (or portion thereof, or set thereof) that meets initial requirements, specifications, and regulations. For a new development flow or verification flow, validation procedures may involve modeling either flow and using simulations to predict faults or gaps that might lead to invalid or incomplete verification or development of a product, service, or system (or portion thereof, or set thereof). A set of validation requirements, specifications, and regulations may then be used as a basis for qualifying a development flow or verification flow for a product, service, or system (or portion thereof, or set thereof). Additional validation procedures also include those that are designed specifically to ensure that modifications made to an existing qualified development flow or verification flow will have the effect of producing a product, service, or system (or portion thereof, or set thereof) that meets the initial design requirements, specifications, and regulations; these validations help to keep the flow qualified. It is a process of establishing evidence that provides a high degree of assurance that a product, service, or system accomplishes its intended requirements. This often involves acceptance of fitness for purpose with end users and other product stakeholders. This is often an external process.

It is sometimes said that validation can be expressed by the query "Are you building the right thing?" and verification by "Are you building it right?"  "Building the right thing" refers back to the user's needs, while "building it right" checks that the specifications are correctly implemented by the system. In some contexts, it is required to have written requirements for both as well as formal procedures or protocols for determining compliance

 

 

Level of Validation

A level of validation, for the purposes of this guidance, is a numeric code indicating the degree of confidence in the data. These levels provide some commonality among data collected and quality controlled by different agencies, and help ensure that all data have received a comparable level of validation. Various data validation "levels" that apply to air quality and meteorological data have been defined by Mueller and Watson. Basically, four levels of data validation have been defined:

·   Level 0 data validation is essentially raw data obtained directly from the data acquisition systems in the field. Level 0 data have been reduced and possibly reformatted, but are unedited and unreviewed. These data have not received any adjustments for known biases or problems that may have been identified during preventive maintenance checks or audits. These data should be used to monitor the instrument operations on a frequent basis (e.g., daily), but should not be used for regulatory purposes until they receive at least Level 1 validation.

·   Level 1 data validation involves quantitative and qualitative reviews for accuracy, completeness, and internal consistency. Quantitative checks are performed by software screening programs (see Section 8.7.3.2) and qualitative checks are performed by meteorologists or trained personnel who manually review the data for outliers and problems. Quality control flags, consisting of numbers or letters, are assigned to each datum to indicate its quality. A list of suggested quality control codes is given in Table 8-3. Data are only considered at Level 1 after final audit reports have been issued and any adjustments, changes, or modifications to the data have been made.

·   Level 2 data validation involves comparisons with other independent data sets. This includes, for example, intercom paring collocated measurements or making comparisons with other upper-air measurement systems.

·    Level 3 validation involves a more detailed analysis when inconsistencies in analysis and modeling results are found to be caused by measurement errors.

 

Validation Procedures

All necessary supporting material, such as audit reports and any site logs, should be readily available for the level 1 validation. Access to a daily weather archive should be provided for use in relating suspect data with to local and regional meteorological conditions. Any problem data, such as data flagged in an audit, should be corrected prior to the level 1 data validation. The validation procedures described in the following include screening, manual review, and comparison.

Table
Suggested quality control (QC) codes for meteorological data Code Meaning Description
Code
Meaning
Description
0
Valid

Observations that were judged accurate within the performance limits of the instrument
Observations that required additional processing because the original values were suspect, invalid, or missing.
 
1
Estimated
Estimated data may be computed from patterns or trends in the data (e.g., via interpolation), or they may be based on the meteorological judgment of the reviewer.
2
Calibration
applied
Observations that were corrected using a known, measured  quantity (e.g., instrument offsets measured during audits)
3
Unassigned
Reserved for future use
4
Unassigned
Reserved for future use
5
Unassigned
Reserved for future use
6
Failed automatic QC check
 Observations that were flagged with this QC code did not pass screening criteria set in automatic QC software.
7
Suspect
Observations that, in the judgment of the reviewer, were in error because their values violated reasonable physical criteria or did not exhibit reasonable consistency, but a specific cause of the problem was not identified (e.g., excessive wind shear in an adiabatic boundary layer). Additional review using other, independent data sets (Level 2 validation) should be performed to determine the final validity of suspect observations.
8
Invalid
Observations that were  judged inaccurate or in error,  and the cause  of the inaccuracy or error was known (e.g., wind contaminated by ground clutter or a temperature lapse rate that exceeded the auto convective  lapse rate). Besides the QC flag signifying invalid data, the data values themselves should be assigned invalid indicators.
9
Missing
Observations data were not collected.

 

Data Screening

Screening procedures generally include comparisons of measured values to upper and lower limits; these may be physical limits, such as an instrument threshold, or may be established based on experience or historical data. Other types of procedures employed in screening include assessments based on the rate of change of a variable (in these data that change too rapidly or not at all are flagged as suspect) and assessments based on known physical principles relating two or more variables (e.g., the dew point should never exceed the dry-bulb temperature).

Screening may be regarded as an iterative process in which range checks and other screening criteria are revised as necessary based on experience. For example, an initial QA pass of a data set using default criteria may flag values which upon further investigation are determined to be valid for the particular site. In such cases, one or more follow-up QA passes using revised criteria may be necessary to clearly segregate valid and invalid data. Suggested screening criteria are listed in Table 8-4. Data which fail the screening test should be flagged for further investigation.

 

 

Manual Review

The manual review should result in a decision to accept or reject data flagged by the screening process. In addition, manual review may help to identify outliers that were missed by screening. This review should be performed by someone with the necessary training in meteorological monitoring.

In the typical manual review, data should be scanned to determine if the reported values are reasonable and in the proper format. Periods of missing data should be noted and investigated. Data should also be evaluated for temporal consistency. This is particularly useful for identifying outliers in hourly data. Outliers should be reviewed with reference to local meteorological conditions. Data are considered to be at Level 1 validation following the manual review and can be used for modeling and analysis.

Comparison Program

After the data have passed through the screening program, they should be evaluated in a comparison program. Randomly selected values should be manually compared with other available, reliable data (such as, data obtained from the nearest National Weather Service observing station). At least one hour out of every 10 days should be randomly selected. To account for hour-to-hour variability and the spatial displacement of the NWS station, a block of several hours may be more desirable. All data selected should be checked against corresponding measurements at the nearby station(s). In addition, monthly average values should be compared with climatological normals, as determined by the National Weather Service from records over a 30-year period. If discrepancies are found which can not be explained by the geographic difference in the measurement locations or by regional climatic variations, the data should be flagged as questionable.

 

Table
Suggested Data Screening Criteria
Variable
 Screening Criteria: flag data if the value
Wind Speed
- is less than zero or greater than 25 m/s
- does not vary by more than 0.1 m/s for 3 consecutive
  hours
- does not vary by more than 0.5 m/s for 12 consecutive
  hours
Wind Direction
- is less than zero or greater than 360
- is less tan zero or greater than 1 degree for more than 3
  consecutive hours
- does not vary by more than 10 degrees for 18 consecutive
  hours
Temperature
- is greater than the local record high
- is less than the local record low
  (The above  limit could be applied on a monthly basis)
- is greater than a 5 °C change from the previous hour
- does not vary by more than 0.5 °C form 12 consecutive
  hours
Temperature Difference
- is greater than 0.1 °C/m during the daytime
- is less than -0.1 °C/m during the night time
- is greater than 5.0 °C or less tan -3.0 °C
Dew Point Temperature
- is greater than the  ambient temperature for the given time
  period
- is greater than a 5 °C change form the previous hour
- does not vary by more than 0.5 °C for 12 consecutive hours
- equals the ambeint temperature for 12 consecutive hours
Precipitation
- is greater than 25 mm in one hour
- is greater than 100 mm in 24 hours
- is less than 50 mm in three moths
  (The above values can be adjusted based on local climate)
Pressure
- is greater than 1060 mb (sea level)
- is less than 940 mb (sea level)
  (The above values should be adjusted for elevations other
  than sea level.)
- changes by more than 6 mb in three hours
Radiation
- is greater than zero at night
- is greater than the maximum possible for th date and
  latitude.

 

Further Evaluations

Any data which are flagged by the screening program or the comparison program should be evaluated by personnel with meteorological expertise. Decisions must be made to either accept the flagged data, or discard and replace it with back-up or interpolated data, or data from a nearby representative monitoring station (see Section 1). Any changes in the data due to the validation process should be documented as to the reasons for the change. If problems in the monitoring system are identified, corrective actions should also be documented. Any edited data should continue to be flagged so that its reliability can be considered in the interpretation of the results of any modeling analysis which employs the data.

 

 

Validation Methods

Allowed Character Checks

Checks that ascertain that only expected characters are present in a field. For example a numeric field may only allow the digits 0-9, the decimal point and perhaps a minus sign or commas. A text field such as a personal name might disallow characters such as< and >, as they could be evidence of a markup based security attack. An e-mail address might require exactly one @ sign and various other structural details. Regular expressions effective ways of implementing such checks. (See also data type checks below)

Batch Totals

Checks for missing records. Numerical fields may be added together for all records in a batch. The batch total is entered and the computer checks that the total is correct, e.g., add the 'Total Cost' field of a number of transactions together.

Cardinality Check

Checks that record has a valid number of related records. For example if Contact record classified as a Customer it must have at least one associated Order (Cardinality > 0). If order does not exist for a "customer" record then it must be either changed to "seed" or the order must be created. This type of rule can be complicated by additional conditions. For example if contact record in Payroll database is marked as "former employee", then this record must not have any associated salary payments after the date on which employee left organization (Cardinality = 0).

Check Digits

Used for numerical data. An extra digit is added to a number which is calculated from the digits. The computer checks this calculation when data are entered. For example the last digit of an ISBN for a book is a check digit calculated modulus

Consistency Checks

Checks fields to ensure data in these fields corresponds, e.g., If Title = "Mr.", then Gender = "M".

Control Totals

This is a total done on one or more numeric fields which appears in every record. This is a meaningful total, e.g., add the total payment for a number of Customers.

Cross-System Consistency Checks

Compares data in different systems to ensure it is consistent, e.g., The address for the customer with the same id is the same in both systems. The data may be represented differently in different systems and may need to be transformed to a common format to be compared, e.g., one system may store customer name in a single Name field as 'Doe, John Q', while another in three different fields: First_Name (John), Last_Name (Doe) and Middle_Name (Quality); to compare the two, the validation engine would have to transform data from the second system to match the data from the first, for example, using SQL: Last_Name || ', ' || First_Name || substr(Middle_Name, 1, 1) would convert the data from the second system to look like the data from the first 'Doe, John Q'

Data Type Checks

Checks the data type of the input and give an error message if the input data does not match with the chosen data type, e.g., In an input box accepting numeric data, if the letter 'O' was typed instead of the number zero, an error message would appear.

File Existence Check

Checks that a file with a specified name exists. This check is essential for programs that use file handling.

Format or Picture Check

Checks that the data is in a specified format (template), e.g., dates have to be in the format DD/MM/YYYY.

Regular expressions should be considered for this type of validation.

Hash Totals

This is just a batch total done on one or more numeric fields which appears in every record. This is a meaningless total, e.g., add the Telephone Numbers together for a number of Customers.

Limit Check

Unlike range checks, data is checked for one limit only, upper OR lower, e.g., data should not be greater than 2 (<=2).

Logic Check

Checks that an input does not yield a logical error, e.g., an input value should not be 0 when there will be a number that divides it somewhere in a program.

Presence Check

Checks that important data are actually present and have not been missed out, e.g., customers may be required to have their telephone numbers listed.

Range Check

Checks that the data lie within a specified range of values, e.g., the month of a person's date of birth should lie between 1 and 12.

Referential Integrity

In modern Relational database values in two tables can be linked through foreign key and primary key. If values in the primary key field are not constrained by database internal mechanism, then they should be validated. Validation of the foreign key field checks that referencing table must always refer to a valid row in the referenced table.

Spelling and Grammar Check

Looks for spelling and grammatical errors.

Uniqueness Check

Checks that each value is unique. This can be applied to several fields (i.e. Address, First Name, Last Name).

Table Look Up Check

A table look up check takes the entered data item and compares it to a valid list of entries that are stored in a database table.

 

 

 

No comments:

Post a Comment