Guide to writing functional requirements
Getting the requirements right is the key to the success of any project. Failure to accurately define and document them inevitably results in miscommunication between stakeholders, constant revisions, and unnecessary delays. Studies show that unclear or poorly documented requirements can increase the project timeline and budget by up to 60%.
Source: https://www.nuclino.com/articles/functional-requirements
Different types of testing
- Unit tests — evaluate that each atomic unit of code performs the way it's supposed to. Ideally, when you're planning and writing unit tests, you should isolate functionality that can't be broken down any further, and then test that.
- Integration tests — check the interaction between two or more atomic units of code. Your application is composed of individual units that perform specific small functions, and each of those small functions might work in isolation but break when you knit them together.
- Regression tests — check a set of scenarios that worked in the past and should be relatively stable.
- Smoke tests — are a high level, tightly curated set of automated tests that live somewhere in the space between integration and regression tests. They're there as a sanity check that your site's core functionality isn't wrecked. The term smoke test seems to be a holdover from plumbing. If you could see smoke or steam coming out of a pipe, it was leaky and needed to be fixed.
- Acceptance testing — is usually a set of manual tests performed after the end-to-end development is finished. They check to make sure that the feature as written actually meets all of the initial specifications, or acceptance criteria.
- Performance tests — check stability, scalability, and usability of your product and infrastructure. You might check things like number of errors per second or how long it takes to load a page. There isn't necessarily pass/fail criteria associated with a performance test. This stage is more about data gathering and looking for areas of improvement.
- Load testing — is a kind of specialised performance test that specifically checks how your product performs under significant stress over a predetermined period of time.
Source: https://dev.to/thejessleigh/different-types-of-testing-explained-1ljo
HTML test cases for forms
A series of HTML test cases to determine how they are announced in different screen reader / browser combinations.
Source: https://russmaxdesign.github.io/accessible-forms/index.html
Principles for Digital Development
The Principles for Digital Development: a compass for those working to promote sustainable and inclusive development in today’s complex digital landscape.
Source: https://digitalprinciples.org/
Software architecture patterns
https://www.youtube.com/watch?v=ZTVAs9cNo30