+ All Categories
Home > Technology > SOFWARE QUALITY, INTRODUCTION

SOFWARE QUALITY, INTRODUCTION

Date post: 01-Dec-2014
Category:
Upload: networked-research-lab-uk
View: 2,869 times
Download: 3 times
Share this document with a friend
Description:
Software Quality Assurance
29
SOFTWARE PROCESS AND QUALITY ASSURANCE LESSON 1, INTRODUCTION Paola Di Maio MFU.AC.TH
Transcript
Page 1: SOFWARE QUALITY, INTRODUCTION

SOFTWARE PROCESS AND QUALITY ASSURANCE

LESSON 1, INTRODUCTION

Paola Di Maio

MFU.AC.TH

Page 2: SOFWARE QUALITY, INTRODUCTION

INTRODUCTION

1) KNOW YOUR ENEMY: IDENTIFY RISK OF SOFTWARE FAILURE (examples)

2) REVISION: SOFTWARE DEVELOPMENT PROCESS

2) INTRODUCTION TO QUALITY AND QUALITY MANAGEMENT

Page 3: SOFWARE QUALITY, INTRODUCTION

• EXAMPLE 1: In early 2006 problems in a government's financial monitoring software resulted in incorrect election candidate financial reports being made available to the public. The government's election finance reporting web site had to be shut down until the soft

ware was repaired.

• http://www.sereferences.com/software-failure-list.php

THE ENEMY: RISK OF FAILURE

Page 4: SOFWARE QUALITY, INTRODUCTION

EXAMPLE 2: A September 2006 news report indicated problems with software utilized in a state government's primary election, resulting in periodic unexpected rebooting of voter checkin machines, which were separate from the electronic voting machines, and resulted in confusion and delays at voting sites. The problem was reportedly due to insufficient testing.

Page 5: SOFWARE QUALITY, INTRODUCTION

EXAMPLE 3: In August of 2006 a U.S. government student loan service erroneously made public the personal data of as many as 21,000 borrowers on it's web site, due to a software error. The bug was fixed and the government department subsequently offered to arrange for free credit monitoring services for those affected.

• http://www.sereferences.com/software-failure-list.php

Page 6: SOFWARE QUALITY, INTRODUCTION

Example 4:

A software error reportedly resulted in overbilling of up to several thousand dollars to each of 11,000 customers of a major telecommunications company in June of 2006. It was reported that the software bug was fixed within days, but that correcting the billing errors would take much longer.

http://www.sereferences.com/software-failure-list.php

Page 7: SOFWARE QUALITY, INTRODUCTION

EXAMPLE 5: A May 2005 newspaper article reported that a major hybrid car manufacturer had to install a software fix on 20,000 vehicles due to problems with invalid engine warning lights and occasional stalling. In the article, an automotive software specialist indicated that the automobile industry spends $2 billion to $3 billion per

year fixing software problems.

MORE EXAMPLES OF FAILURE:http://www.sereferences.com/software-failure-list.php

Page 8: SOFWARE QUALITY, INTRODUCTION

WHAT ARE BUGS?• BUGS ARE DEFECTS

– At Harvard one August night in 1945, Hopper and her associates were working on the "granddaddy" of modern computers, the Mark I. "Things were going badly; there was something wrong in one of the circuits of the long glass-enclosed computer," she said. "Finally, someone located the trouble spot and, using ordinary tweezers, removed the problem, a two-inch moth. From then on, when anything went wrong with a computer, we said it had bugs in it." Hopper said that when the veracity of her story was questioned recently, "I referred them to my 1945 log book, now in the collection of Naval Surface Weapons Center, and they found the re

mains of that moth taped to the page in question."

Page 9: SOFWARE QUALITY, INTRODUCTION
Page 10: SOFWARE QUALITY, INTRODUCTION

Why does software have bugs? http://www.softwaretestinghelp.com/why-does-software-have-bugs/

• Miscommunication or no communication • Software complexity - the complexity of current software applications

can be difficult to comprehend for anyone without experience in modern-day software development. Multi-tiered applications, client-server and distributed applications, data communications, enormous relational databases, and sheer size of applications have all contributed to the exponential growth in software/system complexity.

• programming errors - programmers, like anyone else, can make mistakes.

• changing requirements (whether documented or undocumented) - the end-user may not understand the effects of changes, or may understand and request them anyway - redesign, rescheduling of engineers, effects on other projects, work already completed that may have to be redone or thrown out, hardware requirements that may be affected, etc.

Page 11: SOFWARE QUALITY, INTRODUCTION

• time pressures - scheduling of software projects is difficult at best, often requiring a lot of guesswork. When deadlines loom and the crunch comes, mistakes will be made.

• egos - people are afraid of showing if they cannot solve a problem

• poorly documented code - it's tough to maintain and modify code that is badly written or poorly documented; the result is bugs. In many organizations management provides no incentive for programmers to document their code or write clear, understandable, maintainable code. In fact, it's usually the opposite: they get points mostly for quickly turning out code, and there's job security if nobody else can understand it ('if it was hard to write, it should be hard to read').

• software development tools - visual tools, class libraries, compilers, scripting tools, etc. often introduce their own bugs or are poorly documented, resulting in added bugs.

• REFS: http://www.softwaretestinghelp.com/why-does-software-have-bugs/

Page 12: SOFWARE QUALITY, INTRODUCTION

SOFTWARE ENGINEERING

• "The application of systematic, quantifiable, disciplined approach to development, operation and mainteanance of software: the application of engineering principles to software“ IEEE 610.12

Page 13: SOFWARE QUALITY, INTRODUCTION

SOFTWARE DEVELOPMENT PROCESS

