SlideShare a Scribd company logo
1 of 39
1
Software Quality Assurance:
Techniques and Tools
By: Matt Heinzelman
2
Overview
• What is Software Quality Assurance?
• Standards and Procedures
– Requirement Standards
– Design Standards
– Code Standards
– Documentation Standards
• Techniques
– Audit
• Tools
– Configuration and Problem Management
– Testing Software
• Benefit of Software Quality Assurance in Projects
3
What is Software Quality
Assurance?
• Used to Monitor and Improve the Software
Development Process
• Making Sure That Standards and
Procedures are Followed
• Ensures that Problems are Found and
Dealt with
• Orientated to ‘Prevention’
4
What is SQA?
• Planned and Systematic Approach to the
Evaluation of the Quality of and Adherence to:
– Software Product Standards
– Processes
– Procedures
• Assures that Standards and Procedures are
Established and Followed throughout the
Software Development Process
• IEEE ISO 9000 Certified
5
Standards and Procedures
• Framework for which Software Evolves
• Standards
– Established Criteria to which Software Products are
Compared
• Procedures
– Established Criteria to which Development and
Control Procedures are Followed
• SQA is based on the Following of Standards and
Procedures
6
Standards and Procedures
• Proper Documentation of Standards and
Procedures is Necessary for SQA
• SQA Activities of Process Monitoring,
Product Evaluation, and Auditing rely on
these Standards and Procedures
• Any number of different Standards and
Procedures can be used on a given system
7
Standards and Procedures
• Requirement Standards
– Specify the Form and Content of how Requirements
are defined in a System
– Establishes a System of how to write a Requirement
• Short Phrase Describing Requirement
• Elaborate into more Detail
– Use a Numbering System for the Major Requirements
and Sub-Requirements
– Many Major Companies have Software to aid in the
Requirement Writing Process
8
Standards and Procedures
• Design Standards
– Specify the Content and Form of how Design
Documents are Developed
– Provide Rules and Methods to Transfer:
• Software Requirements to Software Design
• Software Design into Software Design
Documentation
– Many Major Companies have Design
Development Software to aid in the Process
9
Standards and Procedures
• Code Standards
– Specify what Language the Code is written in and
Define any Restrictions on Language Features
– Code Standards Define:
• Legal Language Structures
• Style Conventions
• Rules for Data Structures and Interfaces
• Internal Code Documentation
– Using Methods such as “Peer Reviews”, “Buddy
Checks”, and Code Analysis can Enforce Standards
10
Standards and Procedures
• Code Standards
– A good thing but too many will Force Productivity and
Creativity to Suffer
– Examples of Good Code Standards:
• Reduction or Elimination of Global Variables
• Function and Method Sizes should be Minimized
• Each Line of Code should be Seventy Characters Maximum
• One Code Statement per Line
• Etc…
11
Standards and Procedures
• Documentation Standards
– Specify Form and Content for Planning,
Control, and Product Documentation
– Provide Consistency throughout a System
– Documentation can be written in any form
– Each Practice should be Documented so it can
be Repeated or Changed later if needed
12
Standards and Procedures
• Documentation Standards
– Everything in a System should be Documented including:
• Specifications
• Designs
• Business Rules
• Inspection Reports
• Configurations
• Code Changes
• Test Plans
• Test Cases
• Bug Reports
• User Manuals
• Etc…
– A System should be used to easily find and obtain Information about a
System and what Documentation will have that piece of Information
13
Techniques
• Audit
– The Major Technique used in SQA
– Perform Product Evaluation and Process Monitoring
– Performed Routinely throughout the Software
Development Process
– Look at a Process and/or Product in depth and
compare to Established Standards and Procedures
– Purpose is to assure that:
• Proper Control Procedures are being followed
• Required Documentation is maintained
• Developer’s Status Reports accurately reflect the status of
the activity
14
Techniques
• Audit
– Used to:
• Review Management
• Technical Processes
• Assurance Processes
– Provide an indication of the Quality and Status of the
Software Product
– SQA Product is an Audit Report to Management
consisting of Findings and Recommendations to bring
development up to par with Standards and
Procedures
15
Tools
• Many different Tools on the market today for
SQA
• Each Tool works differently but accomplishes
same goal:
– Help Improve the Development Process of a
Computer System
• Look at two different Tools:
– Configuration and Problem Management
• Borland StarTeam and Lucent Technologies Sablime
– Testing Software
• Programming Research QA C++ and Parasoft Jtest
16
Configuration and Problem
Management
• Borland StarTeam
– Can be Tailored to any Software Development Team
– Can be used with various work teams based on Size,
Distribution, and Work Style
– Manage the whole Development Process using a Centralized
Control of Project Assets
• Promotes team communication and collaboration
– Offers:
• Integrated Change Management
• Threaded Discussion
• Project and Task Management
– All Project Modules stored in one Repository
– Uses Windows Server Interface, but is Multiplatform on each of
the Clients
17
Borland StarTeam
• StarTeam Enterprise Advantage
– Used for large, widely distributed teams to work on
Enterprise-Level Projects
– Supports the Whole Development Cycle with:
• Integrated Requirements Management
• Change Management
• Defect Tracking
• File Versioning
• Threaded Discussions
• Project and Task Management
– Offers Project Trend Analysis and Reporting
18
Borland StarTeam
• StarTeam Enterprise Advantage
– Has four Unique Features
• Has Search and Query Capabilities across multiple
objects an repositories for easy reuse and sharing
• MPX Server provides Multicast Communication to
keep Users Up-To-Date and the Project current
• Cache Agent that supports Distributed
Development with Multisite Repositories
• A Web Addition
19
Borland StarTeam
• StarTeam Enterprise
– Middle-Road Version
– Best suited for Medium-to-Large Development Teams
– Uses a Unified Repository to manage shared and
reusable components
– Versions and Automatically Tracks Changes to help
Monitor Project Status
– Web Client Support
• Completely Browser-Based
– Enterprise Web Edition allows access to StarTeam
without using an Installed Client, increasing Client
choices
20
Borland StarTeam
• StarTeam Standard
– Smallest, or Standard Version
– Entry-Level Tool with components for File Versioning,
Defect Tracking, and Threaded Discussions
– Helps small Project Groups efficiently manage change
across the Development Lifecycle
– Key Development Tasks:
• File Check-In, Check-Out and Labeling
• Change Request Functionality
• Able to Roll-Back to Previous File Versions
21
22
Configuration and Problem
Management
• Lucent Technologies Sablme
– Integrated Version Control and Change Management to help
improve Quality and shorten Release Cycles
– Can be used on any size Project with any number of People
– Supports Concurrent Development
• Files can be worked on by two or more developers at the same time
• The files are automatically merged
– Developed by Bell Labs and is a Multiplatform Software
– Can be Incorporated into Multiple Development Environments
– Analysis tools can be incorporated into many different
Spreadsheet Programs
23
Lucent Technologies Sablime
• Development Process is built around the Modification
Request
• Any changes that are proposed must be done by
creating an MR
• When the MR is reviewed, it can be:
– Deferred
– Killed
– Assigned for Study
– Accepted for Implementation in one or more codelines
• Sablime tracks changes using MRs and makes sure that
all changes are done by Implementation Time
24
Lucent Technologies Sablime
• Program Versions are based on the MR states
• Each MR is assigned to one or more Project
Members with a Priority and Due Date
• If a MR is too big, then it can be divided into
smaller tasks and Independently Assigned,
Tracked, and Managed
• As an MR passes through its Life Cycle, Project
Members are notified through e-mail.
• Sablime keeps track of Who, When, and Why
each action was taken.
25
Lucent Technologies Sablime
• Benefits of using Sablime
– Helps improve product quality and shortens release
cycles
– Supports an out-of-the-box process model
– Tracks, coordinates and integrates product changes
and change requests
– Helps prevent fixed bugs from getting reintroduced
– Enables you to reconstruct versions sent to customers
26
Lucent Technologies Sablime
• Benefits
– Makes project status and source files accessible to all
team members, even when geographically distributed
– Enables managers to control and characterize
contents of each release, and track release status
– Enables testers to see what features or fixes are
ready for testing, and to review the requirements,
notes, and implementation associated with each
change request
– Enables integrators to create consistent product
versions automatically, based on readiness for
integration
27
Lucent Technologies Sablime
• Provides Comprehensive Configuration Management and
Version Control
• Key Features of Sablime
– Coordinates change requests and actual changes
– Supports multiple active codelines (releases) per product
– Supports concurrent development, with less need for merging
– Detects dependencies automatically
– Integrates with the Eclipse development platform
– Integrates with Visual Studio and other IDE’s
– Integrates with Excel, enabling status reporting and
management
28
Lucent Technologies Sablime
• Key Features of Sablime
– Guides teams to consistent results using defined roles
and workflow with email notification
– Scales easily from small to large objects
– Supports local and web-based users
– Allows scripting and customization
– Easy to learn and use
– Simple to install and maintain
– Does not require dedicated hardware
– Available on UNIX, Linux, and Windows
29
Testing Software
• Programming Research QA C++
– Ensures Code Quality while Enhancing Productivity
– Can be quickly Integrated almost everywhere
– Provides an automated environment to Introduce and Enforce
Custom Coding Standards
• Set by the Software Development Company
• Required by Customers
– Provides Documentation to prove this
– Can detect many different problems and defects like:
• Language Implementation Errors
• Inconsistencies
• Obsolescent Features
• Coding Standard Violations
30
Programming Research QA C++
• Detecting defects and problems in code earlier
can prevent delays later
• Reports many Industry-Standard Code Metrics
into graphs, diagrams, and HTML output.
• Reports can be exported to be used in Microsoft
Office or StarOffice to Analyze, Share, or Present
information
• Any problem discovered by QA C++ is shown in
a Message Browser with a Drill-Down
Environment
31
Programming Research QA C++
• QA C++ explains why problems it discovers need to be corrected
and then provides examples on how to fix them
• Product Highlights:
– Identifies coding problems early in the development cycle
– Accelerates the code review process – improves teamwork
– Ensures quality code and coding standard compliance
– Educates and raises programmer awareness
– Reduces the risk of program failure
– Enhances reliability, portability, and maintainability
– Lowers software development costs – increases productivity
– Improves time-to-market while reducing costs
– Allows instant and repeatable code audits and reviews
– Delivers unmatched technology & strong ROI
32
33
Testing Software
• Parasoft Jtest
– Java Unit Testing and Coding Standard
– Improves Java Code Reliability, Security, Performance,
and Maintainability
– Checks code with over 500 different built in
Development Rules
– Can correct many violations automatically
– User Defined Code Guidelines can be produced
without using code; either Graphically or
Automatically
34
Parasoft Jtest
• Exposes Reliability Problems
– Examines each class, then generates and executes JUnit Test
Cases designed to achieve High Coverage and Expose Uncaught
Runtime Exceptions
• Exposes Functionality Problems
– Can add and execute User-Defined Test Cases
– Test Case Sniffer can monitor a running application and
generate JUnit Test Cases to monitor behavior
• Automated Regression Testing
– Identifies problems introduced by code modifications
• QA Team Members can use JTest to identify critical
problems before release/deployment
35
Parasoft Jtest
• Analyzes Code in two ways
– Verifies Code Complies with Development Rules for
Preventing Functional Errors, Security Vulnerabilities,
Performance Problems, and Pitfalls
– Jtest Automatically generates JUnit Test Cases
• Test findings are reported as a Prioritized Task
List
• Test Cases can be added:
– Automatically using Test Case Sniffer
– Graphically
– Programmatically
36
Parasoft Jtest
• Benefits to using Jtest
– Improve code reliability, functionality, security, and performance quickly
and painlessly
– Obtain instant expert feedback on code quality and potential defects
– Prevent code modifications from breaking previously-verified
functionality
– Perform extensive testing/debugging and more time on creative tasks
– Perform extensive testing with minimal user intervention
– Reduce the risks that cause late, over-budget, incomplete releases
– Identify errors lurking in existing applications
– Optimize code review time
– Ensure that best practices are applied consistently and uniformly across
the team
– Monitor overall project quality, specific project segments, and progress
toward quality goals
37
38
Benefit of Software Quality
Assurance in Projects
• Essential to the Development Process
• Without SQA, many Development Groups would not
reach their release goals/deadlines on time
• Spend too much time Revisiting Requirements, Design,
Code, and Documentation without SQA
• Lowers time spent on mundane areas and lets more time
be focused on important areas
• Decreases the time from Development to Deployment
• Can help catch errors before they are too costly to fix
• Standards can be used across many different Projects
39
References
Hower, Rick (2006). Software QA and Testing Resource Center. Updated April 2006.
Web site: http://www.softwareqatest.com/
Software Quality Assurance, NASA.
Web site: http://satc.gsfc.nasa.gov/assure/agbsec3.txt
Buchanan, Ian (2005). Borland StarTeam. Updated January 2005.
Web site: http://www.cmcrossroads.com/cgi-bin/cmwiki/bin/view/CM/StarTeam
CM Crossroads. Borland StarTeam Product Review.
Web site: http://www.cmcrossroads.com/toolspot/starteam.php
Borland Software Corporation. Borland StarTeam.
Web site: http://www.borland.com/us/products/starteam/index.html
Lucent Technologies (2006). Sablime.
Web site: http://www.bell-labs.com/project/sablime/
Programming Research, Inc (2003). QA C++ Data Sheet.
Web site: http://www.programmingresearch.com/pdfs/QAC++ -
%20DATASHEET%20FEB05%20HQ.pdf
Parasoft (2006). Jtest Data Sheet.
Web site: http://www.parasoft.com/jsp/printables/-
ParasoftJtestDataSheet.587.pdf?path=/jsp/products/-quick_facts.jsp&product=Jtest

