Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TestFlows is overengineered #6

Closed
alexey-milovidov opened this issue Dec 17, 2020 · 4 comments
Closed

TestFlows is overengineered #6

alexey-milovidov opened this issue Dec 17, 2020 · 4 comments

Comments

@alexey-milovidov
Copy link

alexey-milovidov commented Dec 17, 2020

Example:

$ find . -name requirements.md | xargs grep -F 'version: ' | uniq -c
    210 ./aes_encryption/requirements/requirements.md:version: 1.0
     65 ./ldap/authentication/requirements/requirements.md:version: 1.0
     28 ./ldap/external_user_directory/requirements/requirements.md:version: 1.0
      1 ./ldap/external_user_directory/requirements/requirements.md:version: 2.0
     38 ./ldap/external_user_directory/requirements/requirements.md:version: 1.0
      1 ./ldap/external_user_directory/requirements/requirements.md:version: 2.0
     17 ./ldap/external_user_directory/requirements/requirements.md:version: 1.0
    498 ./rbac/requirements/requirements.md:version: 1.0

It contains version specification for every requirement.
Developer should not maintain these version numbers, they would better to be generated automatically from VCS or (better) do not exist.

@alexey-milovidov
Copy link
Author

"Requirements" looks like they are designed only to be printed and to waste paper.

@vzakaznikov
Copy link
Collaborator

Each requirement needs a version to keep track when the requirement changes so that tests that are linked to it fail when version mismatches. We can't rely on the VCS for versioning as that would not be feasible inside a single document.
There is minimal burden in maintaining versions for each requirement as developer simply increments the version number when material changes to the requirement is made. This feature is critical as it allows for natural process of software evolution.

@vzakaznikov
Copy link
Collaborator

"Requirements" looks like they are designed only to be printed and to waste paper.

The main purpose of the requirements is to formalize software functionality and provide the insight into the functional test coverage. It is a critical part of any software development :).

@vzakaznikov
Copy link
Collaborator

An example of updated requirements can be found at ClickHouse/ClickHouse#18221.,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants