Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

After weeks of research I have nearly completed my thesis, yet I am unable to clear up my confusion contained in all previous threads here (and in many books):

During system testing, we check the system function against system analysis (functional system design) - but that would fit to a definition of verification according to many books. But I follow ISO12207, which considers all testing as validation (making sure work product meets requirement for intended use). How can I justify that unit testing or system testing is validation, even though when I check it against specification? Which fullfils the definiton of verification? When testing that e.g. "Save button" works, is it validation?

This picture shows my understanding of V&V, so different from many other sources, including ISTQB etc.

This is my understanding of V&V - picture taken from the net

Essential problem I have is that a book using the same picture also states on another place that:

test activities in the area of validation are usability, alpha and beta testing. For verification, testable system requirements are defined whose correct implementation can be tested through system tests.

Isn't that the opposite of what the picture says? Most books present the following picture, where validation is just making sure that customer needs are satisfied. Mind you that according to ISO, validation activity is testing.

enter image description here

share|improve this question
    
Look at the other threads, boooks, standard..it is definitely something that deservers attention because everyone is confused.. –  user970696 Nov 6 '12 at 20:55
    
What other threads, boooks, standard? I deleted my comment, but you responded anyway, so I'll reproduce it here: I think this is just a vocabulary lesson, so I voted to close as too localized. See my answer below. –  Robert Harvey Nov 6 '12 at 21:01
add comment

closed as not constructive by Robert Harvey, ChrisF Nov 6 '12 at 22:04

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3 Answers

Isn't that the opposite of what the picture says? Most books present the following picture, where validation is just making sure that customer needs are satisfied. Mind you that according to ISO, validation activity is testing

"making sure that customer needs are satisfied" is testing. Your use of the word "just" is concerning, The importance of this task should not be minimized

Testing by stakeholders of critical, you are testing the the App meets the Intent of the business requirements. It's extremely common for software to meet every single written requirement yet not meet the business need (making the software useless).

IMO this should be done in parallel with other testing, not afterwards as your diagrams suggest.

share|improve this answer
    
Well but it does not answer the question. If dynamic testing is validation (lets follow the ISO and the first diagram) then its making sure specified requirements were met. But that is a definion of verification. I am trying to follow the ISO and thus justify that ALL testing (dynamic) is just a validation activity. –  user970696 Nov 6 '12 at 19:39
add comment

The definition that I use for verification and validation are:

  • Verification = Test that the unit/(sub)system functions according to the stated requirements.
  • Validation = Test that the system does what the customer wants/needs it to do.

In other words, with verification you test if the system meets the requirements and with validation you test if the requirements correctly described the need of the customer.

share|improve this answer
    
This is what I have stated. Now where is relevance to the diagrams, e.g. if you follow the first one (also ISO norm) then checking software is working as expected (against requirements) is validation. It seems you call it verification. –  user970696 Nov 6 '12 at 19:37
    
My point is, according to your definition, validation would be just acceptance testing. Which disagrees with ISO where all testing is validation. –  user970696 Nov 6 '12 at 19:46
add comment

Here is where I think you're getting it wrong.

Analysis type                  Produces artifact
-------------                  -----------------
Requirements Analysis   ---->  Stakeholder Requirements
System Analysis         ---->  System Requirements
System Design           ---->  Subsystem Requirements
Module Design           ---->  Module & Component Requirements
Unit Tests              ---->  Implementation

There's no conflict here; it's just that one diagram is showing requirement artifacts, whereas the other diagram is showing the analyses that lead to those requirement artifacts. Otherwise, the two diagrams are in lockstep agreement.

In other words, all roads lead to the same destination.

share|improve this answer
    
I did not get it - unit tests produces implementantion? Does not make any sense to me. Basic issue for me is that both diagrams have different view on verification and validation. But I do feel there is an aspect I am missing. If you could elaborate a bit more, I would be really grateful..Also including why validacion and verification are different for both diagrams. I mean: System requirements are verifying system - but testing should be validation, not verification. How can I check it without testing? The main question is in original post in bold. –  user970696 Nov 6 '12 at 21:57
    
@user970696: In Test-Driven Development, the tests are created first; they serve as a specification for the methods they test. My point is that validation and verification are not different; they are essentially the same activity. You are always testing requirements; validation merely includes those activities that generate the requirements. –  Robert Harvey Nov 6 '12 at 22:00
add comment

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