Top Banner
1 Software Quality Software Quality Assurance: Techniques Assurance: Techniques and Tools and Tools By: Matt Heinzelman By: Matt Heinzelman
39

SE411 - Matt Heinzelman Software Quality Assurance Presentation

Oct 22, 2014

Download

Documents

annaji03
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SE411 - Matt Heinzelman Software Quality Assurance Presentation

11

Software Quality Software Quality Assurance: Techniques Assurance: Techniques

and Toolsand Tools

By: Matt HeinzelmanBy: Matt Heinzelman

Page 2: SE411 - Matt Heinzelman Software Quality Assurance Presentation

22

OverviewOverview

• What is Software Quality Assurance?What is Software Quality Assurance?• Standards and ProceduresStandards and Procedures

– Requirement StandardsRequirement Standards– Design StandardsDesign Standards– Code StandardsCode Standards– Documentation StandardsDocumentation Standards

• TechniquesTechniques– AuditAudit

• ToolsTools– Configuration and Problem ManagementConfiguration and Problem Management– Testing SoftwareTesting Software

• Benefit of Software Quality Assurance in ProjectsBenefit of Software Quality Assurance in Projects

Page 3: SE411 - Matt Heinzelman Software Quality Assurance Presentation

33

What is Software Quality What is Software Quality Assurance?Assurance?

• Used to Monitor and Improve the Used to Monitor and Improve the Software Development ProcessSoftware Development Process

• Making Sure That Standards and Making Sure That Standards and Procedures are FollowedProcedures are Followed

• Ensures that Problems are Found and Ensures that Problems are Found and Dealt withDealt with

• Orientated to ‘Prevention’Orientated to ‘Prevention’

Page 4: SE411 - Matt Heinzelman Software Quality Assurance Presentation

44

What is SQA?What is SQA?

• Planned and Systematic Approach to the Planned and Systematic Approach to the Evaluation of the Quality of and Adherence Evaluation of the Quality of and Adherence to:to:– Software Product StandardsSoftware Product Standards– ProcessesProcesses– ProceduresProcedures

• Assures that Standards and Procedures Assures that Standards and Procedures are Established and Followed throughout are Established and Followed throughout the Software Development Processthe Software Development Process

• IEEE ISO 9000 CertifiedIEEE ISO 9000 Certified

Page 5: SE411 - Matt Heinzelman Software Quality Assurance Presentation

55

Standards and ProceduresStandards and Procedures

• Framework for which Software EvolvesFramework for which Software Evolves

• StandardsStandards– Established Criteria to which Software Products Established Criteria to which Software Products

are Comparedare Compared

• ProceduresProcedures– Established Criteria to which Development and Established Criteria to which Development and

Control Procedures are FollowedControl Procedures are Followed

• SQA is based on the Following of SQA is based on the Following of Standards and ProceduresStandards and Procedures

Page 6: SE411 - Matt Heinzelman Software Quality Assurance Presentation

66

Standards and ProceduresStandards and Procedures

• Proper Documentation of Standards Proper Documentation of Standards and Procedures is Necessary for SQAand Procedures is Necessary for SQA

• SQA Activities of Process Monitoring, SQA Activities of Process Monitoring, Product Evaluation, and Auditing rely Product Evaluation, and Auditing rely on these Standards and Procedureson these Standards and Procedures

• Any number of different Standards Any number of different Standards and Procedures can be used on a and Procedures can be used on a given systemgiven system

Page 7: SE411 - Matt Heinzelman Software Quality Assurance Presentation

77

Standards and ProceduresStandards and Procedures

• Requirement StandardsRequirement Standards– Specify the Form and Content of how Specify the Form and Content of how

Requirements are defined in a SystemRequirements are defined in a System– Establishes a System of how to write a Establishes a System of how to write a

RequirementRequirement• Short Phrase Describing RequirementShort Phrase Describing Requirement

• Elaborate into more DetailElaborate into more Detail

– Use a Numbering System for the Major Use a Numbering System for the Major Requirements and Sub-RequirementsRequirements and Sub-Requirements

