Testing, Building and Deployment Flashcards

1
Q

What is the purpose of verification and validation?

A

They’re the means to ensure software works and is fit for purpose.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is validation?

A

Validation - Are we building the right product? Validation is ensuring the software does what the customer expects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What is verification?

A

Verification - Are we building the product right? Verification is checking that the software meets the agreed functional and non-functional requirements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are the techniques used to verify V and V?

A

There are several techniques used for V and V - reviews, inspections, and testing

Reviews - almost any artefact can be reviewed (requirements, design drawings, source code etc.)

Inspections - are examinations of representations of the system, such as design drawings or code. They look for defects and characteristics such as poor maintainability

reviews and inspections are only used for aspects that cant be tested by running the software.

Inspections can check conformance with the specification but not with the customers real requirements and they cannot check non-functional characteristics such as performance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is testing?

A

Testing is how we show that our software product does what it is intended to do and also attempt to discover defects before software is put into use.

Testing is part of verification and validation. When we test software we expect to establish if the software both meets the user needs in terms of functionality, and that it also meets other non-functional requirements.

Tests cannot prove software is fault free. Most software has so many possible states that we cannot test a significant set of the possible states.

Some tests force software to fail and modify the environment to see if and how it fails

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

When can testing occur?

A

Testing occurs throughout the lifecycle

Development testing - find bugs and ensure algorithms are implemented correctly

Release testing - software is complete and delivers required functionality

User testing - ensure ready for operational use

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is release testing?

A

Release testing is typically black box testing, the focus is on whether the system delivers its functionality, performance and dependability, and does not fail in normal use.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is development testing?

A

Development testing is typically white box testing, carried out by the team to discover bugs and defects and is often automated.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is TDD?

A

Test-driven development (TDD) is an approach to program development in which you inter-leave testing and code development. Tests are written before code and ‘passing’ the tests is the critical driver of development.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is TDD process?

A
Think
Write a test
Implement so that test passes
Run all unit tests and fix failures
Refactor code
Run all unit test and fix failures
Check in your code
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Where can TDD be applied?

A

TDD can be applied to any development methodology. TDD is primarily about unit testing and anywhere that new functionality is being developed will benefit from TDD.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the key points of TDD?

A

Tests and designs are one
Design the system by writing tests
System is easy to use and easy to test
Resulting automated unit tests are easily run. Quickly and easily regression test. Fix bugs soon after they are introduced
Confident coders. If you break something, just fix or revert

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is system building?

A

System building is the process of assembling system components into an executable program to run on a target computer system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When should the system be rebuilt and tested?

A

Software should be frequently rebuilt and tested immediately after a new version has been built. This makes it easier to detect bugs and problems that have been introduced since the last build.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What configuration management?

A

Configuration management is the management of an evolving software system. When maintaining a system, a CM team is put in place to ensure that changes are incorporated into the system in a controlled way and that records are maintained with details of the changes that have been implemented.

The main configuration management processes are concerned with version management, system building, change management, and release management.

Software configuration management is the process of identifying and defining the software configuration items in a system, controlling the release and change of these items throughout the system lifecycle, recording and reporting the status of configuration items and change requests, and verifying the completeness and correctness of configuration items

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are the major types of software testing?

A

There are several major types of software testing:

  • Unit testing - tests single bits of functionality
  • Integration testing - tests a wider area than unit tests and how parts function together
  • Validation and verification - is it what the user wants and needs?
  • Resource exhaustion, errors, and recovery - how the system will behave in the real-world with limited resources
  • Performance testing - does it meet performance requirements (under load)?
  • Usability testing - performed by users, is it what they wanted?
17
Q

What are the several main ways to test?

A

How to test includes:

  • Regression testing - compares output of the current test with previous values
  • Test data - synthetic and real world data
  • Exercising GUI systems - testing the GUI using special tools (event-capture/playback tools) or manual testing
  • Testing the tests - try to break the tests
  • Testing thoroughly - can use coverage analysis tools to keep track of what lines of code have been executed and what haven’t
18
Q

What are the conceptual and physical views of software architecture?

A

.

19
Q

What are three key characteristics of the engineering of web-based software engineering?

A

The three key characteristics of web-based software engineering include;
Constraining user-interface.
Software reuse when constructing web-based systems.
No complete specification in advance of web-based systems.

20
Q

What are the claimed benefits of model driven engineering?

A

~Engineers can work at a high level of abstraction without concern for implementation details.
~Errors are reduced.
~The design and implementation process is sped up.