More Related Content

What's hot

Incorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessIncorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessMichael Vax
 
Load and Performance tests in agile scrum framework SGI 2013
Load and Performance tests in agile scrum framework SGI 2013Load and Performance tests in agile scrum framework SGI 2013
Load and Performance tests in agile scrum framework SGI 2013Subrahmaniam S.R.V
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles sathish sak
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notesAAKASH S
 
Performance Testing in Agile Process
Performance Testing in Agile ProcessPerformance Testing in Agile Process
Performance Testing in Agile ProcessIdexcel Technologies
 
Dealing with Auditors: Helping Them Understand Agile
Dealing with Auditors: Helping Them Understand AgileDealing with Auditors: Helping Them Understand Agile
Dealing with Auditors: Helping Them Understand AgileTechWell
 
Automate the sdlc process
Automate the sdlc processAutomate the sdlc process
Automate the sdlc processMichael Deady
 
A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...Sehrish Asif
 
Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...
Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...
Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...Impetus Technologies
 
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...babak danyal
 
1×10 rola QA w tworzeniu Atlassian JIRA
 1×10 rola QA w tworzeniu Atlassian JIRA 1×10 rola QA w tworzeniu Atlassian JIRA
1×10 rola QA w tworzeniu Atlassian JIRA3camp
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Kari Kakkonen
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSachithra Gayan
 
Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018Derk-Jan de Grood
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)ShudipPal
 
