Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "EGI Verifier Guideline QC5"

From EGIWiki
Jump to navigation Jump to search
Line 1: Line 1:
{{Tech menubar}} {{Tech QA submenu}} {{TOC_right}}  
{{Tech menubar}} {{Tech QA submenu}} {{TOC_right}}  


== Objective  ==
The main objective of this guideline is to aid new SA2 verifiers to complete Verification process successfully.


The main objective of this guideline is to aid new SA2 verifiers to complete Verification process successfully. This guideline includes these topics:
== Verification Preconditions ==


*How to request and manage a new SA2 testbed machine.
When a new product is available, the TP has to follow the [[Software Provisioning Process]]. Once the software is correctly uploaded to the repository, the release enters into the verification phase. The requirements are that the TP has to provide all the necessary information to the verifier (QCV) so that the QCV can assess that the TP has tested in advance the quality of the software. Depending on the type of release, different actions will be taken by the QCV.
*How to handle product RT information and install new middleware.  
*How to use QC verification reports:
**Which QC tests must be checked.  
**How to fill QC reports and Executive Summaries.  
*When and how a product is rejected or accepted.
**Differences between critical and non critical bugs.
**Mandatory and Optional QCs.


<br>
The verification process starts when the following pre-conditions are met:
#RT ticket is in state '''Open'''.
#The RolloutProgress is set to '''Unverified'''.
#CommunicationStatus is '''OK'''.
#Owner is set to '''nobody'''.


== SA2 Verification Testbed  ==
If these conditions are reached then Verification process may be started.


Each released product '''MUST''' be installed in different machines. SA2 Verifiers should request a new virtual machine for verification test submitting an email to grid-admin(at)cesga.es. This email should include:
== Verification Start ==


*Subject: ''SA2 Verification Tesbed request.''  
Once the verification ticket meets the preconditions described above, the QCV must perform the following steps:
*Body:
# Set RT ticket '''Owner''' with the current QCV.
**''Verifier Name.''
# Set '''UMDRelease''' to the appropriate UMD Release (currently 1) and save the state.
**''Product name to verify.''  
# Changes RolloutProgress to '''In Verification''' to start the actual verification.
**''OS and hardware requirements (if necessary)''  
**''Verifier SSH public key (generated id_dsa.pub)''


Verification team will submit a confirmation email to connect to the new machine (public IP, hostname, etc).
== Verification Template ==


