@@ -52,10 +52,10 @@ functionality.
52
52
53
53
* ** [ SvcQC.Int01] ** Whenever a new functionality is involved, integration
54
54
testing MUST guarantee the operation of any previously-working interaction
55
- with external ** Services** . [ SQA-QC.Int01]
55
+ with external ** Services** . [ SQA-QC.Int01] .
56
56
* When using APIs, contract testing MUST detect any disruption in the
57
57
communication between provider and consumer endpoints, through the validation
58
- of the API specification [ SvcQC.Api01]
58
+ of the API specification [ SvcQC.Api01] .
59
59
60
60
* ** [ SvcQC.Int02] ** Integration testing SHOULD be automated.
61
61
@@ -74,14 +74,14 @@ design analysis or side-effects to external systems.
74
74
** Service** claims to provide. [ SQA-QC.Fun01] .
75
75
* ** [ SvcQC.Fun01.1] ** When using APIs, contract testing MUST detect any
76
76
disruption in the features exposed by the provider to the consumer, through
77
- the validation of the API specification. [ SvcQC.Api01]
77
+ the validation of the API specification. [ SvcQC.Api01] .
78
78
* ** [ SvcQC.Fun01.2] ** Functional tests SHOULD include the Web interface of
79
79
the ** Service** .
80
80
81
81
* ** [ SvcQC.Fun02] ** Functional tests SHOULD be checked automatically.
82
82
83
- * ** [ SvcQC.Fun03] ** Functional tests SHOULD be provided by the developers of the underlying
84
- software. [ SQA-QC.Fun04] .
83
+ * ** [ SvcQC.Fun03] ** Functional tests SHOULD be provided by the developers
84
+ of the underlying software. [ SQA-QC.Fun04] .
85
85
86
86
### Performace tests [ SvcQC.Per]
87
87
@@ -121,6 +121,10 @@ to variable demand or workload for those service(s) [@doi:10.1186/s13677-019-013
121
121
122
122
### Documentation [ SvcQC.Doc]
123
123
124
+ Documentation is an integral part of any Software or Service. For example,
125
+ it describes how and what users can use and interact with it, or how operators can
126
+ deploy, configure and manage a given Software or Service.
127
+
124
128
* ** [ SvcQC.Doc01] ** Documentation MUST be available online, easily
125
129
findable and accessible. [ SQA-QC.Doc03] .
126
130
@@ -159,23 +163,6 @@ The identified types of documentation and their RECOMMENDED content are:
159
163
* Public API documentation (if applicable).
160
164
* Command-line (CLI) reference (if applicable).
161
165
162
- ### Policies [ SvcQC.Pol]
163
-
164
- * ** [ SvcQC.Pol01] ** The ** Service** MUST include the following policy documents:
165
- * ** [ SvcQC.Pol01.1] ** Acceptable Usage Policy (AUP): Is a set of rules applied
166
- by the owner, creator or administrator of a network, website, or service, that
167
- restrict the ways in which the network, website or system may be used and sets
168
- guidelines as to how it should be used. The AUP can also be referred as: Acceptable
169
- Use Policy or Fair Use Policy,
170
- * ** [ SvcQC.Pol01.2] ** Access Policy or Terms of Use: represent a binding legal
171
- contract between the users (and/or costumers), and the Provider of the ** Service** .
172
- The Access Policy mandates the users (and/or costumers) access to and the use of
173
- the Provider’s ** Service** .
174
- * ** [ SvcQC.Pol01.3] ** Privacy Policy: Data privacy statement informing the users
175
- (and/or costumers), about which personal data is collected and processed when they
176
- use and interact with the ** Service** . It states which rights the users (and/or costumers)
177
- have regarding the processing of their data.
178
-
179
166
### Security [ SvcQC.Sec]
180
167
181
168
Security assessment is essential for any production ** Service** . While an
@@ -243,46 +230,49 @@ good practices.
243
230
244
231
* ** [ SvcQC.Sec07] ** IaC testing, from [ SvcQC.Aud02] criterion, MUST cover the
245
232
security auditing of the IaC templates (aka _ Security as Code_ or _ SaC_ ) in
246
- order to assure the deployment of secured ** Services** .
247
- * For all the third-party dependencies used in the IaC templates (including
248
- all kind of software artefacts, such as Linux packages or container-based
249
- images):
250
- * ** [ SvcQC.Sec07.1] ** SaC MUST perform vulnerability scanning of the
251
- artefact versions in use.
252
- * ** [ SvcQC.Sec07.2] ** SaC SHOULD verify that the artefacts are trusted and
253
- digitally signed.
233
+ order to assure the deployment of secured ** Services** . For all the third-party
234
+ dependencies used in the IaC templates (including all kind of software artefacts,
235
+ such as Linux packages or container-based images):
236
+ * ** [ SvcQC.Sec07.1] ** SaC MUST perform vulnerability scanning of the
237
+ artefact versions in use.
238
+ * ** [ SvcQC.Sec07.2] ** SaC SHOULD verify that the artefacts are trusted and
239
+ digitally signed.
254
240
* ** [ SvcQC.Sec07.3] ** SaC MUST scan IaC templates to uncover misalignments
255
241
with widely-accepted security policies from [ SvcQC.Sec06] criteria, such as
256
242
non-encrypted secrets or disabled audit logs.
257
243
* ** [ SvcQC.Sec07.4] ** SaC MAY be used to seek, in the IaC templates, for
258
244
violations of security requirements outlined in the applicable regulations
259
245
from criterion [ SvcQC.Sec05] .
260
246
261
- ### Automated Deployment [ SvcQC.Aud]
262
-
263
- The automated deployment of ** Services** implies the use of code to install and
264
- configure them in the target infrastructures. Infrastructure as Code (IaC)
265
- templates allow operations team to treat service provisioning and deployment in
266
- a similar fashion as developers manage the software code.
267
-
268
- Consequently, IaC enables the paradigm of immutable infrastructure deployment
269
- and maintenance, where ** Services** are never updated, but deprovisioned and
270
- redeployed. An immutable infrastructure simplifies maintenance and enhances
271
- repeteability and reliability.
247
+ ### Policies [ SvcQC.Pol]
272
248
273
- * ** [ SvcQC.Aud01] ** A production-ready ** Service** SHOULD be deployed as a
274
- workable system with the minimal user or system administrator interaction
275
- leveraging IaC templates.
276
- * ** [ SvcQC.Aud01.2] ** Any future change to a deployed ** Service** SHOULD be
277
- done in the form of a new deployment, in order to preserve immutable
278
- infrastructures.
249
+ Policy documents describe what are the users expected behaviour when using the
250
+ ** Service** , how they can access it and what they can expect regarding privacy
251
+ of their data.
279
252
280
- * ** [ SvcQC.Aud03] ** IaC SHOULD be validated by specific (unit) testing
281
- frameworks for every change being done.
282
- * IaC (unit) tests MUST be idempotent.
253
+ * ** [ SvcQC.Pol01] ** The ** Service** MUST include the following policy documents:
254
+ * ** [ SvcQC.Pol01.1] ** Acceptable Usage Policy (AUP): Is a set of rules applied
255
+ by the owner, creator or administrator of a network, website, or service, that
256
+ restrict the ways in which the network, website or system may be used and sets
257
+ guidelines as to how it should be used. The AUP can also be referred as: Acceptable
258
+ Use Policy or Fair Use Policy.
259
+ * ** [ SvcQC.Pol01.2] ** Access Policy or Terms of Use: represent a binding legal
260
+ contract between the users (and/or costumers), and the Provider of the ** Service** .
261
+ The Access Policy mandates the users (and/or costumers) access to and the use of
262
+ the Provider’s ** Service** .
263
+ * ** [ SvcQC.Pol01.3] ** Privacy Policy: Data privacy statement informing the users
264
+ (and/or costumers), about which personal data is collected and processed when they
265
+ use and interact with the ** Service** . It states which rights the users (and/or costumers)
266
+ have regarding the processing of their data.
283
267
284
268
### Support [ SvcQC.Sup]
285
269
270
+ Support is the formal way by which users and operators of the ** Service**
271
+ communicate with other operators and/or developers of the ** Service** ,
272
+ in case of problems, be it operational problems or bugs in the
273
+ ** Service** or underlying Software. Reporting of enhancements, improvements
274
+ and even documentation issues.
275
+
286
276
* ** [ SvcQC.Sup01] ** The ** Service** MUST have a tracker or helpdesk
287
277
for operational and users issues.
288
278
@@ -311,18 +301,69 @@ where the **Service** is foreseen to be integrated.
311
301
functional tests of criteria [ SvcQC.Fun01.2] .
312
302
* ** [ SvcQC.Mon01.3] ** The ** Service** Web interface MAY be monitored. Use
313
303
functional tests of criteria [ SvcQC.Fun01.3] .
304
+
314
305
* ** [ SvcQC.Mon02] ** The ** Service** MUST be monitored for security-related
315
306
criteria:
316
307
* ** [ SvcQC.Mon02.1] ** The ** Service** MUST be monitored for public endpoints
317
308
and APIs secured and strong ciphers for encryption. Use Security tests of
318
309
criteria [ SvcQC.Sec02] and [ SvcQC.Sec05] .
319
310
* ** [ SvcQC.Mon02.2] ** The ** Service** SHOULD be monitored with DAST checks.
320
311
Use Security tests of criteria [ SvcQC.Sec06] .
312
+
321
313
* ** [ SvcQC.Mon03] ** The ** Service** MUST be monitored for infrastructure-related
322
314
criteria:
323
315
* ** [ SvcQC.Mon03.1] ** IaC (unit) tests [ SvcQC.Aud02] SHOULD be reused as
324
316
monitoring tests, thus avoiding duplication.
325
317
318
+ ### Automated Deployment [ SvcQC.Aud]
319
+
320
+ The automated deployment of ** Services** implies the use of code to install and
321
+ configure them in the target infrastructures. Infrastructure as Code (IaC)
322
+ templates allow operations team to treat service provisioning and deployment in
323
+ a similar fashion as developers manage the software code.
324
+
325
+ Consequently, IaC enables the paradigm of immutable infrastructure deployment
326
+ and maintenance, where ** Services** are never updated, but deprovisioned and
327
+ redeployed. An immutable infrastructure simplifies maintenance and enhances
328
+ repeteability and reliability.
329
+
330
+ * ** [ SvcQC.Aud01] ** A production-ready ** Service** SHOULD be deployed as a
331
+ workable system with the minimal user or system administrator interaction
332
+ leveraging IaC templates.
333
+
334
+ * ** [ SvcQC.Aud02] ** Any future change to a deployed ** Service** SHOULD be
335
+ done in the form of a new deployment, in order to preserve immutable
336
+ infrastructures.
337
+
338
+ * ** [ SvcQC.Aud03] ** IaC SHOULD be validated by specific (unit) testing
339
+ frameworks for every change being done.
340
+ * ** [ SvcQC.Aud03.1] ** IaC (unit) tests MUST be idempotent.
341
+
326
342
### Metrics [ SvcQC.Met]
327
343
328
- * ** [ SvcQC.Met01] ** The ** Service** SHOULD have metrics.
344
+ A metric is a quantifiable measure that is used to track and assess
345
+ the status of a specific process.
346
+
347
+ In the case of ** Services** , some relevant metrics are the number
348
+ of users registered in the ** Service** , or using it actively. Also
349
+ accounting is important to track resource usage per user or group
350
+ of users, either or both computing and storage resources.
351
+
352
+ Although the the metrics maybe published in external services, this
353
+ is a common case in federated infrastructures such as EOSC.
354
+
355
+ * ** [ SvcQC.Met01] ** The ** Service** SHOULD implement the collection
356
+ of metrics.
357
+ * ** [ SvcQC.Met01.1] ** The collection of metrics SHOULD be comulative
358
+ over time and timestamped, so that the values can be queried per
359
+ time interval.
360
+ * ** [ SvcQC.Met01.2] ** The metric * Number of registered users* SHOULD
361
+ be collected.
362
+ * ** [ SvcQC.Met01.3] ** The metric * Number of active users over a given period of time*
363
+ MAY be collected.
364
+ * ** [ SvcQC.Met01.4] ** The metric * Amount of computing resources per user or per group*
365
+ MAY be collected. The metric unit depends on the type of service and infrastructure.
366
+ An example is CPU x hours.
367
+ * ** [ SvcQC.Met01.5] ** The metric * Amount of storage resources per user or per group*
368
+ MAY be collected. The metric unit depends on the type of service and infrastructure.
369
+ An example is GByte x hours.
0 commit comments