Requirements or Testing?

If you had to do without one or the other in a software project, which one would you choose? I have had many projects where a client or prime minister thought they could leave without one or the other. We have always paid the price.

+1


source to share


13 replies


I would say you can go without testing, not out of requirements. If you have no requirements, how do you know what you are developing?



If programmers are good enough, they should be able to catch most of the blunders that tests can find.

+5


source


Turn that around and repeat after me, "Tests are requirements". :-)



+8


source


If you mean "formal requirements", I can and easily do without them. I'd rather live, breathe a client who can tell me what they want for a tough, outdated document. Having switched to TDD, I would never want to go back to Wednesday without a checkout. I choose informal requirements - storytelling, onsite customer and customer written acceptance tests - over formal requirements and no tests.

+6


source


You must test against requirements, so if you don't have requirements, you cannot test. Therefore, if you need to choose one, you can only choose the requirements.

But not testing is a recipe for error. Guaranteed.

+3


source


If I had to pick one, those would be the requirements.
It doesn't have to be a formal, excruciatingly detailed twenty signature document, but you must know exactly what the client wants and more importantly what is required....

The requirements are also your first communication to the development team. How will they know that you are asking if you are not asking clearly? At best, you run the risk of building the wrong thing. I would prefer the right thing to be a little bit wrong.

+2


source


If asked to choose between requirements or testing, I would rather polish my resume. You really can't get by with any projects, because the main project lifecycle is:

  • Define Needs / Goals (AKA Requirements)
  • Development and construction of requirements
  • Make sure you create a BOM (to requirements.)

If you don't have criteria and goals for success that are tested (and then tested), how can you ensure that you will succeed? And if you have no chance of success, why start a project?

+2


source


I would say requirements because there is always some level of "feature creep" from the client when developing software. Testing is one of the most important parts of the SDLC.

+1


source


Requirements and testing are important for most projects, but if you really have to choose, you have to go with requirements. One of the advantages of choosing test requirements is that you can save some development time as developers know what they need to build and if development is done with additional time you can set aside that time for testing :)

+1


source


tests (function and integration) are more important than requirements; if you can specify tests, then you specified requirements as well, at least implicitly

comments are also developer documentation, with unit tests being practical examples of quick start; -)

+1


source


Not sure if the requirements are called artifact or as a process. Although it is possible to skip the requirements as an artifact, especially for small teams, and still ship the product, skipping the requirements as the process is out of the question. Requirements as an artifact allow the system to be modeled at a cost lower than building the whole thing, technical feasibility, estimates, and for a wider and more dispersed team to reduce communication overhead and have a common ground underfoot. Ignore the requirements and you get lice scores (whether you're planning a lot or just doing a short sprint), a bad idea of ​​feasibility, and possibly very ineffective communication and a lot of misunderstandings.

Requirements as a process, on the other hand, will exist regardless of whether they are officially recognized or not. You cannot rule it out, you can pretend that the requirements process does not exist or does not integrate into design, coding, testing, or stage while pilot and maintenance. Obviously, handling this process means it won't get enough attention and resources. The ramifications usually range from delivering something that is ultimately useless, to fix obvious product flaws later in the development cycle, or even discover real claims when a product fails in the field, increasing development costs, not meeting deadlines, ruining the good. team name, eroding user trust, etc.

Testing is usually about validation and validation, and more recently, improvements in testing technology allow automated testing to be used as a reliable tool to improve debugging efficiency and reduce the time it takes to test regression. Validation ensures that the team has built the right product, i.e. The scoping requirements are correct, not inconsistent, and there are no gaps. On the other hand, verification verifies that the product is built correctly: no technical defects, accidental errors, etc.

As we can see, testing provides a secure network in a scenario where requirements are ignored. Typically, when a team starts testing, they need to refine their understanding of the requirements and, as a result, change the software. Since both the requirements of the artifacts and the software itself simply represent different levels of fidelity when simulating a solution to a real-life problem, and software as a model is an order of magnitude more accurate, application testing also evaluates the requirements (regardless of whether they are implicit or explicit. , formally analyzed or unofficially transmitted).

Typically an alternative to testing is to allow users to report significantly more defects and deficiencies and try to fix them as part of the service (which means later in the product lifecycle), increasing the cost of each fix.

So testing requirements? Fire manager. Okay, skip the requirements, if you want the project schedule to slip during the testing phase and end up in a mess of the building, rather than what users want, skip testing if you just need to be completely disrespectful to your users.

+1


source


With no requirements, you don't need to test as what you end up with is exactly what was spec'd

+1


source


There are categories of software that can be perfectly designed without any requirement, at least more than an indefinite expression of the length of an email.

The point is, if you have a specific client and project manager, it's unlikely that your software is in one of them. It's incredible that someone is paying you on purpose, say, "make me a fun game with a juggling monkey."

The only category of software that can be developed without testing is fault tolerance: when your company has managed to get some customer to pay, does the software work (or if you have a really dumb customer, pay more if he doesn't, in support and maintenance).

It's probably more likely: contracts are structured so that success is less profitable than failure is still fairly common. If you think this is the case and you want to develop working software, consider switching to a job where your interests and your bosses are less determined.

0


source


Without requirements, can we create a test plan? Therefore, we cannot conduct testing even if we choose Testing instead of requirements.

Thus, requirements should be prioritized even if you are considering an Agile Testing Environment.

0


source







All Articles