12. Software Testing Flashcards

1
Q

Reasons for testing

A
  1. detect defects
  2. support design and implementation
  3. prevent introduction of defects
  4. document behaviour of system
  5. demonstrate system meets specification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

testing concepts

A

interface
- expected service of a system

failures
- deviation from expected system behaviour

defects
- causes failure of system

slips
- actions by programmers that introduces defects

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

scales of test

A
  1. unit test
  2. integration test
  3. acceptance test
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

test terminologies

A

test case
- set of actions to be performed on software with an expected outcome

test
- execution of a test case

testing
- practice of creating, maintaining, evaluating test cases

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

defects testing

A

goal
- discover defects to be rectified

derived from
- architecture and design documents

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

acceptance testing

A

goals
- demonstrate system meets requirements

derived from
- requirement specification

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

behavioural driven development

A

derive test cases from a collection of user stories and scenarios

user story
scenario
steps
step functions
API
implementation

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

mapping steps in test case

A

scenario
GIVEN –> how to setup test

WHEN –> actions to take during test

THEN –> assertions to be made and output at the end of the test

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

Good practices for BDD

A
  1. keep scenarios short
  2. have individual step short
  3. comply with GWT pattern
  4. write features in user domain language
  5. use frameworks sot reduce redundancy
  6. develop feature and implementation gradually
  7. work with customers to validate features
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

limitation of BDD

A
  1. specification by example which needs many examples
  2. philosophy makes abstraction difficult
  3. need to maintain steps definitions as features changes
  4. hard coding of dependencies
  5. only one level of abstraction possible with gherkin
  6. gherkin steps sequential so all combinations have to be expressed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

smoke test (Define)

A

A smoke test is a quick automated test to make sure that there arent’t any visable signs of problems with the system.

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

What is a pull request (Define)

A

A pull request – also referred to as a merge request – is an event that takes place in software development when a contributor/developer is ready to begin the process of merging new code changes with the main project repository.

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

When do developers merge code?

A

When do developers merge code?

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

Development and testing is done in 4 servers.
In what order does the work flow through them?

A
  1. DEV/Development Server - Dev work
  2. SIT /system integration testing server - Functional and regression testing
  3. UAT/ User acceptance testing server - Where customers test it and we fix any errors.
  4. PROD/production server - Published and live for the public to use.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is an (system) integration test, and a unit test?

A

An integration test is a test that including a function that will run all the way to the database and back so make sure all of the components are functioning together. A unit test is a test that tests business logic. It is done by the developers. It is best practice but not always done.

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