1

Who among the two is responsible for validating the software when testing it? Or is it a joint effort?

On the one hand, the software developer is responsible for ensuring that the software is built to specification and functions as intended. On the other hand, the user knows how they will use the software in their particular environment and business processes, as well as provide valuable insights, which the developer may not have considered.

1
  • 1
    Two points (1) The user is going to "test" your software whether you want them to or not, (2) It is much cheaper to fix bugs before the software is released than after. So the answer (usually) is: both.
    – John Wu
    Apr 16, 2023 at 18:44

2 Answers 2

3

The software developers (nearly) always think they've delivered something that fulfills the specifications - otherwise they wouldn't have delivered it!

Many errors are either (1) due to a different understanding of what the spec means or (2) clearly wrong, but overlooked by the developers because their view on what the code base is supposed to do has been tainted by the long experience of watching what it actually does do.

Those are two large classes of errors that developers have little chance of ever finding, and this is the main reason why acceptance tests should be performed by actors as close as possible to the role of end user.

1
  • This. Although it's still probably a good idea for the developers to run through the validation test before letting the users have a go. Apr 16, 2023 at 17:23
1

Validation is defined as the "confirmation, through the provision of objective evidence, that the requirements for a specific intended use or application have been fulfilled". Unless the development organization understands the specific intended use of the system they have built, they are unable to perform validation. What all software development organizations can do is verification, which is the "confirmation, through the provision of objective evidence, that specified requirements have been fulfilled".

There are ways in which the development organization can perform validation. One case would be if the development organization is also a user of the system, then they can perform validation for their specific intended use. The results of this validation may not be useful to someone with a different intended use. There are also ways in which the users of the system can convey their intended uses to the development organization and the development organization would manage the specific requirements for the intended use and capture evidence that the system meets those requirements.

I would recommend looking at the type of system to learn more. It's very difficult, if not impossible, for a development organization to perform validation of a system that is sold on the marketplace to a variety of customers with various use cases. However, if the development organization is building to the specification of a single customer and gains the deep understanding of how the system is to be used, then they may be able to provide some or all of the necessary validation services.

Not the answer you're looking for? Browse other questions tagged or ask your own question.