1
- # 6. Quality Criteria {.page_break_before}
1
+ # 6. Quality Criteria - Automation {.page_break_before}
2
2
3
3
The following sections describe the quality conventions and best practices that apply to the
4
4
development, 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
9
9
baseline" [ @https ://digital.csic.es/handle/10261/160086] , while following the same pragmatic DevOps
10
10
approach of automation.
11
11
12
- ## 6.1. Automated Deployment [ SvcQC.Dep] {#dep}
12
+ ## 6.1. Deployment
13
+
14
+ ### 6.1.1. Automated Deployment [ SvcQC.Dep] {#dep}
13
15
14
16
The automated deployment of ** Services** implies the use of code to install and configure them in
15
17
the target infrastructures. Infrastructure as Code (IaC) templates allow operations teams to treat
@@ -30,7 +32,9 @@ simplifies maintenance and enhances repeatability and reliability.
30
32
31
33
* ** [ SvcQC.Dep03.1] ** IaC (unit) tests ** MUST** be idempotent.
32
34
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}
34
38
35
39
Web services commonly use application programming interfaces (APIs) to expose the available features
36
40
to external consumers, which can be either oriented to the end-user or suitable for
@@ -56,7 +60,7 @@ an API specification.
56
60
* ** [ SvcQC.Api03] ** API testing ** SHOULD** involve the use of test doubles, such as mock servers or
57
61
stubs, that act as a validation layer for the incoming requests.
58
62
59
- ## 6.3 . Integration Testing [ SvcQC.Int]
63
+ ### 6.2.2 . Integration Testing [ SvcQC.Int]
60
64
61
65
Integration testing refers to the evaluation of the interactions among coupled ** Services** or parts
62
66
of a system that cooperate to achieve a given functionality.
@@ -73,11 +77,11 @@ of a system that cooperate to achieve a given functionality.
73
77
74
78
* ** [ SvcQC.Int03] ** On lack of automation, ad-hoc pilot ** Service** infrastructures and/or local
75
79
testbeds ** MAY** be used to cope with the integration testing requirements.
76
-
80
+
77
81
* ** [ SvcQC.Int04] ** In the presence of CI environments, integration tests ** SHOULD** be suitable for
78
82
the automated testing.
79
83
80
- ## 6.4 . Functional tests [ SvcQC.Fun] {#fun}
84
+ ### 6.2.3 . Functional tests [ SvcQC.Fun] {#fun}
81
85
82
86
Functional testing is a type of black-box testing. It involves the verification of the ** Service**
83
87
identified 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
99
103
* ** [ SvcQC.Fun03] ** Functional tests ** SHOULD** be provided by the developers of the underlying
100
104
software.
101
105
102
- ## 6.5 . Performance tests [ SvcQC.Per]
106
+ ### 6.2.4 . Performance tests [ SvcQC.Per]
103
107
104
108
Performance testing verifies that the software meets the specified performance requirements and
105
109
assesses 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
132
136
* ** [ SvcQC.Per04] ** Elasticity testing ** MAY** be carried out to check the ** Service** ability to
133
137
scale out or scale in, depending on its demand or workload.
134
138
135
- ## 6.6 . Security [ SvcQC.Sec] {#security}
139
+ ## 6.2.5 . Security [ SvcQC.Sec] {#security}
136
140
137
141
Security assessment is essential for any production ** Service** . While an effective implementation
138
142
of the security requirements applies to every stage in the software development life cycle (SDLC)
@@ -201,7 +205,7 @@ deployments.
201
205
Assurance Requirements for Linux Application Container Deployments [ @doi :10.6028/NIST.IR.8176]
202
206
** MUST** be considered for this task.
203
207
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
205
209
auditing of the IaC templates (_ SaC_ ) in order to assure the deployment of secured ** Services** .
206
210
For all the third-party dependencies used in the IaC templates (including all kind of software
207
211
artifacts, such as Linux packages or container-based images):
@@ -222,60 +226,3 @@ deployments.
222
226
operation. Whenever they are required, the relevant files ** MUST** be documented.
223
227
224
228
* ** [ 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