PROCESS = LIFECYCLE

LIFECYCLE=METHOD, STEPS

Phases of the software cycle and the order in which those phases are executed. 

Different development methods result in different types of lifecycles:

example: waterfall, v-shaped, spiral

Page 14: SOFWARE QUALITY, INTRODUCTION

General Life Cycle Model

• Each phase produces deliverables required by the next phase in the life cycle.  Requirements are translated into design.  Code is produced during implementation that is driven by the design.  Testing verifies the deliverable of the implementation phase against requirements.

REQUIREMENTS

>>>>DESIGN

>>>>IMPLEMENTATION

>>>>TESTING

Page 15: SOFWARE QUALITY, INTRODUCTION

WATERFALL

Page 16: SOFWARE QUALITY, INTRODUCTION

V SHAPED

Page 17: SOFWARE QUALITY, INTRODUCTION

INCREMENTAL

Page 18: SOFWARE QUALITY, INTRODUCTION

SPIRAL

Page 19: SOFWARE QUALITY, INTRODUCTION

WHAT IS QUALITY?

"Quality software is reasonably bug-free, delivered on time and within budget, meets requirements and/or expectations, and is maintainable. "

1) FIT FOR PURPOSE

2) ZERO DEFECT

3) COMPLIANT WITH STANDARD

(What standards?)

Page 20: SOFWARE QUALITY, INTRODUCTION

GOOD CODE (examples)

• minimize or eliminate use of global variables.

• use descriptive function and method names - use both upper and lower case, avoid abbreviations, use as many characters as necessary to be adequately descriptive (use of more than 20 characters is not out of line); be consistent in naming conventions.

• use descriptive variable names - use both upper and lower case, avoid abbreviations, use as many characters as necessary to be adequately descriptive (use of more than 20 characters is not out of line); be consistent in naming conventions.

• function and method sizes should be minimized; less than 100 lines of code is good, less than 50 lines is preferable.

• function descriptions should be clearly spelled out in comments preceding a function's code.

Page 21: SOFWARE QUALITY, INTRODUCTION

GOOD CODE/2

• use whitespace generously - vertically and horizontally

• each line of code should contain 70 characters max.

• one code statement per line.

• coding style should be consistent throught a program (eg, use of brackets, indentations, naming conventions, etc.)

• in adding comments, err on the side of too many rather than too few comments; a common rule of thumb is that there should be at least as many lines of comments (including header blocks) as lines of code.

• no matter how small, an application should include documentaion of the overall program function and flow (even a few paragraphs is better than nothing); or if possible a separate flow chart and detailed program documentation.

• make extensive use of error handling procedures and status and error loggin

g.

Page 22: SOFWARE QUALITY, INTRODUCTION

GOOD DESIGN• 'functional design' or 'internal design'. • Good internal design is indicated by software code whose overall structure i

s clear, understandable, easily modifiable, and maintainable; is robust with sufficient error-handling and status logging capability; and works correctly when implemented. Good functional design is indicated by an application whose functionality can be traced back to customer and end-user requirements

• For programs that have a user interface, it's often a good idea to assume that the end user will have little computer knowledge and may not read a user manual or even the on-line help; some common rules-of-thumb include:

• the program should act in a way that least surprises the user • it should always be evident to the user what can be done next and how to e

xit • the program shouldn't let the users do something stupid without warning the

m.

Page 23: SOFWARE QUALITY, INTRODUCTION

SOFTWARE QUALITY STANDARDS

• SEI = 'Software Engineering Institute' at Carnegie-Mellon University; initiated by the U.S. Defense Department to help improve software development processes

CMMI (5 Levels)

Page 24: SOFWARE QUALITY, INTRODUCTION

ISO

• 'International Organisation for Standardization' - The ISO 9001:2000 standard (which replaces the previous standard of 1994) concerns quality systems that are assessed by outside auditors, and it applies to many kinds of production and manufacturing organizations, not just software. It covers documentation, design, development, production, testing, installation, servicing, and other processes.

Page 25: SOFWARE QUALITY, INTRODUCTION

ISO (continued)

• The full set of standards consists of: (a)Q9001-2000 - Quality Management Systems: Requirements; (b)Q9000-2000 - Quality Management Systems: Fundamentals and Vocabulary; (c)Q9004-2000 - Quality Management Systems: Guidelines for Performance Improvements. To be ISO 9001 certified, a third-party auditor assesses an organization, and certification is typically good for about 3 years, after which a complete reassessment is required. Note that ISO certification does not necessarily indicate quality products - it indicates only that documented processes are followed.

Page 26: SOFWARE QUALITY, INTRODUCTION

ISO 9126

Six high level quality characteristics that can be used in software evaluation.

• functionality• reliability• usability• efficiency• maintainability• portability

Page 27: SOFWARE QUALITY, INTRODUCTION

READING LIST

• http://www.softwareqatest.com/qatfaq1.html

Page 28: SOFWARE QUALITY, INTRODUCTION

ASSIGNMENT 11) Give examples of some software failures,

and discuss how you think they could have been avoided

Describe advantages and disadvantages of different software development methods

2) What is quality? Why is quality important?

3) List the most important standards in Software development

Page 29: SOFWARE QUALITY, INTRODUCTION

LEARNING TARGETS

1. UNDERSTAND RISKS ASSOCIATED WITH SOFTWARE AND GIVE SOME EXAMPLES

2. UNDERSTAND THE BENEFITS OF SE AND VARIOUS APPROACHES WITH EXAMPLES

3. BEGIN TO DEFINE QUALITY

4. NAME AND DESCRIBE SOME OF THE MOST IMPORTANT QUALITY STANDARDS


Recommended