– Many Major Companies have Software to aid in the Many Major Companies have Software to aid in the Requirement Writing ProcessRequirement Writing Process

Page 8: SE411 - Matt Heinzelman Software Quality Assurance Presentation

88

Standards and ProceduresStandards and Procedures

• Design StandardsDesign Standards– Specify the Content and Form of how Specify the Content and Form of how

Design Documents are DevelopedDesign Documents are Developed– Provide Rules and Methods to Transfer:Provide Rules and Methods to Transfer:

•Software Requirements to Software DesignSoftware Requirements to Software Design•Software Design into Software Design Software Design into Software Design

DocumentationDocumentation

– Many Major Companies have Design Many Major Companies have Design Development Software to aid in the Development Software to aid in the ProcessProcess

Page 9: SE411 - Matt Heinzelman Software Quality Assurance Presentation

99

Standards and ProceduresStandards and Procedures

• Code StandardsCode Standards– Specify what Language the Code is written in and Specify what Language the Code is written in and

Define any Restrictions on Language FeaturesDefine any Restrictions on Language Features– Code Standards Define:Code Standards Define:

• Legal Language StructuresLegal Language Structures

• Style ConventionsStyle Conventions

• Rules for Data Structures and InterfacesRules for Data Structures and Interfaces

• Internal Code DocumentationInternal Code Documentation

– Using Methods such as “Peer Reviews”, “Buddy Using Methods such as “Peer Reviews”, “Buddy Checks”, and Code Analysis can Enforce Checks”, and Code Analysis can Enforce StandardsStandards

Page 10: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1010

Standards and ProceduresStandards and Procedures

• Code StandardsCode Standards– A good thing but too many will Force A good thing but too many will Force

Productivity and Creativity to SufferProductivity and Creativity to Suffer– Examples of Good Code Standards:Examples of Good Code Standards:

• Reduction or Elimination of Global VariablesReduction or Elimination of Global Variables

• Function and Method Sizes should be MinimizedFunction and Method Sizes should be Minimized

• Each Line of Code should be Seventy Characters Each Line of Code should be Seventy Characters MaximumMaximum

• One Code Statement per LineOne Code Statement per Line

• Etc…Etc…

Page 11: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1111

Standards and ProceduresStandards and Procedures

• Documentation StandardsDocumentation Standards– Specify Form and Content for Planning, Specify Form and Content for Planning,

Control, and Product DocumentationControl, and Product Documentation– Provide Consistency throughout a SystemProvide Consistency throughout a System– Documentation can be written in any formDocumentation can be written in any form– Each Practice should be Documented so it Each Practice should be Documented so it

can be Repeated or Changed later if neededcan be Repeated or Changed later if needed

Page 12: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1212

Standards and ProceduresStandards and Procedures

• Documentation StandardsDocumentation Standards– Everything in a System should be Documented including:Everything in a System should be Documented including:

• SpecificationsSpecifications• DesignsDesigns• Business RulesBusiness Rules• Inspection ReportsInspection Reports• ConfigurationsConfigurations• Code ChangesCode Changes• Test PlansTest Plans• Test CasesTest Cases• Bug ReportsBug Reports• User ManualsUser Manuals• Etc…Etc…

– A System should be used to easily find and obtain Information A System should be used to easily find and obtain Information about a System and what Documentation will have that piece about a System and what Documentation will have that piece of Informationof Information

Page 13: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1313

TechniquesTechniques

• AuditAudit– The Major Technique used in SQAThe Major Technique used in SQA– Perform Product Evaluation and Process Perform Product Evaluation and Process

MonitoringMonitoring– Performed Routinely throughout the Software Performed Routinely throughout the Software

Development ProcessDevelopment Process– Look at a Process and/or Product in depth and Look at a Process and/or Product in depth and

compare to Established Standards and Procedurescompare to Established Standards and Procedures– Purpose is to assure that:Purpose is to assure that:

