1 copyright © 2015 m. e. kabay. all rights reserved. sw development & qa csh6 chapter 39...

48
Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine, John Mason, & Jennifer Hadley

Upload: rosamond-houston

Post on 26-Dec-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

1 Copyright © 2015 M. E. Kabay. All rights reserved.

SW Development

& QACSH6 Chapter 39

“Software Development and Quality Assurance”

Diane E. Levine, John Mason, & Jennifer Hadley

Page 2: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

2 Copyright © 2015 M. E. Kabay. All rights reserved.

Topics

IntroductionGoals of SW QASW Devt LifecycleTypes of SW ErrorsDesigning SW Test CasesBefore Going Into ProductionManaging ChangeSources of Bugs & Problems

Page 3: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

3 Copyright © 2015 M. E. Kabay. All rights reserved.

IntroductionDevelopment potentially affects all 6 elements

of Parkerian HexadUsually affects

IntegrityAvailabilityUtility

COTS (commercial off the shelf) software often needs to be customized

Many programs still developed from scratchProject managers typically underestimate

Effects of errorsTime required to get project right

Page 4: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

4 Copyright © 2015 M. E. Kabay. All rights reserved.

Goals of SW QA IEEE definition of quality: “degree to which …[x]…

meets customer or user needs or expectations.” Uncover All Program Problems

Assume they are there – TEST to find them Reduce Likelihood that Defective Programs Enter

ProductionCosts escalate (~10x) with every stage through

which problems are undiscovered or ignored Safeguard Interests of Users

No point in having software that is irrelevantSQA should report at same mgmt level as SW

development Safeguard Interests of SW Producers

Avoid legal liability for failures, damages

Page 5: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

5 Copyright © 2015 M. E. Kabay. All rights reserved.

SW Devt Lifecycle (SDLC)

Overview of SDLCPhases of Traditional SDLCClassic Waterfall ModelRAD & JAD Integrating Security at Every Phase

Page 6: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

6 Copyright © 2015 M. E. Kabay. All rights reserved.

Overview of SDLCSW devt projects often large

Need orderly process to coordinate effortsPhased approach defines milestones

Often defined using specific documentsBut in reality, development does not match

strict step-by-step progressionOften have overlapping stages in different

sections of projectDifferent models for development co-exist

Useful in different contextsAdapt to needs for rapid access to early

productivity vs rigid demands for strict controls

Page 7: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

7 Copyright © 2015 M. E. Kabay. All rights reserved.

Phases of Traditional SDLC

1. Investigation2. Analysis3. Design4. Coding and debugging

[error in text: “Decoding”]5. Testing6. Implementation7. Maintenance

Page 8: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

8 Copyright © 2015 M. E. Kabay. All rights reserved.

Classic Waterfall Model

1. Requirements and analysis2. Design3. Implementation4. Testing5. Maintenance

Page 9: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

9 Copyright © 2015 M. E. Kabay. All rights reserved.

RAD & JAD (1)Overview of Iterative Methodologies

Based on 80/20 rule of productivityFirst 80% of functionality can be built in first

20% of project timeAvoid making users wait for perfection – get

them improvements to their work ASAPStronger, continual user involvementSmall development teamsPrototyping software to glean user responses

and suggestions for improvementSoftware reuseAutomated tools

Page 10: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

10 Copyright © 2015 M. E. Kabay. All rights reserved.

RAD & JAD (2)

PhasesRequirements planningUser designConstructionCutover

TechniquesJRP (joint requirements planning)JAD (joint application design)

Page 11: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

11 Copyright © 2015 M. E. Kabay. All rights reserved.

Integrating Security at Every PhaseSecurity is not an add-onMust be integrated from

start and included at every phase

Applies to all development methodologies

Reduce project cost by catching and preventing problems as early as possibleEvery phase multiplies costs of going back

to fix a problem ~10-fold

Page 12: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

12 Copyright © 2015 M. E. Kabay. All rights reserved.

Types of SW Errors

Internal Design or Implementation ErrorsUser Interface

Page 13: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

13 Copyright © 2015 M. E. Kabay. All rights reserved.

Internal Design or Implementation Errors InitializationLogic FlowCalculationBoundary Condition

