Regression Testing Flashcards

1
Q

The testing process should support and facilitate software ________

A

evolution

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

What is regression testing?

A

Retesting software as it evolves to ensure previous functionality

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

Regression tests allow you to confidently ____ _____

A

make changes

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

Most testing is what type of testing?

A

regression testing

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

What are 2 reasons previously working functionalities could fail?

A

Changing one component can unintentionally impact the other

New environments can introduce unexpected behaviour

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

What are some common time intervals to run regression test suites?

A

On commit, nightly, weekly

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

What are some bad qualities of a regression test suite?

A

Takes weeks to run

Many manual steps

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

What are 3 common components for a regression test suite? What do they offer?

A

Tests for prev fixed bugs - identify bug prone components
Unit tests - Useful for refactoring
General system tests

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

Regression tests are usually a ______ of tests generated for other purposes

A

subset

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

What are smoke tests/sanities?

A

A subset of tests that validate the build process and core behaviors

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

How can we limit regression test suites?

A

Don’t add redundant tests
Run only sanities, then run more thorough tests nightly
Perform change impact analysis

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

What do you identify in change impact analysis?

A

How changes affect the rest of the software

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

What are 3 ways to decide which tests to run on demand with change impact analysis?

A

Conservative: Run all tests
Cheap: Run tests with test requirements related to the lines changed
Middle Ground: Run those tests affected by how changes propagate through the software

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

Why are cheap tests not adequate?

A

It may not catch unintentional changes due to dependencies

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

What do we do when regression tests fail and the new and old versions should be equivalent (during refactors)?

A

Find the misbehaving code and correct it

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

What are some reasons for regression test failures when the new and old versions are not equivalent (maybe extreme refactoring)?

A

The software has a bug to fix
Test inputs are stale and must be fixed
Expected behaviour has changed and must be fixed

17
Q

Identifying the cause of failure for regression tests and maintaining the tests in general is ______

A

costly

18
Q

How can we separate the reasons for regression test failures

A

Commit them separately

19
Q

What are scale issues with regression tests? How can we address these burdens?

A
Running the tests
Interpreting the results
Updating tests
Adding new tests
Focus on automated testing and testability