• Proper Control Procedures are being followedProper Control Procedures are being followed• Required Documentation is maintainedRequired Documentation is maintained• Developer’s Status Reports accurately reflect the status Developer’s Status Reports accurately reflect the status

of the activityof the activity

Page 14: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1414

TechniquesTechniques

• AuditAudit– Used to:Used to:

• Review ManagementReview Management• Technical ProcessesTechnical Processes• Assurance ProcessesAssurance Processes

– Provide an indication of the Quality and Status Provide an indication of the Quality and Status of the Software Productof the Software Product

– SQA Product is an Audit Report to Management SQA Product is an Audit Report to Management consisting of Findings and Recommendations consisting of Findings and Recommendations to bring development up to par with Standards to bring development up to par with Standards and Proceduresand Procedures

Page 15: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1515

ToolsTools

• Many different Tools on the market today Many different Tools on the market today for SQAfor SQA

• Each Tool works differently but Each Tool works differently but accomplishes same goal:accomplishes same goal:– Help Improve the Development Process of a Help Improve the Development Process of a

Computer SystemComputer System• Look at two different Tools:Look at two different Tools:

– Configuration and Problem ManagementConfiguration and Problem Management• Borland StarTeam and Lucent Technologies SablimeBorland StarTeam and Lucent Technologies Sablime

– Testing SoftwareTesting Software• Programming Research QA C++ and Parasoft JtestProgramming Research QA C++ and Parasoft Jtest

Page 16: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1616

Configuration and Problem Configuration and Problem ManagementManagement• Borland StarTeamBorland StarTeam

– Can be Tailored to any Software Development TeamCan be Tailored to any Software Development Team– Can be used with various work teams based on Size, Can be used with various work teams based on Size,

Distribution, and Work StyleDistribution, and Work Style– Manage the whole Development Process using a Manage the whole Development Process using a

Centralized Control of Project AssetsCentralized Control of Project Assets• Promotes team communication and collaborationPromotes team communication and collaboration

– Offers:Offers:• Integrated Change ManagementIntegrated Change Management• Threaded DiscussionThreaded Discussion• Project and Task Management Project and Task Management

– All Project Modules stored in one RepositoryAll Project Modules stored in one Repository– Uses Windows Server Interface, but is Multiplatform on Uses Windows Server Interface, but is Multiplatform on

each of the Clientseach of the Clients

Page 17: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1717

Borland StarTeamBorland StarTeam

• StarTeam Enterprise AdvantageStarTeam Enterprise Advantage– Used for large, widely distributed teams to Used for large, widely distributed teams to

work on Enterprise-Level Projectswork on Enterprise-Level Projects– Supports the Whole Development Cycle with:Supports the Whole Development Cycle with:

• Integrated Requirements ManagementIntegrated Requirements Management• Change ManagementChange Management• Defect TrackingDefect Tracking• File VersioningFile Versioning• Threaded DiscussionsThreaded Discussions• Project and Task ManagementProject and Task Management

– Offers Project Trend Analysis and ReportingOffers Project Trend Analysis and Reporting

Page 18: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1818

Borland StarTeamBorland StarTeam

• StarTeam Enterprise AdvantageStarTeam Enterprise Advantage– Has four Unique FeaturesHas four Unique Features

•Has Search and Query Capabilities across Has Search and Query Capabilities across multiple objects an repositories for easy reuse multiple objects an repositories for easy reuse and sharingand sharing

•MPX Server provides Multicast Communication to MPX Server provides Multicast Communication to keep Users Up-To-Date and the Project currentkeep Users Up-To-Date and the Project current

•Cache Agent that supports Distributed Cache Agent that supports Distributed Development with Multisite Repositories Development with Multisite Repositories

•A Web AdditionA Web Addition

Page 19: SE411 - Matt Heinzelman Software Quality Assurance Presentation

1919

Borland StarTeamBorland StarTeam

• StarTeam EnterpriseStarTeam Enterprise– Middle-Road VersionMiddle-Road Version– Best suited for Medium-to-Large Development Best suited for Medium-to-Large Development

TeamsTeams– Uses a Unified Repository to manage shared and Uses a Unified Repository to manage shared and