ViolationsParameter PassingRace ConditionsLoad ConditionsResource Exhaustion Interapplication ConflictsOther Technical ErrorsRegulatory Compliance Considerations

Page 14: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

14 Copyright © 2015 M. E. Kabay. All rights reserved.

Initialization Errors

Difficult to findProgrammer forgets to save

initialization data to disk BEFORE trying to run programSo program fails on first

runBut works on second try

Or program may leave out only certain initial values, causing funny results on first run or loop

Page 15: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

15 Copyright © 2015 M. E. Kabay. All rights reserved.

Logic Flow Errors

Error when control passes to wrong routine or module

Can happen when a conditional statement eitherLooks at wrong variable orLooks at right variable but has bad value

Can also happen when execution falls through a missing end-of-routine marker (e.g., RETURN)

Page 16: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

16 Copyright © 2015 M. E. Kabay. All rights reserved.

Calculation ErrorsWrong formulaRoundoff errors when

programmer forgets precision of data fieldsE.g., multiplies a

long-real by a short-real variable

Thus loses precision in product

Variables may be defined with wrong precisionE.g., 16 bits instead of 32 bits

Page 17: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

17 Copyright © 2015 M. E. Kabay. All rights reserved.

Boundary Condition Violations Attempting to read or write

beyond the end of an array is viewed as a sign of serious corruption by most operating systemsCall a hardware halt instruction – e.g., HP3000

suddendeath() with parm for type of error Arrays defined with wrong number of maximum values

E.g., “year” array with only 365 valuesIn leap year,

December 30 is #365Next day tries to roll to 366 > limitCauses process or system crash

But going under or over any limits can cause problems

Page 18: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

18 Copyright © 2015 M. E. Kabay. All rights reserved.

Parameter Passing ErrorsModules / routines / objects must respect

expected / defined variables passed among themPassing wrong types or contents may

cause serious errorsCan corrupt data (e.g., writing into wrong area

of memory or disk)May affect logical

flagsCan switch execution

into aberrant paths

Page 19: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

19 Copyright © 2015 M. E. Kabay. All rights reserved.

Race ConditionsRace condition exists when processes

depend on precise timing for correct operation – but have no control over timing

Typical examplesLost update problemDeadly embrace in locking

May not notice errors because overlap may be very short and so occur very rarelyE.g., if update takes 10 ms but there are

only 100 updates per minute, unlikely that two users will try to update same record simultaneously

Page 20: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

20 Copyright © 2015 M. E. Kabay. All rights reserved.

Load Conditions

Resources are always limitedStorageNumbers of usersTotal number of transactionsThroughput

ConsiderHigh volume (total work)High stress (maximum work

in specified period)

Page 21: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

21 Copyright © 2015 M. E. Kabay. All rights reserved.

Resource ExhaustionSystem resources can be used up

CPURAMDisk storageOS tablesSemaphores

E.g., inadequate RAM May cause thrashing Main memory constantly written to virtual

memory on disk and backSlows throughput to rate of disk I/O

instead of RAM and bus speedsTypically at least 1000 times slower

Page 22: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

22 Copyright © 2015 M. E. Kabay. All rights reserved.

Interapplication ConflictsApplication program interfaces (APIs) can

change as programs and operating systems change

Inconsistencies can develop between versions of operating system, utilities and application programs

Must keep up to date on changes and adapt to evolving programming environment

Page 23: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

23 Copyright © 2015 M. E. Kabay. All rights reserved.

Other Technical Errors

Interactions with devicesIgnoring error codesUsing busy or missing

devicesMust recover gracefully

from abnormal conditions Incorrect program

compilation (builds)Using old library componentsUsing wrong library (e.g., test version with

debugging code active)

Page 24: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

24 Copyright © 2015 M. E. Kabay. All rights reserved.

Regulatory Compliance ConsiderationsSome legislation such as Sarbanes-Oxley

(SOX) may require careful records of all errors and their remediationMust demonstrate due

care and diligence in preventing harm

Document existence and proper operation of internal controls

Failure to keep records may put organization in serious legal difficulties

Page 25: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

25 Copyright © 2015 M. E. Kabay. All rights reserved.

User Interface ErrorsOverview of User InterfaceFunctionalityControl (Command) StructurePerformanceOutput Format

