Life Cycles and the V-model Flashcards
What is verification?
Verification is when you verify that your code fulfills the requirements that you have interpreted from the user’s needs or usability requirements.
It is more technical than validation.
What is validation?
Validation is when the customer validates that the system behaves as it should.
You could say it ensures compliance with intended usage.
So what is the difference between verification and validation?
That verification is something that ‘you’ do on your requirements that you based on the customer’s needs. and validation is when the customer confirms that the software fulfills their needs.
What is verification good for?
It helps us ensure that we are building the product the right way which was planned.
Explain the software development model called ‘waterfall’
It is a linear model meaning that each activity is completed before moving on to the next step.
All the testing is done in the end of all of the steps when the code has been fully developed.
Steps are
- Requirement specification
- Design
- Implementation
- Test
- Maintenance
What happens if the product fails the test in the waterfall model?
You will have to go all the way back to the point that caused the error and do the whole sequence again from there. Most usually you would have to start over and fix the errors in the requirement specification face.
What is the V-model?
The V-model is an extension of the waterfall model.
Its a process that assures quality throughout the steps in the development life cycle, where tests start immediately.
So in short it is the waterfall model extended with verification and validation at each step to minimize error. Planning for these verifications and validations.
What steps are there in the V-model and what are the quality assurance steps?
STEP -> DELIVERABLE -> GOAL -> QA
- Requirement gathering -> design Requirement specification -> capture user needs-> Acceptance testing requirements.
- System Design - > Functional specification -> definition of functions required to meet user needs -> System tests
- Software design -> Technical specification-> technical design of functions identified in the functional specification -> Integration testing
- Module design -> Program specification -> detailed design of each module or unit to be built to meet required functionality -> Unit testing planning planning
- Coding
Each process will create a specification document which will be the test basis.
What types of incremental / iterative models are there?
- Prototyping
- Unified Processes
- Agile software development
How does iterative software development models work?
- They do cyclical development (You go around the development cycle a number of times).
- The requirements do not need to be fully defined before coding can start, because of iterations.
- A working version of the product is built in a series of iterations.
- Each stage encompasses requirements definition, design, code and tests
- for each cycle a requirement is defined and a version of the code is produced, which will be tested bu the user representatives.
- At the end of each cycle a decision is made on what extra functionality needs to be created for the next iteration.
- This is repeated until the system is fully produced.
Why are there user representatives in incremental software development methods?
To minimize the risk of developing an unsatisfactory product. - A product that maybe works but does not do what the user needs it to do, if requirements and needs were miscommunicated.
There are four different levels at which you can test a system, what are they?
- Unit test
- integration test
- System test
- Acceptance test
What is integration testing?
a level of software testing where individual units are combined and tested as a group. The purpose of this level of testing is to expose faults in the interaction between integrated units.
Is it possible to do integration testing and tests units that are dependent on other units that are not done? If so, how would you do?
Yes it is. You would create dummy code for those parts that are not done, also called test drivers and stubs.
What are some characteristics of good testing?
- There is an early test design
- V-model starts by specifying test docs
- Iterative models tests each release before moving on.
- Testers are involved in reviewing the requirements before they are released.