New VMs have a limited lifetime of 1 week, after this period the VM is '''destroyed'''.<br>
Each product has a specific template that includes all QC that the product must comply with. Templates are available at [https://documents.egi.eu/document/417 Verification Reports and Executive Summary templates] and are created according to the  [https://documents.egi.eu/document/418 QC products mapping]. These documents are updated if new UMD Quality Criteria is released.


<br>
The fields to fill in the template are:
* '''Accepted''':
** Y, when the product meets the criteria
** N, when the product does not meet the criteria,
** NA, when the criteria is not applicable for the product (e.g. API documentation for products without a public API)


== Middleware Installation  ==
* '''Tested''':
** TP, when the criteria was tested by the Technology Provider and the validator trusts the results of the tests.
** or VLD, when the criteria was tested by the validation team


Verifiers should be able to connect new created VM machines to start verification process, these machines include:
* '''Comments''': include here any relevant comments or links to more information for the specified criteria.


*NTP configuration.
== Criteria Verification ==
*EPEL and EGI-trustanchors repositories.
*Host certificate (hostcert.pem and hostkey.pem)


<br>
=== Level of Testing  ===
The product in verification '''must''' be installed and tested in the [[EGI Verification Testbed]], however the verification process is different for UMD '''Minor''' or '''Major''' releases:


Verifier must install a new repo for each product, this information is available at RT ticket field:
*Major releases (may not be backwards compatible):
** Verifier '''MUST''' actively assess all assigned QCs (executing specific tests, reading available documentation, etc).
** Product installation from scratch (or upgrade if It's supported by the product).


*<u><span style="text-decoration: underline;">Custom Fields-&gt;</span>RepositoryURL</u>
* Minor releases (backwards compatible):
** Verifiers only checks QCs affected by update changes.
** Package update installation and verification.
** Product installation from scratch.


Create a new repo file into <u></u>/etc/yum.repos.d, as example:
=== Holding Verification ===


*<code>cd /etc/yum.repos.d</code>
SOME WORDS HERE ABOUT THE PROCESS OF VERIFICATION HOLDING
*<code>vi test_sa2.repo</code>


''[arc-ce] ''
=== Product Acceptance ===


''name=arc-ce ''  
QCs tests are '''Mandatory''' (M) or '''Optional''' (O).
 
''baseurl=http://admin-repo.egi.eu/sw/unverified/emitest.arc-ce.sl5.x86_64/1/0/0/ ''  
 
''enabled=1''  


''#To use priorities you must have yum-priorities installed''  
* A product is '''REJECTED''' if it fails the installation or configuration process.
* A product is '''REJECTED''' if it fails '''ANY''' Mandatory QC.
* A product is '''VERIFIED''' if it pass '''ALL''' assigned QCs.
* A product is '''VERIFIED''' if it fails '''ANY''' Optional QC.


''priority=30''
<pre>
 
I have the impression that mandatory/optional mixes two aspects of the verification:
*<code>yum update</code>
 
Now verifier must install the product metapackage which is included into RT '''release.xml''' file (''Custom Fields-&gt;ReleaseMetadata''). An example: [https://rt.egi.eu/rt/Download/CustomFieldValue/8712/release-voms-ppa.xml rt.egi.eu/rt/Download/CustomFieldValue/8712/release-voms-ppa.xml]. In this example ''emi-voms-mysql'' is the package required for VOMS-Mysql product installation.
 
*<code>yum install emi-voms-mysql</code>
 
Verifier must check missing dependencies or packages. If any issue is found installing the new middleware the Verifier must open a GGUS ticket directly to product Technology Provider.
 
<br>
 
== QC Verification Reports  ==
 
RT workflow and Verification Templates links are available in: [https://wiki.egi.eu/wiki/EGI_Quality_Criteria_Verification Quality Criteria Verification]. First of all verifiers must check QC service mapping to know which test must be verified for each product. This service mapping is available here [https://documents.egi.eu/document/418 QC Verification service mapping] and Verification/Executive Summary templates are available here: [https://documents.egi.eu/document/417 QC Verification Templates].
 
Verifiers must fill all required fields for each product and write a Verification process summary into Executive Summary, this summary should include:
 
*A short summary of the installation and configuration process: Installation and configuration were successful?, If not explain any issue or bug found. If the product was rejected explain why.
*If its necessary Verifiers should include a comment for StageRollout: Configuration changes or minor issues found verifying the product.
*If a new QC is necessary and is not included, Verifiers must write a comment to SA2.2 to change current QC.
 
<br>
 
== Acceptance or Rejection  ==
 
QCs tests are '''Mandatory''' (M) or '''Optional''' (O).
 
*A product is '''REJECTED''' if it fails the installation or configuration process.
*A product is '''REJECTED''' if it fails '''ANY''' Mandatory QC.
*A product is '''VERIFIED''' if it pass '''ALL''' assigned QCs.
*A product is '''VERIFIED''' if it fails '''ANY''' Optional QC.
<pre>I have the impression that mandatory/optional mixes two aspects of the verification:
a) The verifier's obligation to execute a QC test (mandatory vs. optional), and
a) The verifier's obligation to execute a QC test (mandatory vs. optional), and
b) The verification outcome when a fault is detected (critical vs. non-critical)
b) The verification outcome when a fault is detected (critical vs. non-critical)
Line 118: Line 90:


