05 Software Testing and Validation Flashcards

1
Q

What are test cases

A

description of a set of actions performed on software and expected outcome

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

what are tests

A
  1. execution of test case

2. produces outcome

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

what is Testing

A

practice of creating, maintaining, executing, evaluating test cases

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

What is software testing

A
  1. process to execute program using data to simulate user input
  2. process of locating, identifying bugs before delivery to user
  3. part of general verification and validation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what are program testing goals

A
  1. demonstrate to stakeholders that software meets requirements
  2. discover which behaviour is incorrect, undesirable, does not conform to specifications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is a “good” test

A
  1. high probability of finding error
  2. neither too simple nor complex
  3. not redundant
  4. detect maximum number of errors
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

How to ensure accuracy of software

A
  1. verification
    - check consistency of an output of software with its input
  2. validation
    - assess how software fulfills its requirement
  3. defect testing
    - discover faults in software that does not conform with specification
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

verification examples

A
  1. is the software built right
  2. does software meets functionality
  3. takes place first
  4. goal: application and architecture
  5. static activities
  6. use reviews and walkthroughs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

validation examples

A
  1. are we building the right product
  2. does functionality meet intended behaviour
  3. after verification
  4. goal: actual product
  5. dynamic activities and execution of code
  6. use black/white box testing, nonfunctional test
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

static analysis

A

inspection:

  1. requirement specification
  2. architecture
  3. UML design
  4. database schema
  5. program
  6. unable to check nonfunctional such as performance and usability
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

dynamic analysis

A

testing:

  1. exercising
  2. observing product behaviour
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

static/dynamic testing differences

A

static

  1. find bug without code execution
  2. verification stage
  3. cost effective
  4. done with reviews, walkthroughs, inspections

dynamic

  1. execute code to find result
  2. validation stage
  3. expensive
  4. done with unit, system, integration tests
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

software testing process

A
  1. design test cases
  2. prepare test data
  3. run program with test data
  4. compare result to test cases

inputs: preconditions
expected: post conditions, actual output

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

stages of testing

A
  1. development testing
    - unit test
    - integration test
    - system test
  2. release testing
    - separate testing team test before release to user
  3. user test
    - customer test solution on their own environment
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

debugging process

A
  1. identify problems
  2. identify cause of problems
  3. fix problems
  4. evaluate solution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

error handling approaches

A
  1. ignore
  2. failfast
    - program stops immediately, reports error
  3. failsafe
    - program acknowledges error
    - continues execution in best way possible
17
Q

ideal test policies

A

exhaustive testing

  • test all possible scenarios
  • impractical but not impossible
  • need testing techniques for wide coverage without exhaustive testing
18
Q

test driven development

A
  1. write test cases before writing code
  2. run code with test
  3. move to next increment after test case passes
19
Q

benefits of TDD

A
  1. code coverage
    - all code pass at least one test
  2. regression testing
    - test is developed incrementally with code
  3. simplified debugging
    - if code fails, only newly written code needs to be checked
  4. system documentation
    - test act as a form of documentation
20
Q

black box testing

A
  1. functionality testing
  2. based solely on analysis of requirements
  3. without knowing internal codes
  4. can be applied to every level of testing
  5. able to detect
    - incorrect functions
    - interface error
    - usability problem
    - concurrency and timing
    - data structure/db access
21
Q

white box testing

A
  1. structured test
  2. based on analysis of internal logic
  3. compared with expected results
22
Q

advantages of black box testing

A
  1. unbiased as tester is not developer
23
Q

black box testing disadvantages

A
  1. unnecessary testing
    - different way to test the same thing
  2. insufficient testing
    - miss out corner cases