reusable componentsreusable components– Versions and Automatically Tracks Changes to Versions and Automatically Tracks Changes to

help Monitor Project Statushelp Monitor Project Status– Web Client SupportWeb Client Support

• Completely Browser-BasedCompletely Browser-Based– Enterprise Web Edition allows access to Enterprise Web Edition allows access to

StarTeam without using an Installed Client, StarTeam without using an Installed Client, increasing Client choicesincreasing Client choices

Page 20: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2020

Borland StarTeamBorland StarTeam

• StarTeam StandardStarTeam Standard– Smallest, or Standard VersionSmallest, or Standard Version– Entry-Level Tool with components for File Entry-Level Tool with components for File

Versioning, Defect Tracking, and Threaded Versioning, Defect Tracking, and Threaded DiscussionsDiscussions

– Helps small Project Groups efficiently manage Helps small Project Groups efficiently manage change across the Development Lifecyclechange across the Development Lifecycle

– Key Development Tasks:Key Development Tasks:• File Check-In, Check-Out and LabelingFile Check-In, Check-Out and Labeling

• Change Request FunctionalityChange Request Functionality

• Able to Roll-Back to Previous File VersionsAble to Roll-Back to Previous File Versions

Page 21: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2121

Page 22: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2222

Configuration and Problem Configuration and Problem ManagementManagement• Lucent Technologies SablmeLucent Technologies Sablme

– Integrated Version Control and Change Management to Integrated Version Control and Change Management to help improve Quality and shorten Release Cycleshelp improve Quality and shorten Release Cycles

– Can be used on any size Project with any number of PeopleCan be used on any size Project with any number of People– Supports Concurrent DevelopmentSupports Concurrent Development

• Files can be worked on by two or more developers at the Files can be worked on by two or more developers at the same timesame time

• The files are automatically mergedThe files are automatically merged– Developed by Bell Labs and is a Multiplatform SoftwareDeveloped by Bell Labs and is a Multiplatform Software– Can be Incorporated into Multiple Development Can be Incorporated into Multiple Development

EnvironmentsEnvironments– Analysis tools can be incorporated into many different Analysis tools can be incorporated into many different

Spreadsheet ProgramsSpreadsheet Programs

Page 23: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2323

Lucent Technologies Lucent Technologies SablimeSablime• Development Process is built around the Development Process is built around the

Modification RequestModification Request• Any changes that are proposed must be done by Any changes that are proposed must be done by

creating an MRcreating an MR• When the MR is reviewed, it can be:When the MR is reviewed, it can be:

– DeferredDeferred– KilledKilled– Assigned for StudyAssigned for Study– Accepted for Implementation in one or more codelinesAccepted for Implementation in one or more codelines

• Sablime tracks changes using MRs and makes sure Sablime tracks changes using MRs and makes sure that all changes are done by Implementation Timethat all changes are done by Implementation Time

Page 24: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2424

Lucent Technologies Lucent Technologies SablimeSablime• Program Versions are based on the MR statesProgram Versions are based on the MR states• Each MR is assigned to one or more Project Each MR is assigned to one or more Project

Members with a Priority and Due DateMembers with a Priority and Due Date• If a MR is too big, then it can be divided into If a MR is too big, then it can be divided into

smaller tasks and Independently Assigned, smaller tasks and Independently Assigned, Tracked, and ManagedTracked, and Managed

• As an MR passes through its Life Cycle, As an MR passes through its Life Cycle, Project Members are notified through e-mail.Project Members are notified through e-mail.

• Sablime keeps track of Who, When, and Why Sablime keeps track of Who, When, and Why each action was taken.each action was taken.

Page 25: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2525

Lucent Technologies Lucent Technologies SablimeSablime• Benefits of using SablimeBenefits of using Sablime

– Helps improve product quality and shortens Helps improve product quality and shortens release cyclesrelease cycles

– Supports an out-of-the-box process modelSupports an out-of-the-box process model– Tracks, coordinates and integrates product Tracks, coordinates and integrates product