For all cases 1 - 3 the criticality determines the outcome of the verification based on detected failures.
For all cases 1 - 3 the criticality determines the outcome of the verification based on detected failures.
</pre>  
</pre>  
<br>
=== Minor or Major releases  ===
QC verification is different for UMD '''Minor''' or '''Major''' releases:
*<u>Major releases (not backwards compatible): </u>
**Verifier '''MUST''' actively assess all assigned QCs in all middleware products. (executing specific tests, read available documentation, etc).
**Product installation from scratch (or upgrade if It's supported by the product).
<br>
*<u>Minor releases (backwards compatible): </u>
**Verifiers only checks QCs affected by update changes.
**Package update installation and verification.
**Product installation from scratch.<br>
<br>
=== Verifiers List  ===


Verifiers list is updated for each UMD release and it is available here: [https://documents.egi.eu/document/514 SA2.3 Verifiers List]
== Verification Summary ==


<br>
When the Verification template is finished an Executive Summary is created, following the template available at  [https://documents.egi.eu/document/417 Verification Reports and Executive Summary templates]. This document includes:
* A summary of tests failed and passed (Critical and non critical).
* A list of comments for other teams involved in the Software Provisioning process (SR, QC, )


=== SA2 UMD1.0 Testbed ===
== Publication of Verification Reports ==


*Services list:
In order to store the verification reports, a new space must be created in the [https://documents.egi.eu/secure/DocumentAddForm?mode=add DocumentDB]. The new document must comply with the following information:
* '''Title''': ''QC Verification Report: &lt;PRODUCT_NAME&gt;-&lt;VERSION&gt;''.
* Files to include:
** First file field is used to upload Executive Summary doc. Executive Summary file names should have this nomenclature: ''QC_Verification--Executive_Summary_&lt;PRODUCT_NAME&gt;_&lt;VERSION&gt;.doc''.
**Second file filed is used to upload QC Verification report. Verification report file names should have this nomenclature: ''QC_Verification--Report_&lt;PRUDUCT_NAME&gt;_&lt;VERSION&gt;.doc ''.
* '''Keywords''' field: Space separated keyword names, must include ''Quality'', ''Criteria'', ''Verification'', etc.
* '''Media type''' must be set to '''Document'''.
* '''status''' must be set to '''FINAL'''.
* '''View''' must be set to '''public'''.
* '''Modify''' should be set to '''inspire-SA2'''.
* '''TOPICS''' space field must be set to ''Software Provisioning Verification Reports'' and ''WP5''.


{| cellspacing="0" cellpadding="3" border="1" style="border: 1px solid black;" class="wikitable sortable"
The generated document DB link must be included into the '''QualityCriteriaVerificationReport''' field of the RT ticket of the verification.
|- align="left" style="background: none repeat scroll 0% 0% Lightgray;"
! Service
! Host
|-
| topbdii 
| topbdii02.ncg.ingrid.pt '''(Verified)'''
|-
| site bdii 
| sbdii02.ncg.ingrid.pt '''(Verified)'''
|-
| voms server 
| voms02.ncg.ingrid.pt '''(Verified)'''
|-
| arc-ce
| test03.egi.cesga.es
|-
| arc info
| test04.egi.cesga.es
|-
| WMS
| tst04.ific.uv.es
|-
| LB
| tst05.ific.uv.es
|-
| UI
| test13.egi.cesga.es '''(Verified)'''
|-
| CREAM-CE/Torque
| test06.egi.cesga.es
|-
| WN/Torque
| test14.egi.cesga.es
|-
| APEL Publisher
| test07.egi.cesga.es '''(Verified)'''
|-
| DPM
| test08.egi.cesga.es
|-
| glite-MPI
| test15.egi.cesga.es
|-
| LFC
| test09.egi.cesga.es
|}


<br>
== End of Verification ==


*VO Configuration:
Once the reports are stored in the doc DB and linked in the RT ticket, the result of the verification must be set by changing the ''RolloutProgress'' field of the ticket. If the product met is ''accepted'' then change this field to the ''"StageRollout"'' value. This will cause the Rollout teams to continue with the software provisioning process. If the product is ''not accepted'', then change the value to ''"Rejected"'', causing the process to stop.
**'''ops.vo.ibergrid.eu''' endpoint: https://voms02.ncg.ingrid.pt:8443/voms/ops.vo.ibergrid.eu
**'''iber.vo.ibergrid.eu''' endpoint: https://voms02.ncg.ingrid.pt:8443/voms/iber.vo.ibergrid.eu

Revision as of 18:35, 2 June 2011

Technology Software Component Delivery Software Provisioning UMD Middleware Cloud Middleware Distribution Containers Distribution Technology Glossary


Quality Assurance | Quality Criteria Definition | Quality Criteria Dissemination | Quality Criteria Verification | Verifier Guideline | Verification Testbed | Glossary





The main objective of this guideline is to aid new SA2 verifiers to complete Verification process successfully.

Verification Preconditions

When a new product is available, the TP has to follow the Software Provisioning Process. Once the software is correctly uploaded to the repository, the release enters into the verification phase. The requirements are that the TP has to provide all the necessary information to the verifier (QCV) so that the QCV can assess that the TP has tested in advance the quality of the software. Depending on the type of release, different actions will be taken by the QCV.

The verification process starts when the following pre-conditions are met:

  1. RT ticket is in state Open.
  2. The RolloutProgress is set to Unverified.
  3. CommunicationStatus is OK.
  4. Owner is set to nobody.

If these conditions are reached then Verification process may be started.

Verification Start

Once the verification ticket meets the preconditions described above, the QCV must perform the following steps:

  1. Set RT ticket Owner with the current QCV.
  2. Set UMDRelease to the appropriate UMD Release (currently 1) and save the state.
  3. Changes RolloutProgress to In Verification to start the actual verification.

Verification Template

Each product has a specific template that includes all QC that the product must comply with. Templates are available at Verification Reports and Executive Summary templates and are created according to the QC products mapping. These documents are updated if new UMD Quality Criteria is released.

The fields to fill in the template are:

  • Accepted:
    • Y, when the product meets the criteria
    • N, when the product does not meet the criteria,
    • NA, when the criteria is not applicable for the product (e.g. API documentation for products without a public API)
  • Tested:
    • TP, when the criteria was tested by the Technology Provider and the validator trusts the results of the tests.
    • or VLD, when the criteria was tested by the validation team
  • Comments: include here any relevant comments or links to more information for the specified criteria.

Criteria Verification

Level of Testing

The product in verification must be installed and tested in the EGI Verification Testbed, however the verification process is different for UMD Minor or Major releases:

  • Major releases (may not be backwards compatible):
    • Verifier MUST actively assess all assigned QCs (executing specific tests, reading available documentation, etc).
    • Product installation from scratch (or upgrade if It's supported by the product).
  • Minor releases (backwards compatible):
    • Verifiers only checks QCs affected by update changes.
    • Package update installation and verification.
    • Product installation from scratch.

Holding Verification

SOME WORDS HERE ABOUT THE PROCESS OF VERIFICATION HOLDING

Product Acceptance

QCs tests are Mandatory (M) or Optional (O).

  • A product is REJECTED if it fails the installation or configuration process.
  • A product is REJECTED if it fails ANY Mandatory QC.
  • A product is VERIFIED if it pass ALL assigned QCs.
  • A product is VERIFIED if it fails ANY Optional QC.
I have the impression that mandatory/optional mixes two aspects of the verification:
a) The verifier's obligation to execute a QC test (mandatory vs. optional), and
b) The verification outcome when a fault is detected (critical vs. non-critical)

Assuming the following definition for CRITICAL/NON-CRITICAL:
A CRITICAL Quality Criterion MUST will cause immediate and unconditional rejection of the tested product if a failure of any type is detected during testing. 
A NON-CRITICAL Quality Criterion may still lead to acceptance of the tested product if a documented(!) workaround to avoid or mitigate the failure exists.

And using the definition of MANDATORY/OPTIONAL:
A MANDATORY Quality Criterion must be assessed or verified for any software release supplied by a Technology Provider. An OPTIONAL Quality Criterion may be
assessed or tested by the verifier.
 
With the definition of ASSESSING/TESTING as:
"A verifier is ASSESSING a Quality Criterion by analysing documentation (release notes, known bugs list, documented changes, test results, etc.) supplied 
by the Technology Provider without actual independent test execution. A Quality Criteron is TESTED if the verifier independently executes the test associated 
to the Quality Criterion using the same sources of documentation, but an test infrastucture independent from the Technology Provider."

Those aspects may provide you with a matrix guide for verifiers to produce reliable and fair outcomes:
'''1) MANDATORY and CRITICAL'''''' QC''': '''MUST''' be assessed by the verifier, and '''MUST''' be tested by the verifier for any software release (whether major, minor or revision release.
'''2) MANDATORY and NON-CRITICAL QC''': '''MUST''' be assessed for minor and revision releases, '''MAY''' be tested for minor releases (depending on other circumstances) a '''MUST''' be tested for major releases.  
'''3) OPTIONAL and NON-CRITICAL QC:''' '''MAY''' be assessed for any release, and '''MAY''' be tested for any release, if time permits.
'''4) OPTIONAL and CRITICAL QC''': This combination does not make sense.

For all cases 1 - 3 the criticality determines the outcome of the verification based on detected failures.

Verification Summary

When the Verification template is finished an Executive Summary is created, following the template available at Verification Reports and Executive Summary templates. This document includes:

  • A summary of tests failed and passed (Critical and non critical).
  • A list of comments for other teams involved in the Software Provisioning process (SR, QC, )

Publication of Verification Reports

In order to store the verification reports, a new space must be created in the DocumentDB. The new document must comply with the following information:

  • Title: QC Verification Report: <PRODUCT_NAME>-<VERSION>.
  • Files to include:
    • First file field is used to upload Executive Summary doc. Executive Summary file names should have this nomenclature: QC_Verification--Executive_Summary_<PRODUCT_NAME>_<VERSION>.doc.
    • Second file filed is used to upload QC Verification report. Verification report file names should have this nomenclature: QC_Verification--Report_<PRUDUCT_NAME>_<VERSION>.doc .
  • Keywords field: Space separated keyword names, must include Quality, Criteria, Verification, etc.
  • Media type must be set to Document.
  • status must be set to FINAL.
  • View must be set to public.
  • Modify should be set to inspire-SA2.
  • TOPICS space field must be set to Software Provisioning Verification Reports and WP5.

The generated document DB link must be included into the QualityCriteriaVerificationReport field of the RT ticket of the verification.

End of Verification

Once the reports are stored in the doc DB and linked in the RT ticket, the result of the verification must be set by changing the RolloutProgress field of the ticket. If the product met is accepted then change this field to the "StageRollout" value. This will cause the Rollout teams to continue with the software provisioning process. If the product is not accepted, then change the value to "Rejected", causing the process to stop.