Page 26: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

26 Copyright © 2015 M. E. Kabay. All rights reserved.

Overview of User InterfaceUI: all aspects of system relevant to user

UVM: user virtual machineScreens, mouse movements, keyboard

functions, print outputs, sounds, colors….Problems arise when developers fail to consider

users’ perspective“Who could possibly have thought of doing

that???”“Why can’t the **** users figure that out

themselves???”Documentation is essential to support users

But also for management and audit purposes

Page 27: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

27 Copyright © 2015 M. E. Kabay. All rights reserved.

Functionality Problems (1)Confusing, awkward, difficult, impossibleFunction is missing Undocumented featuresRequired information is missingProgram fails to confirm / respond to valid inputErrors in outputConflicting names for

featuresToo much information

Page 28: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

28 Copyright © 2015 M. E. Kabay. All rights reserved.

Functionality Problems (2)Cursor disappears or appears in wrong placeScreen displays are wrong Instructions difficult to find or read Identical functions require different

operationsScreens don’t match expected formatPasswords or other confidential data unprotected Impossible to trace

data entry or changes (bad audit trails)

Segregation of duties not enforced

Page 29: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

29 Copyright © 2015 M. E. Kabay. All rights reserved.

Control (Command) Structure ErrorsSequence of operations determined by control

structureErrors can confuse users or cause data loss; e.g.,

Impossible to move between menusConfusing, repetitive, contradictory menusInadequate command-line entriesRequiring non-intuitive command-line entriesDeviating from operating system conventionsFailure to show correct error messagesContradicting standard keyboard function keysOmitting required commandsViolating privacy and other security constraints

Page 30: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

30 Copyright © 2015 M. E. Kabay. All rights reserved.

Performance

Quality of service (QoS) or service-level agreements (SLA) may define required throughoutMaximum response timesMinimum data throughputs per unit of timeMinimum transaction rates

Rigid designs may impede rapid response to changing requirementsE.g., programming business rules in code

instead of in database metadata

Page 31: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

31 Copyright © 2015 M. E. Kabay. All rights reserved.

Output Format

Printed or screen outputs must be controllable by user

FontsEmphasis (bolding, underlining, italics…)SpacingTables, graphs, figures….Precision of numeric dataOutput device

Page 32: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

32 Copyright © 2015 M. E. Kabay. All rights reserved.

Designing SW Test Cases

Good TestsEmphasize Boundary ConditionsCheck All State TransitionsUse Test-Coverage MonitorsSeedingBuilding Test Data Sets

Page 33: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

33 Copyright © 2015 M. E. Kabay. All rights reserved.

Good Tests Impossible to test program to perfection

Too costly and lengthy But good testing finds most problems

Emphasize eliminating serious errors Full-disclosure debate

Should researchers announce bugs and vulnerabilities to the world immediately?

Or should they tell developers first and give time to fix problems?

Equivalence classes importantDefine tests that can be considered equivalentExamine designE.g., a program may treat all data < boundary same

an equivalence class “less than lower limit”

Page 34: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

34 Copyright © 2015 M. E. Kabay. All rights reserved.

Emphasize Boundary ConditionsEspecially important to check boundary data

Below, at and above boundariesAlso test using different user categories

AdminRoot / super-userData entryRead-only

Be especially careful to test for buffer overflowsWidely used by criminal hackersCan insert code into stack of interpreter in long

data input stringsExecute unauthorized code

Page 35: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

35 Copyright © 2015 M. E. Kabay. All rights reserved.

Check All State TransitionsEvery change in data constitutes a state transitionMap probably state transitions

Transition probability matrix: from A to BMenu maps show exactly where user can go in

program from each menuMay not be able to test all possible transitions

But can test most likely transitions firstTest every limit

Tools available for certain applications such as Web code

Test for race conditionsUse multiple clients executing automated

scripts

Page 36: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

36 Copyright © 2015 M. E. Kabay. All rights reserved.

Use Test-Coverage Monitors Difficult to track execution of program during test to

identify which modules being runPrimitive hand-coding writes log recordsCall print function with parameter for each

routineConditional compilation can allow debugging

statements to remain or not Better: test-coverage monitors track every line of