changes and change requestschanges and change requests– Helps prevent fixed bugs from getting Helps prevent fixed bugs from getting

reintroducedreintroduced– Enables you to reconstruct versions sent to Enables you to reconstruct versions sent to

customerscustomers

Page 26: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2626

Lucent Technologies Lucent Technologies SablimeSablime• BenefitsBenefits

– Makes project status and source files accessible Makes project status and source files accessible to all team members, even when geographically to all team members, even when geographically distributeddistributed

– Enables managers to control and characterize Enables managers to control and characterize contents of each release, and track release statuscontents of each release, and track release status

– Enables testers to see what features or fixes are Enables testers to see what features or fixes are ready for testing, and to review the requirements, ready for testing, and to review the requirements, notes, and implementation associated with each notes, and implementation associated with each change requestchange request

– Enables integrators to create consistent product Enables integrators to create consistent product versions automatically, based on readiness for versions automatically, based on readiness for integrationintegration

Page 27: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2727

Lucent Technologies Lucent Technologies SablimeSablime• Provides Comprehensive Configuration Provides Comprehensive Configuration

Management and Version ControlManagement and Version Control• Key Features of SablimeKey Features of Sablime

– Coordinates change requests and actual changesCoordinates change requests and actual changes– Supports multiple active codelines (releases) per productSupports multiple active codelines (releases) per product– Supports concurrent development, with less need for Supports concurrent development, with less need for

mergingmerging– Detects dependencies automaticallyDetects dependencies automatically– Integrates with the Eclipse development platformIntegrates with the Eclipse development platform– Integrates with Visual Studio and other IDE’sIntegrates with Visual Studio and other IDE’s– Integrates with Excel, enabling status reporting and Integrates with Excel, enabling status reporting and

managementmanagement

Page 28: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2828

Lucent Technologies Lucent Technologies SablimeSablime• Key Features of SablimeKey Features of Sablime

– Guides teams to consistent results using defined Guides teams to consistent results using defined roles and workflow with email notificationroles and workflow with email notification

– Scales easily from small to large objectsScales easily from small to large objects– Supports local and web-based usersSupports local and web-based users– Allows scripting and customizationAllows scripting and customization– Easy to learn and useEasy to learn and use– Simple to install and maintainSimple to install and maintain– Does not require dedicated hardwareDoes not require dedicated hardware– Available on UNIX, Linux, and WindowsAvailable on UNIX, Linux, and Windows

Page 29: SE411 - Matt Heinzelman Software Quality Assurance Presentation

2929

Testing SoftwareTesting Software

• Programming Research QA C++Programming Research QA C++– Ensures Code Quality while Enhancing ProductivityEnsures Code Quality while Enhancing Productivity– Can be quickly Integrated almost everywhereCan be quickly Integrated almost everywhere– Provides an automated environment to Introduce and Provides an automated environment to Introduce and

Enforce Custom Coding StandardsEnforce Custom Coding Standards• Set by the Software Development CompanySet by the Software Development Company• Required by CustomersRequired by Customers

– Provides Documentation to prove thisProvides Documentation to prove this– Can detect many different problems and defects like:Can detect many different problems and defects like:

• Language Implementation ErrorsLanguage Implementation Errors• InconsistenciesInconsistencies• Obsolescent FeaturesObsolescent Features• Coding Standard ViolationsCoding Standard Violations

Page 30: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3030

Programming Research QA Programming Research QA C++C++• Detecting defects and problems in code Detecting defects and problems in code

earlier can prevent delays laterearlier can prevent delays later• Reports many Industry-Standard Code Reports many Industry-Standard Code

Metrics into graphs, diagrams, and HTML Metrics into graphs, diagrams, and HTML output.output.

• Reports can be exported to be used in Reports can be exported to be used in Microsoft Office or StarOffice to Analyze, Microsoft Office or StarOffice to Analyze, Share, or Present informationShare, or Present information

• Any problem discovered by QA C++ is Any problem discovered by QA C++ is shown in a Message Browser with a Drill-shown in a Message Browser with a Drill-Down EnvironmentDown Environment