Software Process and Project Management - CS832E02 unit 3
Software Process and Project Management - CS832E02 unit 3Software Process and Project Management - CS832E02 unit 3
Software Process and Project Management - CS832E02 unit 3Mithun B N
 
Scrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMScrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMMarco Silva
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)pawanonline83
 

What's hot (20)

RRC CMM CMMI
RRC CMM CMMIRRC CMM CMMI
RRC CMM CMMI
 
Incorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessIncorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development Process
 
Load and Performance tests in agile scrum framework SGI 2013
Load and Performance tests in agile scrum framework SGI 2013Load and Performance tests in agile scrum framework SGI 2013
Load and Performance tests in agile scrum framework SGI 2013
 
Software process life cycles
Software process life cyclesSoftware process life cycles
Software process life cycles
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notes
 
Performance Testing in Agile Process
Performance Testing in Agile ProcessPerformance Testing in Agile Process
Performance Testing in Agile Process
 
Dealing with Auditors: Helping Them Understand Agile
Dealing with Auditors: Helping Them Understand AgileDealing with Auditors: Helping Them Understand Agile
Dealing with Auditors: Helping Them Understand Agile
 
Automate the sdlc process
Automate the sdlc processAutomate the sdlc process
Automate the sdlc process
 
A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...A Research Study on importance of Testing and Quality Assurance in Software D...
A Research Study on importance of Testing and Quality Assurance in Software D...
 
Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...
Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...
Addressing Performance Testing Challenges in Agile: Process and Tools: Impetu...
 
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29  - sw process 1-3 sdlc m...
Beit 381 se lec 5, 6, 7 & 8 - 69 - 12 feb21,22,28,29 - sw process 1-3 sdlc m...
 
