Software Quality Engineering & Testing Basics

Embed Size (px)

Citation preview

  • 8/14/2019 Software Quality Engineering & Testing Basics

    1/46

    Software Quality

    Engineering & TestingBasics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    2/46

    Software Quality Engineering & Testing Basics

    Contents

    Part 1: Classic SDLC Models ..

    Part 2: Software Testing ..

    Part 3: Software Quality Engineering ..

  • 8/14/2019 Software Quality Engineering & Testing Basics

    3/46

    Part 1

    Classic SDLC Models

  • 8/14/2019 Software Quality Engineering & Testing Basics

    4/46

    The classic SDLC Models:

    4. Big Bang

    5. Code and fix

    6. Waterfall7. Spiral

    Software Quality Engineering & Testing Basics

    Part 1 : ass c DLModels

    P 1 DL

  • 8/14/2019 Software Quality Engineering & Testing Basics

    5/46

    Part 1 : ass c DLModels

    Big-Bang Model :

    The Approach

    People+Money+Energy=PerfectSoftware or Nothing!

    Advantages

    Simple, needs less planning, lessformal development process

    DisadvantagesNo formal testing activities, cantmonitor, high risk

    Software Quality Engineering & Testing Basics

    P 1 DL

  • 8/14/2019 Software Quality Engineering & Testing Basics

    6/46

    Part 1 : ass c DLModels

    Code and Fix Model :

    The Approach

    Informal specification loop ofcode and fix till enough-is-enough

    decisionRelease

    Advantages

    Little planning and documentation

    work.

    Disadvantages

    Hard to manage the testing

    Software Quality Engineering & Testing Basics

    P t 1 DL

  • 8/14/2019 Software Quality Engineering & Testing Basics

    7/46

    Part 1 : ass c DLModels

    Waterfall Model :

    The Approach

    Discrete phases, a review aftereach phase will decide to move

    next or stay at this phase till itsready.

    Advantages

    Easy to test (clear requirements)

    DisadvantagesHigh bugs fixing cost (bugscreep), customer is far from thistill the end

    Software Quality Engineering & Testing Basics

    P t 1 DL

  • 8/14/2019 Software Quality Engineering & Testing Basics

    8/46

    Part 1 : ass c DLModels

    Spiral Model :

    The Approach

    Round1 (Waterfall Prototype)

    Evaluate Round1

    Round2 (Waterfall Prototype)

    Loop

    Advantages

    Easy to test, the customer is

    tightlyinvolved

    Disadvantages

    Need risk-assessments expertise

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    9/46

    Part 2

    Software Testing

  • 8/14/2019 Software Quality Engineering & Testing Basics

    10/46

    Part 2 : Software Testing

    What is software testing?

    A quality control activity aimed atevaluating a software item against thegiven system requirements.

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    11/46

    Part 2 : Software Testing

    What is software testing?

    A quality control activity aimed atevaluating a software item against thegiven system requirements.

    Software Quality Engineering & Testing Basics

    Testing

    isaQC

    activity

  • 8/14/2019 Software Quality Engineering & Testing Basics

    12/46

    Part 2 : Software Testing

    What is the V&V?

    Verification: Confirming that something(software) meets its specification.

    Validation: Confirming that it meetsthe users requirements.

    The two major V&V activities arereviews, and testing. *

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    13/46

    Part 2 : Software Testing

    What is the V&V?

    Verification: Confirming that something(software) meets its specification

    Validation: Confirming that it meetsthe users requirements.

    The two major V&V activities arereviews, and testing.

    Software Quality Engineering & Testing Basics

    Testi

    ngis

    aparto

    fV&V

    activ

    ities

  • 8/14/2019 Software Quality Engineering & Testing Basics

    14/46

    Part 2 : Software Testing

    What should the tester do?

    Find the bugs

    Find them early

    Make sure that they have beenfixed

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    15/46

    Part 2 : Software Testing

    What should not the tester do?

    Fix the bugs! *

    Trust the others!

    Test with no requirements! Not to report the obvious bugs!

    Test with good faith!

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    16/46

    Part 2 : Software Testing

    What are the testing types?

    1. Static Testing

    Testing a software that is notrunning.

    2. Dynamic Testing

    Test running software.

    Unit (white box), Functional,

    Integration, System, Regression,Volume, Load, Stress Integration,Usability, Localization, Live(Production), Compatibility, Smoke,Ad-hoc, User Acceptance

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    17/46

    Part 2 : Software Testing

    2. Dynamic Testing (Contd)

    Unit Test: A test of one component of the system.

    White Box Test:Testing software with complete knowledge of itsinternal code and logic.

    Black Box Test:Testing software based on output only withoutany knowledge of its internal code or logic.

    Gray Box Test:Testing software with some knowledge of itsinternal code or logic.

    Functional Test:Testing functional requirements of software,such as menus and key commands.

    System Test: Overall testing in the user environment.

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    18/46

    Part 2 : Software Testing

    2. Dynamic Testing (Contd)

    Acceptance Test:The test performed by end users to approve thesystem.

    Alpha Test:The first testing of a product in the production

    environment before going live.Beta Test:Testing done by end users.

    Volume testing: testing a software application for a certain datavolume.*

    Load testing: creating demand on a system or device andmeasuring its response.

    Stress testing: determine the stability of a given system or entity.

    Compatibility testing: measures how well the system operates ondifferent operating environment. *Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    19/46

    Part 2 : Software Testing

    2. Dynamic Testing (Contd)

    Recovery Test:Testing a system's ability to recover from ahardware or software failure.

    Accessibility testing: measure how well the system interface

    serve users with disabilities.*

    Negative Test: Using invalid input to test a program's errorhandling.

    Regression testing:Testing to make sure that the fix is working

    as expected.

    Ad Hoc Test: Informal testing without a test case.

    Automated Test: Using software to test software.*

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    20/46

    Part 2 : Software Testing

    What is the bug ?

    Things the software does that while itis not supposed to do, OR somethingthe software doesn't while it issupposed to.

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    21/46

    Part 2 : Software Testing

    What are the differencebetween the bug severity andpriority?Priority means how urgently bug isneeded to fix.

    Severity means how badly it harmsthe system.

    Software Quality Engineering & Testing Basics

  • 8/14/2019 Software Quality Engineering & Testing Basics

    22/46

    Part 2 : Software Testing

    How to report a bug?

    Software Quality Engineering & Testing Basics

    Report the pattern not anexample.

    Dont describe what's wrong,only!

    Be direct to the point (dont tell astory!).

    Report the bug, but not how tosolve it.

    Dont mix between priority and

    severity.

  • 8/14/2019 Software Quality Engineering & Testing Basics

    23/46

    Part 2 : Software Testing

    How to report a bug? (Contd)

    Software Quality Engineering & Testing Basics

    Dont use: CAPS, red letters,red circles, ! , ?.

    Dont use your personaljudgment.

    Write with the fixer language, notwith yours.

    Minimize the options.

    Dont use the word Sometimes.

  • 8/14/2019 Software Quality Engineering & Testing Basics

    24/46

    Part 2 : Software Testing

    How to report a bug? (Contd)

    Software Quality Engineering & Testing Basics

    Dont group the bugs.

    Dont update the bug

    description.

    Dont update the bug severity.

  • 8/14/2019 Software Quality Engineering & Testing Basics

    25/46

    Part 2 : Software Testing

    When not to fix a bug?

    Software Quality Engineering & Testing Basics

    Its too risky to fix it.

    Its not worth fixing.

    There is no enough time.

    Its not really a bug.

  • 8/14/2019 Software Quality Engineering & Testing Basics

    26/46

    Part 2 : Software Testing

    What are the testing activities?

    Software Quality Engineering & Testing Basics

    1. Test Plan.

    2. Test Analysis.

    3. Test Design.4. Test Cases Development.5. Test Cases Execution.6. Test Reporting.

    7. Bugs Reporting.8. Releasing reporting.

    9. User Acceptance Testing.

  • 8/14/2019 Software Quality Engineering & Testing Basics

    27/46

    Part 2 : Software Testing

    When to stop testing?

    Software Quality Engineering & Testing Basics

    1. Deadline has be been reached.

    2. Test cases completed with

    passed percentage.

    3. End of test budget.

  • 8/14/2019 Software Quality Engineering & Testing Basics

    28/46

    Part 3

    Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    29/46

    Part 3 : Software Quality

    What is 'Software QualityAssurance?

    Software Quality Engineering & Testing Basics

    Software QA involves the entiresoftware development PROCESS- monitoring and improving theprocess, making sure that anyagreed-upon standards andprocedures are followed, andensuring that problems are

    found and dealt with. It isoriented to 'prevention'.

    f li

  • 8/14/2019 Software Quality Engineering & Testing Basics

    30/46

    What is the Quality Software?

    Software Quality Engineering & Testing Basics

    Quality software is fairly bug-free, delivered on time andwithin budget, meetsrequirements and/orexpectations, and ismaintainable. However, qualityis obviously a subjective term.

    Part 3 : Software Quality

    P 3 S f Q li

  • 8/14/2019 Software Quality Engineering & Testing Basics

    31/46

    What are the main qualityattributes?

    Software Quality Engineering & Testing Basics

    Availability: Is it available when and where I need touse it?

    Efficiency: How few system resources does itconsume?

    Flexibility: How easy is it to add new features?

    Installability: How easy is it to correctly install theproduct.

    Interoperability: How easily does it interconnect withother systems?

    Maintainability: How easy it is to correct defects or

    make changes?

    Part 3 : Software Quality

    P 3 S f Q li

  • 8/14/2019 Software Quality Engineering & Testing Basics

    32/46

    What are the main qualityattributes?

    Software Quality Engineering & Testing Basics

    Reliability: How long does it run before causing afailure?

    Reusability: How easily can we use components inother systems?

    Testability: Can I verify that it was implementedcorrectly?

    Usability: How easy is it for people to learn or to use?

    Performance: the response time, utilization, andthroughput behavior of the system.

    Part 3 : Software Quality

    P t 3 S ft Q lit

  • 8/14/2019 Software Quality Engineering & Testing Basics

    33/46

    What are the main qualityattributes?

    Software Quality Engineering & Testing Basics

    Security: systems ability to resist unauthorizedattempts at usage or behavior modification, while stillproviding service to authorized users.

    Part 3 : Software Quality

    P t 3 S ft Q lit

  • 8/14/2019 Software Quality Engineering & Testing Basics

    34/46

    What are the types of softwarereviews?

    Software Quality Engineering & Testing Basics

    1. Peer Review

    2. Walkthrough

    3. Inspection

    Moref

    ormal

    Part 3 : Software Quality

    P t 3 S ft Q lit

  • 8/14/2019 Software Quality Engineering & Testing Basics

    35/46

    What is the characteristics of Peerreviews?

    Software Quality Engineering & Testing Basics

    Informal.

    Audience: Owner(author) and peer(s)of similar expertise (no managers).

    It require guidelines and checklist.

    Part 3 : Software Quality

    P t 3 S ft Q lit

  • 8/14/2019 Software Quality Engineering & Testing Basics

    36/46

    What is the characteristics of the

    walkthrough?

    Software Quality Engineering & Testing Basics

    More formal.

    Audience: 3-5 , at least 1 senior, the

    owner act as a reader and recorder.

    The owner should send a copy of thingsthat need review prior to the meeting.

    Reader should write a report with thefeedback and how to address it.

    2nd meeting can be conducted to followup.

    Part 3 : Software Quality

    P t 3 S ft Q lit

  • 8/14/2019 Software Quality Engineering & Testing Basics

    37/46

    What is the characteristics of the

    Inspection?

    Software Quality Engineering & Testing Basics

    The most formal.

    Audience: typically 3-8 people including

    a moderator, reader, and a recorder totake notes.

    The reader should not be the owner.

    The owner should send a copy of thingsthat need review prior to the meeting.

    Each Inspectors should review the code fora different perspective.

    Part 3 : Software Quality

    P t 3 S ft Q lit

  • 8/14/2019 Software Quality Engineering & Testing Basics

    38/46

    What is the characteristics of the

    Inspection? (Contd)

    Software Quality Engineering & Testing Basics

    After the inspection meeting the moderatorcall for another meeting to discuss thefeedback and how the owner will address

    them.

    Require training.

    Part 3 : Software Quality

    P t 3 S ft Q lit

  • 8/14/2019 Software Quality Engineering & Testing Basics

    39/46

    Quality standards and auditingorganizations

    Software Quality Engineering & Testing Basics

    ISO (International Organization forStandardization).

    CMMI (Capability Maturity ModelIntegration).

    IEEE (Institute of Electrical and ElectronicsEngineers).

    Part 3 : Software Quality

    Part 3 Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    40/46

    ISO 9001:2000

    Software Quality Engineering & Testing Basics

    ISO 9001 is a series of documents that definerequirements for the Quality ManagementSystem Standard. ISO 9001 is one of thedocuments in this set; it contains the actualrequirements an organization must be incompliance with to become ISO 9001Registered.

    Part 3 : Software Quality

    Part 3 : Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    41/46

    Why do companies want ISO 9001:200

    Software Quality Engineering & Testing Basics

    Many organizations decide to Implement ISO9001 and obtain registration because itassures customers that the company has a

    good Quality Management System (QMS) inplace. An organization with an effective QMSwill typically meet customer expectationsbetter than an organization that does nothave an effective QMS. Many organizations

    require their suppliers to have ISO 9001Registration.

    Part 3 : Software Quality

    Part 3 : Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    42/46

    What is CMMI ?

    Software Quality Engineering & Testing Basics

    Capability Maturity Model Integration (CMMI)is a process improvement approach thatprovides organizations with the essential

    elements of effective processes. It can beused to guide process improvement across aproject, a division, or an entire organization.CMMI provide guidance for quality processes,and provide a point of reference for appraising

    current processes.

    Part 3 : Software Quality

    Part 3 : Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    43/46

    What are the 5 levels of CMMI ? (Contd

    Software Quality Engineering & Testing Basics

    Level One Initial

    Company has no standard process forsoftware development. Nor does it have aproject-tracking system that enables

    developers to predict costs or finish dates withany accuracy.

    Level Two - Managed

    Company has installed basic software

    management processes and controls. Butthere is no consistency or coordination amongdifferent groups.

    Part 3 : Software Quality

    Part 3 : Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    44/46

    What are the 5 levels of CMMI ? (Contd

    Software Quality Engineering & Testing Basics

    Level Three Defined

    Company has pulled together a standard setof processes and controls for the entireorganization so that developers can move

    between projects more easily and customerscan begin to get consistency from differentgroups.

    Level Four Quantitively Managed

    In addition to implementing standardprocesses, company has installed systems tomeasure the quality of those processes acrossall projects.

    Part 3 : Software Quality

    Part 3 : Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    45/46

    What are the 5 levels of CMMI ? (Contd

    Software Quality Engineering & Testing Basics

    Level Five - OptimizedCompany has accomplished all of the aboveand can now begin to see patterns inperformance over time, so it can tweak itsprocesses in order to improve productivityand reduce defects in software developmentacross the entire organization.

    Part 3 : Software Quality

    Part 3 : Software Quality

  • 8/14/2019 Software Quality Engineering & Testing Basics

    46/46

    What is the IEEE ?

    The Institute of Electrical and ElectronicsEngineers" (IEEE) is a non-profit organizationthat develops, defines, and reviewselectronics and computer science standards.

    Part 3 : Software Quality