source codeShow reports of how often every line usedThus can spot holes in testing Or holes in logic – code impossible to reachOr unauthorized code (Trojan horses, logic

bombs)

Page 37: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

37 Copyright © 2015 M. E. Kabay. All rights reserved.

Seeding

Add known bugs to programRun testSee if you catch the bugsCan also estimate approximate rate of capture

by looking at proportion of known bugs spotted

Page 38: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

38 Copyright © 2015 M. E. Kabay. All rights reserved.

Building Test Data SetsDO NOT USE ACTUAL PRODUCTION DATA IN

TESTING!You may extract sample data sets from

production data for testingBut keep confidentiality considerations in

mindMay have to anonymize or randomize some

fields (e.g., for Health Insurance Portability and Accountability Act – HIPAA)

Ideally, use completely separate test systemCan use historical data with due attention to

security / privacyAlso supports compliance issues (HIPAA,

SOX…)

Page 39: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

39 Copyright © 2015 M. E. Kabay. All rights reserved.

Before Going Into Production Regression Testing

Testing everything you have done beforeDone after every change

Automated TestingRepetitive testing difficult for people to monitor

effectively (eyes glaze over)Automated testing far more efficientCan keep track of all errorsProvide detailed report

Tracking Bugs from Discovery to RemovalFix the bugFind out why there was a bugFix the underlying cause(s) of the bug

Page 40: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

40 Copyright © 2015 M. E. Kabay. All rights reserved.

Managing Change Change Request

Organized documentation of who wants what why when

Allows prioritization Tracking System

Make sure that bugs are not forgottenAlso gather statistics about where bugs are being

found and of what type – helps diagnosisEssential for continuous process improvement

Regression Testing – as mentioned, always required after every bug fix

DocumentationEssential for continued smooth operationsRequired for compliance with legal, regulatory

standards

Page 41: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

41 Copyright © 2015 M. E. Kabay. All rights reserved.

Sources of Bugs & Problems

Design Flaws Implementation FlawsUnauthorized Changes to Production Code Insufficient or Substandard Programming

QualityData CorruptionCriminal Hacking

Page 42: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

42 Copyright © 2015 M. E. Kabay. All rights reserved.

Design Flaws

Poor communication between users and designers

Keep good documentation throughout development processHelps identify breakdown in

communicationTrying to meet unrealistic delivery schedules

Managers must resist pressure to rushAll of the development stages are

importantRushing may lead to serious errors later

Page 43: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

43 Copyright © 2015 M. E. Kabay. All rights reserved.

Implementation Flaws

Time pressure a major problemDevelopers, tester skimp on documentation

and testingEnd up with unrecognized flawsAllocate sufficient time to avoid blundersRule of thumb: 60% of software project

should be devoted to TESTING

Page 44: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

44 Copyright © 2015 M. E. Kabay. All rights reserved.

Unauthorized Changes to Production Code

Any unauthorized change to production code is a serious violation of standard policies

Should be viewed as sabotageCritically important to determine who did it

and whyFind out how programmer got access to

production code

Page 45: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

45 Copyright © 2015 M. E. Kabay. All rights reserved.

Insufficient or Substandard Programming QualityTesting and support records may identify who

causes most of the problems in codeOr possible that entire team needs coaching –

or replacementScreen programmers carefully before placing

on critical projectsUse independent team for QA

Page 46: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

46 Copyright © 2015 M. E. Kabay. All rights reserved.

Data Corruption

Logical corruptionPoor programmingInvalid data entryBad locking during concurrent accessIllegal access to other process’ data stack

Physical corruptionHardware failure

Analyze all data corruption cases thoroughlyDocumentFix underlying problems

Page 47: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

47 Copyright © 2015 M. E. Kabay. All rights reserved.

Criminal Hacking

Audit trails (logs) essential tool for analysis of problemsConforming to regulatory & legal

requirementsIncident responseResearch

PoliciesArchiving – how long to keep?Security – e.g., chained checksums,

encryptionIntrusion detection systems

Page 48: 1 Copyright © 2015 M. E. Kabay. All rights reserved. SW Development & QA CSH6 Chapter 39 “Software Development and Quality Assurance” Diane E. Levine,

48 Copyright © 2015 M. E. Kabay. All rights reserved.

Now go and study