I really like end-to-end tests for this, because it tests the system from a user perspective, which is how many requirements are actually coming in, not how they are implemented internally. I also like to write tests for things that can't actually break indirectly. But it makes it so that someone who changes e.g. some function and thus breaks the test realizes that this is an explicit prior specification that they are about to invalidate and might want to double check with someone.
Ask HN: How do you keep track of software requirements and test them?
21–30 of 134 posts
Re: Ask HN: How do you keep track of software requirements and test them?
#22Your job is to do what is being asked of you and not screw it up too much.
If they wanted to track requirements, they'd already track them.
People have very fragile egos - if you come in as a junior dev and start suggesting shit - they will not like that.
If you come in as a senior dev and start suggesting shit, they'll not like it, unless your suggestion is 'how about I do your work for you on top of my work, while you get most or all of the credit'.
That is the only suggestion most other people are interested in.
Source: been working for a while.
Re: Ask HN: How do you keep track of software requirements and test them?
#23Re: Ask HN: How do you keep track of software requirements and test them?
#24TLDR adding structure isn’t always the answer. Your team/org needs to be open to that.
Re: Ask HN: How do you keep track of software requirements and test them?
#25The PO has to make the hard decision about what to work on and when. He/She must understand the product deeply and be able to make the hard decisions. Also the PO should be able to test the system to accept the changes.
Furthermore. You don't really need to have endless lists of requirements. The most important thing to know is what is the next thing that you have to work on.
Re: Ask HN: How do you keep track of software requirements and test them?
#26In a small team, I have found that a simple spreadsheet of tests can go a long way. Give it a fancy name like "Subcomponent X Functional Test Specification" and have one row per requirement. Give them IDs (e.g. FNTEST0001). What sort of tests you want depends a lot on your system. If you're working on some data processing system where you can easily generate many examples of test input then you'll probably get lots o…
I know it doesn't get much love on here, but a feature per requirement is a good level to start at. I'd recommend using `Examples` tables for testing each combination.
Having your features run on every PR is worth its weight in gold, and being able to deal with variations in branches relieves most of the headaches from having your requirements outside of the repo.
Re: Ask HN: How do you keep track of software requirements and test them?
#27For requirement, use any kind of issue tracker and connect your commit with issues. Jira, people here hate it for various reason. But it get the job done. Otherwise GitHub issue would (there are problems with GitHub issues, e.g. cross repo issue tracking in a single place. That's another story)
For QA, you want your QA be part of the progress tracking and have it reflected in Jira/GitHub commit.
One thing I think is of equal importance, if not more, is how the code you delivered is used in the wild. Some sort of analytics.
Zoom out a bit, requirement is what you THINK the user want. QA is about whether your code CAN perform what you think the user want plus some safeguard. Analytics is how the user actually perform in real world
A bit off topic here, QA and analytics is really two side of the same coin. Yet people treat it as two different domains, two set of tools. On one hand, the requirement is verified manually through hand crafted test cases. On the other hand, production behavioural insight is not transformed into future dev/test cases effectively. It is still done manually, if any.
Think about how many time a user wander into a untested undefined interaction that escalated into a support ticket. I'm building a single tool to bridge the gap between product(requirement and production phase) and quality (testing)
Re: Ask HN: How do you keep track of software requirements and test them?
#28Re: Ask HN: How do you keep track of software requirements and test them?
#29Another useful tool to use in conjunction to the above is running code coverage on each branch to ensure you don't have new code coming in that is not covered by unit tests.
Re: Ask HN: How do you keep track of software requirements and test them?
#30Here are some options that I've seen in practice.
A: put everything in your repository in a structured way:
pros: - consistent - actually used in practice by the engineers
cons: - hard to work with for non-developers - too much detail for audits - hard to combine with documents / e-signatures
B: keep separate word documents
pros: - high level, readable documentation overview - works with auditor workflows - PM's can work with these documents as well
cons: - grows to be inconsistent with your actual detailed requirements - hard to put in a CI/CD pipeline
A whole different story is the level of details that you want to put in the requirements. Too much detail and developers feel powerless, too little detail and the QA people feel powerless.