1- # 6. Quality Criteria {.page_break_before}
1+ # 6. Quality Criteria - Automation {.page_break_before}
22
33The following sections describe the quality conventions and best practices that apply to the
44development, operation and integration phases of a ** Service** with a production infrastructure for
@@ -9,7 +9,9 @@ The criteria in this document complements the criteria described in the "Softwar
99baseline" [ @https ://digital.csic.es/handle/10261/160086] , while following the same pragmatic DevOps
1010approach of automation.
1111
12- ## 6.1. Automated Deployment [ SvcQC.Dep] {#dep}
12+ ## 6.1. Deployment
13+
14+ ### 6.1.1. Automated Deployment [ SvcQC.Dep] {#dep}
1315
1416The automated deployment of ** Services** implies the use of code to install and configure them in
1517the target infrastructures. Infrastructure as Code (IaC) templates allow operations teams to treat
@@ -30,7 +32,9 @@ simplifies maintenance and enhances repeatability and reliability.
3032
3133 * ** [ SvcQC.Dep03.1] ** IaC (unit) tests ** MUST** be idempotent.
3234
33- ## 6.2. API Testing [ SvcQC.Api] {#api01}
35+ ## 6.2. Dynamic testing - Black box testing
36+
37+ ### 6.2.1. API Testing [ SvcQC.Api] {#api01}
3438
3539Web services commonly use application programming interfaces (APIs) to expose the available features
3640to external consumers, which can be either oriented to the end-user or suitable for
@@ -56,7 +60,7 @@ an API specification.
5660* ** [ SvcQC.Api03] ** API testing ** SHOULD** involve the use of test doubles, such as mock servers or
5761 stubs, that act as a validation layer for the incoming requests.
5862
59- ## 6.3 . Integration Testing [ SvcQC.Int]
63+ ### 6.2.2 . Integration Testing [ SvcQC.Int]
6064
6165Integration testing refers to the evaluation of the interactions among coupled ** Services** or parts
6266of a system that cooperate to achieve a given functionality.
@@ -73,11 +77,11 @@ of a system that cooperate to achieve a given functionality.
7377
7478* ** [ SvcQC.Int03] ** On lack of automation, ad-hoc pilot ** Service** infrastructures and/or local
7579 testbeds ** MAY** be used to cope with the integration testing requirements.
76-
80+
7781* ** [ SvcQC.Int04] ** In the presence of CI environments, integration tests ** SHOULD** be suitable for
7882 the automated testing.
7983
80- ## 6.4 . Functional tests [ SvcQC.Fun] {#fun}
84+ ### 6.2.3 . Functional tests [ SvcQC.Fun] {#fun}
8185
8286Functional testing is a type of black-box testing. It involves the verification of the ** Service**
8387identified functionality, based on requested requirements and agreed design specifications. This
@@ -99,7 +103,7 @@ exposes, leaving apart any internal design analysis or side-effects to external
99103* ** [ SvcQC.Fun03] ** Functional tests ** SHOULD** be provided by the developers of the underlying
100104 software.
101105
102- ## 6.5 . Performance tests [ SvcQC.Per]
106+ ### 6.2.4 . Performance tests [ SvcQC.Per]
103107
104108Performance testing verifies that the software meets the specified performance requirements and
105109assesses performance characteristics - for instance, capacity and response time
@@ -132,7 +136,7 @@ Elasticity is based on how quickly **Services** in an infrastructure are able to
132136* ** [ SvcQC.Per04] ** Elasticity testing ** MAY** be carried out to check the ** Service** ability to
133137 scale out or scale in, depending on its demand or workload.
134138
135- ## 6.6 . Security [ SvcQC.Sec] {#security}
139+ ## 6.2.5 . Security [ SvcQC.Sec] {#security}
136140
137141Security assessment is essential for any production ** Service** . While an effective implementation
138142of the security requirements applies to every stage in the software development life cycle (SDLC)
@@ -201,7 +205,7 @@ deployments.
201205 Assurance Requirements for Linux Application Container Deployments [ @doi :10.6028/NIST.IR.8176]
202206 ** MUST** be considered for this task.
203207
204- * ** [ SvcQC.Sec07] ** IaC testing, from [ SvcQC.Aud02 ] ( #dep ) criterion, ** MUST** cover the security
208+ * ** [ SvcQC.Sec07] ** IaC testing, from [ SvcQC.Dep02 ] ( #dep ) criterion, ** MUST** cover the security
205209 auditing of the IaC templates (_ SaC_ ) in order to assure the deployment of secured ** Services** .
206210 For all the third-party dependencies used in the IaC templates (including all kind of software
207211 artifacts, such as Linux packages or container-based images):
@@ -222,60 +226,3 @@ deployments.
222226 operation. Whenever they are required, the relevant files ** MUST** be documented.
223227
224228 * ** [ SvcQC.Sec07.6] ** World-readable files ** MUST NOT** contain passwords.
225-
226- ## 6.7. Documentation [ SvcQC.Doc]
227-
228- Documentation is an integral part of any Software or Service. For example, it describes how and what
229- users can use and interact with it, or how operators can deploy, configure and manage a given
230- Software or Service.
231-
232- * ** [ SvcQC.Doc01] ** Documentation ** MUST** be available online, easily findable and accessible.
233-
234- * ** [ SvcQC.Doc02] ** Documentation ** SHOULD** have a Persistent Identifier (PID).
235-
236- * ** [ SvcQC.Doc03] ** Documentation ** MUST** be version controlled.
237-
238- * ** [ SvcQC.Doc04] ** Documentation ** MUST** be updated on new ** Service** versions involving any
239- change in the installation, configuration or behavior of the ** Service** .
240-
241- * ** [ SvcQC.Doc05] ** Documentation ** MUST** be updated whenever reported as inaccurate or unclear.
242-
243- * ** [ SvcQC.Doc06] ** Documentation ** SHOULD** have a non-software license.
244-
245- * ** [ SvcQC.Doc07] ** Documentation ** MUST** be produced according to the target audience, varying
246- according to the ** Service** specification. The identified types of documentation and their
247- RECOMMENDED content are:
248-
249- * ** [ SvcQC.Doc07.1] ** Deployment and Administration:
250-
251- * Installation and configuration guides.
252-
253- * Service Reference Card, with the following RECOMMENDED content:
254-
255- * Brief functional description.
256-
257- * List of processes or daemons.
258-
259- * Init scripts and options.
260-
261- * List of configuration files, location and example or template.
262-
263- * Log files location and other useful audit information.
264-
265- * List of ports.
266-
267- * Service state information.
268-
269- * List of cron jobs.
270-
271- * Security information.
272-
273- * FAQs and troubleshooting.
274-
275- * ** [ SvcQC.Doc07.2] ** User:
276-
277- * Detailed User Guide for the ** Service** .
278-
279- * Public API documentation (if applicable).
280-
281- * Command-line (CLI) reference (if applicable).
0 commit comments