343 Chapter 10 Testing and Quality Assurance

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/66

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

67 Terms

1
New cards

activities designed to measure and improve quality in a product and process

What is Quality Assurance (QA)?

2
New cards

activities designed to validate and verify the quality of the product through detecting faults and “fixing” the defects

What is Quality Control (QC)?

3
New cards

They are similar

Are QA and QC similar?

4
New cards

good techniques, process, tools, and team

What do you need for testing?

5
New cards

What is the traditional definition of Quality?

  • Conforms to requirements

  • Fit to use

6
New cards

What is Verification?

checking the software conforms to its requirements (did the software evolve from the requirements properly; does the software “work”?)

7
New cards

What is Validation?

checking software meets user requirements (fit to use)

8
New cards

What are some Error Detection Techniques (finding errors)?

  • Testing

  • Inspections and Reviews

  • Formal methods (proving software correct)

  • Static Analysis detects “error-prone conditions”

9
New cards

What is testing?

executing program in a controlled environment and “verifying/validating” output

10
New cards

What is an Error?

a mistake made by a programmer or software engineer that caused the fault, which in turn may cause a failure

11
New cards

What is a Fault (defect, bug)?

condition that may cause a failure in the system

12
New cards

What is a Failure (problem)?

inability of system to perform a function according to its spec due to some fault

13
New cards

What is Fault or failure/problem severity base on?

Consequences

14
New cards

What is Fault or failure/problem priority base on?

importance of developing a fix, which is in turn based on severity

15
New cards

Why do we do testing?

  • Evaluating product quality

  • Improving products by identifying defects and having them fixed prior to software release

16
New cards

Dynamic (running-program) verification-

of program’s behavior on a finite set of test cases selected from execution domain

17
New cards

Testing can NOT prove product works 100%,-

even though we use testing to demonstrate that parts of the software works

18
New cards

Who tests

  • Programmers

  • Testers/Req. Analyst

  • Users

19
New cards

What is tested?

  • Unit code testing

  • Functional code testing

  • Integration/system testing

  • User interface testing

20
New cards

Why Test?

  • Acceptance (customer)

  • Conformance (std, laws, etc)

  • Configuration (user vs. dev.)

  • Performance, stress, security, etc.

21
New cards

How to test (test cases designed)?

  • Intuition

  • Specification based (black box)

  • Code based (white box)

  • Existing cases (regression)

22
New cards

What is Black-box testing?

A testing methodology where the test cases are mostly derived from the requirements statements without consideration of the actual code content

23
New cards

What is White-box testing?

A testing methodology where the test cases are mostly derived from examining the code and the detailed design.

24
New cards

What is regression?

It executes some (or all) test cases available for a previous version of the system on a new version.

25
New cards
<p>What is this?</p>

What is this?

Progression of Testing

26
New cards

What is Equivalence-Class Partitioning?

It is based on dividing the input into several classes that are deemed equivalent for the purposes of finding errors.

27
New cards

Why do Equivalence-Class Partitioning?

  1. Lessen Duplication

  2. Complete Coverage

28
New cards

Past experiences show that “boundaries” are what?

error-prone

29
New cards

The “basic” boundary value testing for a value would include what?

  1. At the “minimum” boundary

  2. Immediately above minimum

  3. Between minimum and maximum (nominal)

  4. Immediately below maximum

  5. At the “maximum” boundary

30
New cards

Boundary Value Analysis is what technique?

A Black Box Technique

31
New cards

Path Analysis is what technique?

A White Box Technique

32
New cards

What are the task of Path Analysis?

  1. Analyze number of paths in program

  2. Decide which ones to test

33
New cards

What is the decreasing coverage of Path Analysis?

  • Logical paths

  • Independent paths

  • Branch coverage

  • Statement coverage

34
New cards
<p>What is this?</p>

What is this?

A “CASE” Structure

35
New cards
<p>What is this?</p>

What is this?

A Simple Loop Structure

36
New cards
<p>What is this?</p>

What is this?

Linearly Independent Set of Paths

37
New cards

What is Combinations of Conditions for?

Functions of Several related variables

38
New cards

How do we fully test?

we need all possible combinations (of equivalence classes).

39
New cards

How to reduce testing?

  • Coverage analysis

  • Assess “important” (e.g., main functionalities) cases

  • Test all pairs of relations (but not all combinations)

40
New cards

What is Unit Testing?

test each individual unit

41
New cards

Who usually does Unit Testing?

the programmer

42
New cards

Test each unit as-

it is developed (small chunks)

43
New cards

What should we keep test cases/results around?

  • Allows for regression testing

  • Facilitates refactoring

  • Tests become documentation!!

44
New cards

What are Test-Driven Development

  • Write unit-test cases BEFORE the code

  • Test cases “are”/”becomes” requirements

  • Forces Development in small steps

45
New cards

What are the steps of Test-Driven Development?

  1. Write test case and code

  2. Verify (it fails or runs)

  3. Modify code so it succeeds

  4. Rerun test case, previous tests

  5. Refactor until (success and satisfaction)

46
New cards

When to stop testing (simple)?

  • All planned test cases are executed

  • All those problems that are found are fixed

47
New cards

Other techniques to stop testing are?

  • Stop when you are not finding any more errors

  • Defect seeding: test until all (or % of )the seeded bugs found

48
New cards

Running out of time means

poor planning

49
New cards

What is a Review?

any process involving human testers reading and understanding a document and then analyzing it with the purpose of detecting errors

50
New cards

What is a Walkthrough?

author explaining document to team of people

51
New cards

What is a Software Inspection?

detailed reviews of work in progress, following Fagan’s method

52
New cards

What are the steps of Software Inspections?

  1. Planning

  2. Overview

  3. Preparation

  4. Inspection

  5. Rework

  6. Follow-up

53
New cards

What is Software Inspections focused on?

Finding Defects

54
New cards

What does Software Inspections output?

List of defects

55
New cards

What does the team of Software Inspections look like?

  • 3-6 people

  • Author included

  • People working on related efforts

  • Moderator, reader, scribe

56
New cards

What makes testing different from inspections?

  • Finds errors cheaper, but correcting them is expensive

  • Can only be applied to code

  • Catches defects late (after implementation)

  • Necessary to gauge quality

57
New cards

What makes inspections different from testing?

  • Partially cost-effective

  • Can be applied to intermediate artifacts

  • Catches defects early

  • Helps disseminate knowledge about project and best practices

58
New cards

What techniques do formal methods use?

Mathematical techniques used to prove that a program works

59
New cards

What are formal methods used for?

Used for requirements/design/algorithm specification

60
New cards

What do formal methods prove?

that implementation conforms to spec

61
New cards

Formal methods have what conditions?

Pre- and post-conditions

62
New cards

What are the problems of Formal Methods?

  • Require math training

  • Not applicable to all programs

  • Only verification, not validation

  • Not applicable to all aspects of program (e.g., UI or maintainability)

63
New cards
64
New cards

What is Static Analysis?

Examination of static structures of design/code for detecting error-prone conditions (cohesion—coupling)

65
New cards

Automatic program tools are more what?

Useful

66
New cards

What can Static Analysis be applied to?

  • Intermediate documents (but in formal model)

  • Source code

  • Executable files

67
New cards

Who Checks Static Analysis output?

by the programmer