1×10 rola QA w tworzeniu Atlassian JIRA
 1×10 rola QA w tworzeniu Atlassian JIRA 1×10 rola QA w tworzeniu Atlassian JIRA
1×10 rola QA w tworzeniu Atlassian JIRA
 
Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle Agile Testing – embedding testing into agile software development lifecycle
Agile Testing – embedding testing into agile software development lifecycle
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018Test Management in Agile - Agile testing Days 2018
Test Management in Agile - Agile testing Days 2018
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
Manual Software testing - software development life cycle
Manual Software testing - software development life cycleManual Software testing - software development life cycle
Manual Software testing - software development life cycle
 
Software Process and Project Management - CS832E02 unit 3
Software Process and Project Management - CS832E02 unit 3Software Process and Project Management - CS832E02 unit 3
Software Process and Project Management - CS832E02 unit 3
 
Scrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALMScrum Portugal Meeting 1 Lisbon - ALM
Scrum Portugal Meeting 1 Lisbon - ALM
 
Rational Unified Process(Rup)
Rational Unified Process(Rup)Rational Unified Process(Rup)
Rational Unified Process(Rup)
 

Similar to matt heinzelman software quality assurance presentation technical & tool

Similar to matt heinzelman software quality assurance presentation technical & tool (20)

Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Journey to the center of DevOps - v6
Journey to the center of DevOps - v6Journey to the center of DevOps - v6
Journey to the center of DevOps - v6
 