Page 31: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3131

Programming Research QA Programming Research QA C++C++• QA C++ explains why problems it discovers need to be QA C++ explains why problems it discovers need to be

corrected and then provides examples on how to fix themcorrected and then provides examples on how to fix them• Product Highlights:Product Highlights:

– Identifies coding problems early in the development cycleIdentifies coding problems early in the development cycle– Accelerates the code review process – improves teamworkAccelerates the code review process – improves teamwork– Ensures quality code and coding standard complianceEnsures quality code and coding standard compliance– Educates and raises programmer awarenessEducates and raises programmer awareness– Reduces the risk of program failureReduces the risk of program failure– Enhances reliability, portability, and maintainabilityEnhances reliability, portability, and maintainability– Lowers software development costs – increases productivityLowers software development costs – increases productivity– Improves time-to-market while reducing costsImproves time-to-market while reducing costs– Allows instant and repeatable code audits and reviewsAllows instant and repeatable code audits and reviews– Delivers unmatched technology & strong ROIDelivers unmatched technology & strong ROI

Page 32: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3232

Page 33: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3333

Testing SoftwareTesting Software

• Parasoft JtestParasoft Jtest– Java Unit Testing and Coding StandardJava Unit Testing and Coding Standard– Improves Java Code Reliability, Security, Improves Java Code Reliability, Security,

Performance, and MaintainabilityPerformance, and Maintainability– Checks code with over 500 different built in Checks code with over 500 different built in

Development RulesDevelopment Rules– Can correct many violations automaticallyCan correct many violations automatically– User Defined Code Guidelines can be produced User Defined Code Guidelines can be produced

without using code; either Graphically or without using code; either Graphically or AutomaticallyAutomatically

Page 34: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3434

Parasoft JtestParasoft Jtest

• Exposes Reliability ProblemsExposes Reliability Problems– Examines each class, then generates and executes JUnit Examines each class, then generates and executes JUnit

Test Cases designed to achieve High Coverage and Test Cases designed to achieve High Coverage and Expose Uncaught Runtime ExceptionsExpose Uncaught Runtime Exceptions

• Exposes Functionality ProblemsExposes Functionality Problems– Can add and execute User-Defined Test CasesCan add and execute User-Defined Test Cases– Test Case Sniffer can monitor a running application and Test Case Sniffer can monitor a running application and

generate JUnit Test Cases to monitor behaviorgenerate JUnit Test Cases to monitor behavior• Automated Regression TestingAutomated Regression Testing

– Identifies problems introduced by code modificationsIdentifies problems introduced by code modifications• QA Team Members can use JTest to identify QA Team Members can use JTest to identify

critical problems before release/deploymentcritical problems before release/deployment

Page 35: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3535

Parasoft JtestParasoft Jtest

• Analyzes Code in two waysAnalyzes Code in two ways– Verifies Code Complies with Development Rules Verifies Code Complies with Development Rules

for Preventing Functional Errors, Security for Preventing Functional Errors, Security Vulnerabilities, Performance Problems, and Vulnerabilities, Performance Problems, and PitfallsPitfalls

– Jtest Automatically generates JUnit Test CasesJtest Automatically generates JUnit Test Cases• Test findings are reported as a Prioritized Test findings are reported as a Prioritized

Task ListTask List• Test Cases can be added:Test Cases can be added:

– Automatically using Test Case SnifferAutomatically using Test Case Sniffer– GraphicallyGraphically– ProgrammaticallyProgrammatically

Page 36: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3636

Parasoft JtestParasoft Jtest

• Benefits to using JtestBenefits to using Jtest– Improve code reliability, functionality, security, and performance Improve code reliability, functionality, security, and performance

quickly and painlesslyquickly and painlessly– Obtain instant expert feedback on code quality and potential Obtain instant expert feedback on code quality and potential

defectsdefects– Prevent code modifications from breaking previously-verified Prevent code modifications from breaking previously-verified

