UXPROD-3944 NFR Scorecard
Please, refer to NFR Scorecard practice for detailed information
Status | COMPLETED |
|---|---|
Date-time | Jul 18, 2023 |
Dev Team | Thunderjet |
Architect | @Raman Auramau |
Team Lead | @Serhii_Nosko |
Scrum Master | @Mikita Siadykh |
Product Owner | @Dennis Bridges |
Prod Ticket | |
Arch Ticket | |
Tech Design | |
Release | Poppy (R2 2023) |
Quality Attribute | NFR ID | Non-Functional Requirement | Preliminary Analysis (Before feature started)- Date and Status | Final Analysis (After feature completed) - Date and Status | Notes and Comments |
|---|---|---|---|---|---|
Availability | NFR.Availability.1 | Modules are designed and implemented following the Stateless principle | Apr 26, 2023 NON COMPLIANT | Jul 7, 2023 COMPLIANT | Now scheduling configuration stored in memory and module can work only with 1 instance. After feature implementation scheduling configuration will be stored in Quartz internal tables, can be scaled and will filly satisfy stateless principles |
NFR.Availability.2 | Load / performance testing must be conducted for at least 2 instances | Apr 26, 2023 Not Applicable | Jul 7, 2023 COMPLIANT | Before feature started scheduling can work only with single module of mod-data-export-spring enabled. After feature implemented we need to retest with 2 instances to check that implementation is reliable, we don’t expect that performance increased a lot, but we should verify that export completed successfully with 2 instances. We need to test by our self to run multiple jobs at the same time, test that scheduling remain working after instances restart without manually enabling them, check that after some instance destroyed another instance pick ups scheduling work. Also we need to create separate ticket to Kitfox to re-test export(they already have jmx script to test it) | |
Manageability | NFR.Manageability.1 | Application logs are collected in unified form and location | Jul 7, 2023 COMPLIANT | Standard logging approach | |
NFR.Manageability.2 | All custom configuration values are placed in the settings, not in the program code | Jul 7, 2023 COMPLIANT | Will use Spring application.yml for all Quartz properties, so Quartz can be configured without modifying source code(clustered or not, checkinInterval, etc) See https://github.com/folio-org/mod-data-export-spring/blob/master/src/main/resources/application.yml | ||
Performance | NFR.Performance.1 | Components are performance tested and compared to the prior release baseline; performance may not degrade more than 5% in exceptional cases | Jul 7, 2023 Not Applicable | We don’t have any performance baseline for old scheduler and for new implementation with Quartz it will also not applicable | |
Security | NFR.Security.1 | Tenant data must be isolated from other tenants | Apr 26, 2023 COMPLIANT | Jul 7, 2023 COMPLIANT | We will try to use only configId and tenantId in common quartz schema for all tenants. All job details will be not stored in common SQL schema |
NFR.Security.2 | Secrets (such like usernames, passwords, API keys and/or their combinations) are not stored in source repositories (i.e. Github) | Apr 26, 2023 COMPLIANT | Jul 7, 2023 COMPLIANT | Will need code review for the final implementation | |
NFR.Security.3 | No sensitive information in logs (logins, passwords, API keys) | Apr 26, 2023 COMPLIANT | Jul 7, 2023 COMPLIANT | Will need code review for the final implementation, check logs don’t have any sensitive information | |
Testability | NFR.Testability.1 | Unit-test coverage for new code created / changed during the implementation of the feature >= 80% | Apr 26, 2023 COMPLIANT | Jul 7, 2023 COMPLIANT | Will need check Sonar code coverage after final implementation See https://sonarcloud.io/summary/new_code?id=org.folio%3Amod-data-export-spring |
NFR.Testability.2 | E2E-test coverage - # of automated tests cases from test rail to # of all test cases at particular feature | Apr 26, 2023 COMPLIANT | Jul 7, 2023 COMPLIANT | We already had 4 automation tests for Edifact Exports: We already have different manual tests cases for Edifact Export, we need to write automation tests for them based on priority We don’t have any automation tests for bursar export, we have only manual tests cases written that need to be passed after Quartz implementation There are Bursar test cases and scheduling test cases in TestRail- please make QA runs applicable tests before the story is closed | |
NFR.Testability.3 | Karate-test coverage - # of test to # of new endpoints that were created (or existing endpoints that were changed) in the feature scope | Apr 26, 2023 NON COMPLIANT | Jul 7, 2023 COMPLIANT | We did not have karate tests for both Edifact and Bursar exports before feture started. After feature implementation we are going to add some karate tests to check basic scheduling flows https://folio-org.atlassian.net/browse/MODEXPS-202 (no tests for failure scenarios) |
LEGEND: Enumeration of possible statuses
COMPLIANT Compliance checked and confirmed
NOT VERIFIED Compliance not checked
NON COMPLIANT Compliance checked, and non-compliance found
Not Applicable Сompliance not required, requirement not applicable