Chapter 1,2,3,4 notes
Chapter 1,2,3,4 notesChapter 1,2,3,4 notes
Chapter 1,2,3,4 notes
 
System development methodologies L2.ppt
System development methodologies L2.pptSystem development methodologies L2.ppt
System development methodologies L2.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
ddd.ppt
ddd.pptddd.ppt
ddd.ppt
 
Session2.pptx.ppt
Session2.pptx.pptSession2.pptx.ppt
Session2.pptx.ppt
 
Session2 (1).ppt
Session2 (1).pptSession2 (1).ppt
Session2 (1).ppt
 
SDLC.PPT
SDLC.PPTSDLC.PPT
SDLC.PPT
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)presentation ofSoftware Development Life Cycle (SDLC)
presentation ofSoftware Development Life Cycle (SDLC)
 
SDLC.ppt
SDLC.pptSDLC.ppt
SDLC.ppt
 
Session2.ppt
Session2.pptSession2.ppt
Session2.ppt
 
project_life_cycles_models.ppt
project_life_cycles_models.pptproject_life_cycles_models.ppt
project_life_cycles_models.ppt
 
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
 
340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf340_18CS35_se_mod1(secab).pdf
340_18CS35_se_mod1(secab).pdf
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 

Recently uploaded

WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2
 
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 

Recently uploaded (20)

WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and ApplicationsWSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
WSO2CON 2024 - Architecting AI in the Enterprise: APIs and Applications
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
WSO2Con2024 - Facilitating Broadband Switching Services for UK Telecoms Provi...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 

