Validation (Testing code) Flashcards

1
Q

What are the 4 different branches of testing?

A

Open box testing
Closed box testing
Automated testing
Manual testing

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

What is open box testing?

A

Tester know the code when testing

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

What is closed box testing?

A

Tester does not know the code when testing (compiled version)

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

What is automated testing?

A

Large amounts of coded tests which are automated

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

What is manual tetsing?

A

Tests which require user interaction

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

What are the advantages of test-driven development?

A
  • Integrates aspects of specifications, coding and testing
  • ‘Plan’ before you ‘Write’ code
  • Check you haven’t broke something when implementing something new
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the qualities of a good test?

A

Line coverage
Function coverage
Condition coverage
Path coverage
Entry/Exit coverage

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

What is unit testing?

A

Testing individual pieces
Input: functional specifications of unit
Output: Pass/Fail
Performed by: Developer
Frequency: Multiple times a day

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

What is integration testing?

A

Testing a combination of pieces
Input: functional specifications of subsystem
Output: Bug report
Performed by: Dev team (open box)
Frequency: Periodically

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

What is release testing?

A

Testing the whole system works together
Input: Functional and non-functional specifications of system
Output: Bug report, sign off for acceptance testing
Performed by: Testing team (closed box)
Frequency: Prior to showing client

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

What is acceptance testing?

A

Testing the system is accepted for active use
Input: User requirements
Output: Bug report, end of contract
Performed by: Quality Assurance Team
Frequency: End of each stage (agile) prior to release of software

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

What is user testing?

A

Testing the system with real world users
Input: Actual users
Output: Bug report
Performed by: Real users
Frequency: After release

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

What are the two types of user testing?

A

Alpha
- A few specific users (acceptance test with real users)
Beta
- Released for limited general use

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

What is continuous integration?

A

Automatic building, testing and deployment of code once it is committed to a repository

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

What is the process of continuous integration?

A
  1. Version control
  2. Automatic testing
  3. Build configurations
  4. Automatic deployment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

When would we use continuous integration?

A

When there is no client

17
Q

How can configuration management be used to generate different versions of software?

A
  • Create build scripts that work for different platforms
  • Each build script might pull in different libraries at build time that work for different platforms
  • These build scripts get automatically triggered and deployed in the continuous integration process
18
Q

What is release management strategy?

A

Preparing periodic releases/updates for end users when there is no client

19
Q

What is version control?

A

Branch for release versions, so we can maintain past versions

20
Q

What is the process of version controlling?

A

Developer submits merge request
- If merge request passes test it is automatically build
- Code is reviewed by team members
- If approved, merge into version