functionalityfunctionality– Perform extensive testing/debugging and more time on creative Perform extensive testing/debugging and more time on creative

taskstasks– Perform extensive testing with minimal user interventionPerform extensive testing with minimal user intervention– Reduce the risks that cause late, over-budget, incomplete releasesReduce the risks that cause late, over-budget, incomplete releases– Identify errors lurking in existing applicationsIdentify errors lurking in existing applications– Optimize code review timeOptimize code review time– Ensure that best practices are applied consistently and uniformly Ensure that best practices are applied consistently and uniformly

across the teamacross the team– Monitor overall project quality, specific project segments, and Monitor overall project quality, specific project segments, and

progress toward quality goalsprogress toward quality goals

Page 37: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3737

Page 38: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3838

Benefit of Software Quality Benefit of Software Quality Assurance in ProjectsAssurance in Projects• Essential to the Development ProcessEssential to the Development Process• Without SQA, many Development Groups would not Without SQA, many Development Groups would not

reach their release goals/deadlines on timereach their release goals/deadlines on time• Spend too much time Revisiting Requirements, Spend too much time Revisiting Requirements,

Design, Code, and Documentation without SQADesign, Code, and Documentation without SQA• Lowers time spent on mundane areas and lets more Lowers time spent on mundane areas and lets more

time be focused on important areastime be focused on important areas• Decreases the time from Development to DeploymentDecreases the time from Development to Deployment• Can help catch errors before they are too costly to fixCan help catch errors before they are too costly to fix• Standards can be used across many different ProjectsStandards can be used across many different Projects

Page 39: SE411 - Matt Heinzelman Software Quality Assurance Presentation

3939

ReferencesReferences

Hower, Rick (2006). Hower, Rick (2006). Software QA and Testing Resource Center.Software QA and Testing Resource Center. Updated Updated April 2006. April 2006. Web site: http://www.softwareqatest.com/Web site: http://www.softwareqatest.com/

Software Quality Assurance, NASA.Software Quality Assurance, NASA. Web site: http://satc.gsfc.nasa.gov/assure/agbsec3.txtWeb site: http://satc.gsfc.nasa.gov/assure/agbsec3.txt Buchanan, Ian (2005). Buchanan, Ian (2005). Borland StarTeam.Borland StarTeam. Updated January 2005. Updated January 2005. Web site: http://www.cmcrossroads.com/cgi-bin/cmwiki/bin/view/CM/StarTeamWeb site: http://www.cmcrossroads.com/cgi-bin/cmwiki/bin/view/CM/StarTeam CM Crossroads. CM Crossroads. Borland StarTeam Product Review.Borland StarTeam Product Review. Web site: http://www.cmcrossroads.com/toolspot/starteam.phpWeb site: http://www.cmcrossroads.com/toolspot/starteam.php Borland Software Corporation. Borland Software Corporation. Borland StarTeam.Borland StarTeam. Web site: http://www.borland.com/us/products/starteam/index.htmlWeb site: http://www.borland.com/us/products/starteam/index.html Lucent Technologies (2006). Lucent Technologies (2006). SablimeSablime. . Web site: http://www.bell-labs.com/project/sablime/Web site: http://www.bell-labs.com/project/sablime/ Programming Research, Inc (2003). Programming Research, Inc (2003). QA C++ Data SheetQA C++ Data Sheet. . Web site: http://www.programmingresearch.com/pdfs/QAC++ -Web site: http://www.programmingresearch.com/pdfs/QAC++ - %20DATASHEET%20FEB05%20HQ.pdf%20DATASHEET%20FEB05%20HQ.pdf Parasoft (2006). Parasoft (2006). Jtest Data Sheet.Jtest Data Sheet. Web site: http://www.parasoft.com/jsp/printables/-Web site: http://www.parasoft.com/jsp/printables/- ParasoftJtestDataSheet.587.pdf?path=/jsp/products/-ParasoftJtestDataSheet.587.pdf?path=/jsp/products/-

quick_facts.jsp&product=Jtestquick_facts.jsp&product=Jtest