matt heinzelman software quality assurance presentation technical & tool

  • 1. 1 Software Quality Assurance: Techniques and Tools By: Matt Heinzelman
  • 2. 2 Overview • What is Software Quality Assurance? • Standards and Procedures – Requirement Standards – Design Standards – Code Standards – Documentation Standards • Techniques – Audit • Tools – Configuration and Problem Management – Testing Software • Benefit of Software Quality Assurance in Projects
  • 3. 3 What is Software Quality Assurance? • Used to Monitor and Improve the Software Development Process • Making Sure That Standards and Procedures are Followed • Ensures that Problems are Found and Dealt with • Orientated to ‘Prevention’
  • 4. 4 What is SQA? • Planned and Systematic Approach to the Evaluation of the Quality of and Adherence to: – Software Product Standards – Processes – Procedures • Assures that Standards and Procedures are Established and Followed throughout the Software Development Process • IEEE ISO 9000 Certified
  • 5. 5 Standards and Procedures • Framework for which Software Evolves • Standards – Established Criteria to which Software Products are Compared • Procedures – Established Criteria to which Development and Control Procedures are Followed • SQA is based on the Following of Standards and Procedures
  • 6. 6 Standards and Procedures • Proper Documentation of Standards and Procedures is Necessary for SQA • SQA Activities of Process Monitoring, Product Evaluation, and Auditing rely on these Standards and Procedures • Any number of different Standards and Procedures can be used on a given system
  • 7. 7 Standards and Procedures • Requirement Standards – Specify the Form and Content of how Requirements are defined in a System – Establishes a System of how to write a Requirement • Short Phrase Describing Requirement • Elaborate into more Detail – Use a Numbering System for the Major Requirements and Sub-Requirements – Many Major Companies have Software to aid in the Requirement Writing Process
  • 8. 8 Standards and Procedures • Design Standards – Specify the Content and Form of how Design Documents are Developed – Provide Rules and Methods to Transfer: • Software Requirements to Software Design • Software Design into Software Design Documentation – Many Major Companies have Design Development Software to aid in the Process
  • 9. 9 Standards and Procedures • Code Standards – Specify what Language the Code is written in and Define any Restrictions on Language Features – Code Standards Define: • Legal Language Structures • Style Conventions • Rules for Data Structures and Interfaces • Internal Code Documentation – Using Methods such as “Peer Reviews”, “Buddy Checks”, and Code Analysis can Enforce Standards
  • 10. 10 Standards and Procedures • Code Standards – A good thing but too many will Force Productivity and Creativity to Suffer – Examples of Good Code Standards: • Reduction or Elimination of Global Variables • Function and Method Sizes should be Minimized • Each Line of Code should be Seventy Characters Maximum • One Code Statement per Line • Etc…
  • 11. 11 Standards and Procedures • Documentation Standards – Specify Form and Content for Planning, Control, and Product Documentation – Provide Consistency throughout a System – Documentation can be written in any form – Each Practice should be Documented so it can be Repeated or Changed later if needed
  • 12. 12 Standards and Procedures • Documentation Standards – Everything in a System should be Documented including: • Specifications • Designs • Business Rules • Inspection Reports • Configurations • Code Changes • Test Plans • Test Cases • Bug Reports • User Manuals • Etc… – A System should be used to easily find and obtain Information about a System and what Documentation will have that piece of Information
  • 13. 13 Techniques • Audit – The Major Technique used in SQA – Perform Product Evaluation and Process Monitoring – Performed Routinely throughout the Software Development Process – Look at a Process and/or Product in depth and compare to Established Standards and Procedures – Purpose is to assure that: • Proper Control Procedures are being followed • Required Documentation is maintained • Developer’s Status Reports accurately reflect the status of the activity
  • 14. 14 Techniques • Audit – Used to: • Review Management • Technical Processes • Assurance Processes – Provide an indication of the Quality and Status of the Software Product – SQA Product is an Audit Report to Management consisting of Findings and Recommendations to bring development up to par with Standards and Procedures
  • 15. 15 Tools • Many different Tools on the market today for SQA • Each Tool works differently but accomplishes same goal: – Help Improve the Development Process of a Computer System • Look at two different Tools: – Configuration and Problem Management • Borland StarTeam and Lucent Technologies Sablime – Testing Software • Programming Research QA C++ and Parasoft Jtest
  • 16. 16 Configuration and Problem Management • Borland StarTeam – Can be Tailored to any Software Development Team – Can be used with various work teams based on Size, Distribution, and Work Style – Manage the whole Development Process using a Centralized Control of Project Assets • Promotes team communication and collaboration – Offers: • Integrated Change Management • Threaded Discussion • Project and Task Management – All Project Modules stored in one Repository – Uses Windows Server Interface, but is Multiplatform on each of the Clients
  • 17. 17 Borland StarTeam • StarTeam Enterprise Advantage – Used for large, widely distributed teams to work on Enterprise-Level Projects – Supports the Whole Development Cycle with: • Integrated Requirements Management • Change Management • Defect Tracking • File Versioning • Threaded Discussions • Project and Task Management – Offers Project Trend Analysis and Reporting
  • 18. 18 Borland StarTeam • StarTeam Enterprise Advantage – Has four Unique Features • Has Search and Query Capabilities across multiple objects an repositories for easy reuse and sharing • MPX Server provides Multicast Communication to keep Users Up-To-Date and the Project current • Cache Agent that supports Distributed Development with Multisite Repositories • A Web Addition
  • 19. 19 Borland StarTeam • StarTeam Enterprise – Middle-Road Version – Best suited for Medium-to-Large Development Teams – Uses a Unified Repository to manage shared and reusable components – Versions and Automatically Tracks Changes to help Monitor Project Status – Web Client Support • Completely Browser-Based – Enterprise Web Edition allows access to StarTeam without using an Installed Client, increasing Client choices
  • 20. 20 Borland StarTeam • StarTeam Standard – Smallest, or Standard Version – Entry-Level Tool with components for File Versioning, Defect Tracking, and Threaded Discussions – Helps small Project Groups efficiently manage change across the Development Lifecycle – Key Development Tasks: • File Check-In, Check-Out and Labeling • Change Request Functionality • Able to Roll-Back to Previous File Versions
  • 21. 21
  • 22. 22 Configuration and Problem Management • Lucent Technologies Sablme – Integrated Version Control and Change Management to help improve Quality and shorten Release Cycles – Can be used on any size Project with any number of People – Supports Concurrent Development • Files can be worked on by two or more developers at the same time • The files are automatically merged – Developed by Bell Labs and is a Multiplatform Software – Can be Incorporated into Multiple Development Environments – Analysis tools can be incorporated into many different Spreadsheet Programs
  • 23. 23 Lucent Technologies Sablime • Development Process is built around the Modification Request • Any changes that are proposed must be done by creating an MR • When the MR is reviewed, it can be: – Deferred – Killed – Assigned for Study – Accepted for Implementation in one or more codelines • Sablime tracks changes using MRs and makes sure that all changes are done by Implementation Time
  • 24. 24 Lucent Technologies Sablime • Program Versions are based on the MR states • Each MR is assigned to one or more Project Members with a Priority and Due Date • If a MR is too big, then it can be divided into smaller tasks and Independently Assigned, Tracked, and Managed • As an MR passes through its Life Cycle, Project Members are notified through e-mail. • Sablime keeps track of Who, When, and Why each action was taken.
  • 25. 25 Lucent Technologies Sablime • Benefits of using Sablime – Helps improve product quality and shortens release cycles – Supports an out-of-the-box process model – Tracks, coordinates and integrates product changes and change requests – Helps prevent fixed bugs from getting reintroduced – Enables you to reconstruct versions sent to customers
  • 26. 26 Lucent Technologies Sablime • Benefits – Makes project status and source files accessible to all team members, even when geographically distributed – Enables managers to control and characterize contents of each release, and track release status – Enables testers to see what features or fixes are ready for testing, and to review the requirements, notes, and implementation associated with each change request – Enables integrators to create consistent product versions automatically, based on readiness for integration
  • 27. 27 Lucent Technologies Sablime • Provides Comprehensive Configuration Management and Version Control • Key Features of Sablime – Coordinates change requests and actual changes – Supports multiple active codelines (releases) per product – Supports concurrent development, with less need for merging – Detects dependencies automatically – Integrates with the Eclipse development platform – Integrates with Visual Studio and other IDE’s – Integrates with Excel, enabling status reporting and management
  • 28. 28 Lucent Technologies Sablime • Key Features of Sablime – Guides teams to consistent results using defined roles and workflow with email notification – Scales easily from small to large objects – Supports local and web-based users – Allows scripting and customization – Easy to learn and use – Simple to install and maintain – Does not require dedicated hardware – Available on UNIX, Linux, and Windows
  • 29. 29 Testing Software • Programming Research QA C++ – Ensures Code Quality while Enhancing Productivity – Can be quickly Integrated almost everywhere – Provides an automated environment to Introduce and Enforce Custom Coding Standards • Set by the Software Development Company • Required by Customers – Provides Documentation to prove this – Can detect many different problems and defects like: • Language Implementation Errors • Inconsistencies • Obsolescent Features • Coding Standard Violations
  • 30. 30 Programming Research QA C++ • Detecting defects and problems in code earlier can prevent delays later • Reports many Industry-Standard Code Metrics into graphs, diagrams, and HTML output. • Reports can be exported to be used in Microsoft Office or StarOffice to Analyze, Share, or Present information • Any problem discovered by QA C++ is shown in a Message Browser with a Drill-Down Environment
  • 31. 31 Programming Research QA C++ • QA C++ explains why problems it discovers need to be corrected and then provides examples on how to fix them • Product Highlights: – Identifies coding problems early in the development cycle – Accelerates the code review process – improves teamwork – Ensures quality code and coding standard compliance – Educates and raises programmer awareness – Reduces the risk of program failure – Enhances reliability, portability, and maintainability – Lowers software development costs – increases productivity – Improves time-to-market while reducing costs – Allows instant and repeatable code audits and reviews – Delivers unmatched technology & strong ROI
  • 32. 32
  • 33. 33 Testing Software • Parasoft Jtest – Java Unit Testing and Coding Standard – Improves Java Code Reliability, Security, Performance, and Maintainability – Checks code with over 500 different built in Development Rules – Can correct many violations automatically – User Defined Code Guidelines can be produced without using code; either Graphically or Automatically
  • 34. 34 Parasoft Jtest • Exposes Reliability Problems – Examines each class, then generates and executes JUnit Test Cases designed to achieve High Coverage and Expose Uncaught Runtime Exceptions • Exposes Functionality Problems – Can add and execute User-Defined Test Cases – Test Case Sniffer can monitor a running application and generate JUnit Test Cases to monitor behavior • Automated Regression Testing – Identifies problems introduced by code modifications • QA Team Members can use JTest to identify critical problems before release/deployment
  • 35. 35 Parasoft Jtest • Analyzes Code in two ways – Verifies Code Complies with Development Rules for Preventing Functional Errors, Security Vulnerabilities, Performance Problems, and Pitfalls – Jtest Automatically generates JUnit Test Cases • Test findings are reported as a Prioritized Task List • Test Cases can be added: – Automatically using Test Case Sniffer – Graphically – Programmatically
  • 36. 36 Parasoft Jtest • Benefits to using Jtest – Improve code reliability, functionality, security, and performance quickly and painlessly – Obtain instant expert feedback on code quality and potential defects – Prevent code modifications from breaking previously-verified functionality – Perform extensive testing/debugging and more time on creative tasks – Perform extensive testing with minimal user intervention – Reduce the risks that cause late, over-budget, incomplete releases – Identify errors lurking in existing applications – Optimize code review time – Ensure that best practices are applied consistently and uniformly across the team – Monitor overall project quality, specific project segments, and progress toward quality goals
  • 37. 37
  • 38. 38 Benefit of Software Quality Assurance in Projects • Essential to the Development Process • Without SQA, many Development Groups would not reach their release goals/deadlines on time • Spend too much time Revisiting Requirements, Design, Code, and Documentation without SQA • Lowers time spent on mundane areas and lets more time be focused on important areas • Decreases the time from Development to Deployment • Can help catch errors before they are too costly to fix • Standards can be used across many different Projects
  • 39. 39 References Hower, Rick (2006). Software QA and Testing Resource Center. Updated April 2006. Web site: http://www.softwareqatest.com/ Software Quality Assurance, NASA. Web site: http://satc.gsfc.nasa.gov/assure/agbsec3.txt Buchanan, Ian (2005). Borland StarTeam. Updated January 2005. Web site: http://www.cmcrossroads.com/cgi-bin/cmwiki/bin/view/CM/StarTeam CM Crossroads. Borland StarTeam Product Review. Web site: http://www.cmcrossroads.com/toolspot/starteam.php Borland Software Corporation. Borland StarTeam. Web site: http://www.borland.com/us/products/starteam/index.html Lucent Technologies (2006). Sablime. Web site: http://www.bell-labs.com/project/sablime/ Programming Research, Inc (2003). QA C++ Data Sheet. Web site: http://www.programmingresearch.com/pdfs/QAC++ - %20DATASHEET%20FEB05%20HQ.pdf Parasoft (2006). Jtest Data Sheet. Web site: http://www.parasoft.com/jsp/printables/- ParasoftJtestDataSheet.587.pdf?path=/jsp/products/-quick_facts.jsp&product=Jtest