parasoft adp solutions automated defects prevention for embedded systems software development

22
Parasoft ADP solutions Automated Defects Prevention Automated Defects Prevention for for Embedded Systems Software Development Embedded Systems Software Development by Wiktor Grodowski by Wiktor Grodowski

Upload: alina

Post on 12-Feb-2016

44 views

Category:

Documents


0 download

DESCRIPTION

Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development. by Wiktor Grodowski. Observations on Software Testing. Mostly focuses on Functional Testing tied back to Requirements Design – Code – “Integration and Test” - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Parasoft ADP solutions

Automated Defects PreventionAutomated Defects Preventionforfor

Embedded Systems Software DevelopmentEmbedded Systems Software Development

by Wiktor Grodowskiby Wiktor Grodowski

Page 2: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

• Mostly focuses on Functional Testing tied back to Requirements

• Design – Code – “Integration and Test”

• Early Testing is minimal and short-lived

• Testing efforts are focused on the isolation and subsequent fixing of “bugs” – Error Detection

• “Failure to Communicate” between Development, Test and Quality Assurance (QA)

Observations on Software Testing

.. Not much has changed in 25 years ..

Page 3: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

The Cost of Waiting

Page 4: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

• ADP = Automated Defects Prevention

• Defects Prevention != Error Detection

• ADP = Defects Prevention + Automation

• ADP is not a replacement for CMM / CMMI and alike. It is a change in a software development approach.

• ADP is practical, flexible, down to earth, based on over 20 years of experience

• http://www.adpqb.org

What is ADP all about?

Page 5: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

• ADP originates from Deming's and Jurand's works

• Attempting to introduce Deming's methodology into SDLC

• Follow the basic steps:•Identify a defect•Find its cause•Locate where and why it was introduced•Implement preventive methods•Monitor the process

• Start preventing errors instead of detecting them!

A brief history

Page 6: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Deming's wheel

Plan – establish objectives and processesDo – implement new processCheck – measure the results and compare against expected outcomeAct – analyze the differences, determine where to apply changes to include improvement

Page 7: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

ADP principles

Principle 1: Establishment of Infrastructure Build a strong foundation through integration of people and

technology Principle 2: Application of General Best Practices

Learn from others’ mistakes MISRA, JSF, other coding standards

Principle 3: Customization of Best Practices Learn from your own mistakes

Principle 4: Measurement and Tracking of Project Status Understand the past and present to make decisions about

the future Principle 5: Automation

Let the computer do it! Principle 6: Incremental Implementation of ADP’s Practices

and Policies

Page 8: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Establishment of infrastructure

People – extending traditional roles Must promote communication, efficiency, productivity and

job satisfaction Each role must include defects prevention tasks

Understanding roles All must understand how to adhere to the roles they are

given Define group behavior

Technology – minimum and more SCMS Build system BTS Reporting system

Page 9: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Application of best practices

Most software projects share same characteristics Best practices can be used to limit:

Human errors Common software defects

Where do the best practices come from? Different granularity of best practices:

Organizational-level (EVMS – Earned Value Management System, general guidelines for use of CMS)

Design-level (suggestions for usage of specific technologies or techniques, such as design patterns, Ajax or SOA)

Code-construction level (procedures for peer programming, writing unit tests, code review etc.)

Page 10: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Customization of best practices

Must address project-specific problems Is based on the Deming's principles

Monitor process Identify a defect Find cause of a defect Locate part of a process that let the defect slip through Modify process to prevent the defect from reappearing Monitor process (again)

Static analysis tool should be implemented to monitor both practices automatically

Page 11: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Measurement and tracking

Measures must be quantitative Absolute values (number of defects) Metrics (possession of a given attribute, confidence factor)

Measurement: What and how can be measured? What does the measure or metric indicate? What decisions can be based on these information?

Tracking: What data can be tracked? How is the data tracked? What do we gain from tracking this data?

Page 12: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Automation

What is automation? „Activity that can be performed completely without human

intervention” “Automation of mundane and repetitive tasks improves people

satisfaction and effectiveness” Not to substitute people but to improve working conditions for

people Automation improves product quality Automation facilitates human communication Automation helps to implement and enforce best practices and

organizational standards Automation improves people productivity Automation helps to collect measurement data

Page 13: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Code reviews are time-intensive and human-intensive Review process can be done with a “static analysis” tool

Quality focus is typically NOT built into product schedules so there is typically little time to do proper testing. Automation is required to leverage these precious cycles

Developers write more testing procedures/code than the code they are developing for delivery!

ADP “automates” much of the driver, stubs and infrastructure creation as well as provide metrics, like code coverage

Developers typically do NOT like testing. Some problems will never be solved!

Why Automation is Important !

Page 14: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Incremental implementation of ADP

Continuous change through: Learning Adaptation Innovation

Change, however, can be overwhelming ADP needs to be implemented gradually, on a group-by-group

basis Pilot group(s) Division(s) Organization

Best practices should also be introduced one-by-one

Page 15: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Incremental implementation of ADP

ADP is both iterative and incremental – the phases do not have to follow sequentially

Page 16: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

SCM

Source Control

code & tests

TCM

Team ConfigurationManager

Test Results

Scheduled Build and TestServer

Reporting

Program ManagerArchitect

Exemplary ADP Deployment

Professional Editions

Server Edition

Architect Edition

Nightly Results

DeveloperMachines

Architect / Technical lead

Company Standards

deplo

ymen

t Target device

Page 17: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

High costs of defects Number of defects in a final product must be kept at minimal due to

a high recall cost

Possibility of having human life or human safety at stake, dependent on a stability of an embedded device

Important time to market Late product = lost money

Mandatory compliance MISRA, JSF, DO-178B, others

Contractor's internal standards

Relation to Embedded Systems

Page 18: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Exemplary ROI Unit testing caused drop in residual errors almost by a factor of 2.

Is it worth it?

Revenues ($)

Time (months)On-time Delayed

entry entry

Peak revenue

Peak revenue from delayed entry

Market rise Market fall

W 2W

Time

D

On-time

DelayedR

even

ues (

$)

Page 19: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Is it really worth it?

ADP

Non-ADP

Page 20: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

C++Test Coding Standards analysis Flow Analysis Unit Testing - Coverage analysis Code Review Authoring and Automation

Concerto Work Planning and Tracking Reporting and Analytics Acceptance testing Data correlation Process Visibility

Insure++ Runtime memory analysis

Parasoft Tools supporting ADP

Page 21: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

XUnderstands and anticipates common coding mistakes that can lead to poor software quality

XUses testing as a process measurement technique

XXUses testing results to fix errors

XLearns from test results and improves processes and prevents future errors

XReduces probability of errors reoccurring

XAddresses the critical roles in creating software

XProvides tools and processes to keep team members code at same level

XUses testing results to fix the development process

XXFind Errors

ADPTestingBenefits

Benefits of ADP

Page 22: Parasoft ADP solutions Automated Defects Prevention for Embedded Systems Software Development

Questions & Answerswww.parasoft-embedded.com