Implementation & Testing Plan. CS 307: Software Engineering Pascal Meunier

Similar documents
Capability Maturity Model for Software (SW-CMM )

Chapter 1: Introduction

This document describes the overall software development process of microcontroller software during all phases of the Company Name product life cycle.

Chapter 5 Part Test progress monitoring and control. 4. Configuration management. 5. Risk and testing. 6. Incident management

Project and Process Tailoring For Success

SE420 Software Quality Assurance

Bugs are costly... Kinds of Quality Assurance

Software tool support for software development

Testing: How much is enough? Ian Ashworth Coverity

TEST DRIVEN DEVELOPMENT VS DESIGN BY CONTRACT

Integration and Testing

Software Project & Risk Management Courses Offered by The Westfall Team

How to improve the quality of your processes

Using static code analysis for Agile software development

Architecting JIRA for the Enterprise. JIRA is a powerful product, both flexible and highly configurable. Miles Faulkner

Reflection on Software Process Improvement

Contents. Today Project Management. What is Project Management? Project Management Activities. Project Resources

Project Management. Agenda - What will you learn today? Theory Lecture Plan. A Software Life-cycle Model Which part will we talk about today?

Software Engineering

Advantages and Disadvantages of. Independent Tests. Advantages. Disadvantages

How to improve the quality of your processes

Managing Project Risks

Session 8: Testing Special importance of testing Stages of testing Manual vs. automated testing Continuous testing strategies

Foundations of Software Engineering. Lecture 16: Process: Linear to Iterative Michael Hilton

Personal Software Process SM for Engineers: Part I

Copyright Software Engineering Competence Center

7. Project Management

8. CMMI Standards and Certifications

Risk-based Approach to Part 11 and GxP Compliance

Accelerating Xilinx All Programmable FPGA and SoC Design Verification with Blue Pearl Software

Risk Mitigation in a Core Banking Conversion

Chapter 3 Project Management

DEVELOP QUALITY CHARACTERISTICS BASED QUALITY EVALUATION PROCESS FOR READY TO USE SOFTWARE PRODUCTS

AIRBORNE SOFTWARE VERIFICATION FRAMEWORK AIMED AT AIRWORTHINESS

Selecting an FRx replacement

Introduction To Software Testing. Brian Nielsen. Center of Embedded Software Systems Aalborg University, Denmark CSS

1. Can you explain the PDCA cycle and where testing fits in?

HOW TO CREATE A CUSTOMER SUCCESS PLAN. A step-by-step guide to delivering on expectations and ensuring success

Test Management is Risk management. Risk Based Testing

Testing 2. Testing: Agenda. for Systems Validation. Testing for Systems Validation CONCEPT HEIDELBERG

Chapter 1. What is Software Engineering. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

Sample Chapter. Producing Meaningful Metrics

The things you want to know about metrics but you don t know what to ask!

Reliability Engineering. RIT Software Engineering

ISO 9001:2000 Drives Process Changes at Siemens

Managing the Testing Process E-learning Course Outline

Software Engineering Tools and Environments. Ch. 9 1

AUTOMATED DEFECT PREVENTION: BEST PRACTICES IN SOFTWARE MANAGEMENT

QUALITY ASSURANCE PLAN OKLAHOMA DEPARTMENT OF HUMAN SERVICES ENTERPRISE SYSTEM (MOSAIC PROJECT)

Darshan Institute of Engineering & Technology for Diploma Studies

VHDL Introduction. EL 310 Erkay Savaş Sabancı University

The Basics of ITIL Help Desk for SMB s

Agile-R. intecs Solutions. A new approach to combine Agile and EN for Railway software development. Agile-R. Trademark registered

Software Engineering. Page 1. Objectives. Steps in Project Planning. Software Project Planning. Scope. Estimating Resources

ISTQB CTFL BH QuestionsAnswers with Explanation

Chapter 1. Contents. What is Software Engineering 9/9/13. Shari L. Pfleeger Joanne M. Atlee. 4 th Edition

The 13th Annual International Software Testing Conference in India

Simplifying the Risk & Compliance THE PREMISE

Selecting Software Development Life Cycles. Adapted from Chapter 4, Futrell

USAF Software Technology Support Center (STSC) STSC SPI Help Desk COM , DSN

Project Planning. COSC345 Software Engineering 2016 Slides by Andrew Trotman given by O K

V3 Pension Administration System Solution. January 2014 Monthly Board Update

Daitan White Paper The Software Development versus Maintenance Dilemma COMMON MISCALCULATIONS IMPACT REVENUE AND MARKET SHARE

Leveraging Code Coverage Data to Improve Test Suite Efficiency and Effectiveness

LECTURE 8: Planning & Control Functions & Tools (Part II) Project Management BACA

Adapting software project estimation to the reality of changing development technologies

V3 Pension Administration System Solution. January 2014 Quarterly Board Update

Applying the Personal Software Process (PSP) sm with Ada

Management of Software Engineering. Ch. 8 1

Software Engineering. Lecture 2: The Personal Software Process

My Experience with an Agile Software Development Process

Security Assurance and Agile Development an Industry Perspective

Process Improvement Is Continuous Improvement

Conclusion.

ECE-492 SENIOR ADVANCED DESIGN PROJECT

CS101 Introduction of computing

Welcome to lecture 4 of Topic 2.9. In this lecture we focus on Phase 2 of the Project Management Lifecycle the planning phase

Exam Name: Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management

DORNERWORKS QUALITY SYSTEM

Software Process and Project Metrics

Project Management Courses

Summary. Days til Cutover Considerations Detail Sheet

Khozema Ali Shabbar CS 447

Agile Project Planning and Management

VectorCAST Presentation AdaEurope 2017 Advanced safety strategies for DO178C certification Massimo Bombino, MSCE

Case Study in Developing the System Integration Strategy and Plan for the Constellation Program

Part VI Why Agile Planning Works

VULNERABILITY MANAGEMENT BUYER S GUIDE

Managing Projects with Microsoft Project Server 2010

Mastering Microsoft Project 2010

A Data Item Description for System Feasibility Evidence

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Quantifying the Value of Investments in Micro Focus Quality Center Solutions

Software Engineering & Architecture

Appendix C: MS Project Software Development Plan and Excel Budget.

Personal SE Project Management Process Lecture/Week 1. A. Winsor Brown

Software Quality Assurance and Testing STUDY NOTES

V3 Pension Administration System Solution October 2013 Monthly Board Update

Software Quality Engineering Courses Offered by The Westfall Team

Dependable Technologies For Critical Systems. Software Verification. 22 nd May Technologies Ltd 2011 Critical Software

Transcription:

Implementation & Testing Plan CS 307: Software Engineering Pascal Meunier

Why An Implementation Plan If you don't think about how you're going to do it, it's likely going to be: Haphazard Unmanageable Costly Difficult to plan for the release How will you know that it was done properly, in budget, in time, and if not, why?

What's An Implementation Plan? See parts of Chapter 11, Managing the software process Which development process did you decide to use? Which features have priority? Which ones will you implement, and in which order? Dependencies? Needed resources?

The Capability Maturity Model p. 415 of the book One of several process standards About managing software processes Arguably the main difference between artisanal software development and software engineering Important topic

CMM Levels 1.Ad-Hoc (chaotic, heroics) Most students 2.Repeatable 3.Defined Ideally where we would like you to operate by the end of this class 4.Managed 5.Optimized

Level 3- Defined Defined and documented standard processes Some improvement of processes over time Consistency across an organization Mandatory process objectives

Meta-Programming: Can You Define How you will plan your team work How do you divide the work? How do you verify its quality? How you will plan the builds How you will plan the demo Not the plans themselves, but how you go about planning

Version Control Are there going to be any automated checks When committing code e.g., parsing check (syntax) Automated nightly build Does every commit need to be explained? Every change linked to a recorded bug?

More... How have you decided to: Keep track of Bugs Progress Make predictions about delivery dates How are you ranking the features in order of priority Then which features will you implement in Build 1? Build 2? Extra ones if you happen to have time?

Charts PERT Gantt Tools Spreadsheet completion estimates Task Name Task A Task B Task C Original Estimate (hours) Current Estimate Accomplished Started On Estimated Completion Date

Gantt Chart Example (using MS Excel, from MS's web site)

Your Charts You would decompose Build 1 into Implementing components Sub-components Classes Tests Your estimated times will be wrong You get better with time and recorded history Better than having no idea at all

Implementation Plan What we want to see: Define the processes you will use Define the management tools you will use e.g., Gantt chart, spreadsheet table Others e.g., Gnome Time Tracker (Linux) Explain your choices

Suggestion: Risk Driven Approach Idea: by taking on the most risky parts first, the schedule stabilizes faster or design is revised earlier Expose as early as possible things that Are unrealistic (requirements) Won't work as designed Minimize cost of changing directions

Example Risks Address show-stoppers first Part of the development environment doesn't work (likely!) We don't know how to install or use language/framework/library X Y isn't fully compatible with Z Or lots of configuration work necessary Will our algorithm really work?

Example Risks User interface dependence on how some features are implemented (options) Can't work on user interface until resolved, or change is costly Errors in interfaces between modules A change in a module requires a change in another

Identify Risks What are the risks to your project and how can you mitigate them? Can you work on Z while a solution to X is found? Can you plan your project from the start so that if X is delayed, Z exists? Have maneuvering room Have a plan B What will you sacrifice?

Resource Management Risk: the resource can take a long time to obtain and you can't code Y without it Solution: setup or ask for the resource earlier (ASAP?) Have an alternative resource, maybe not as good, but that allows you to produce valid code You are in charge of resources

Schedule and Milestones Tasks Components vs builds# Testing Your schedule can be tailored to minimize some risks

Testing (QA) Plan Define Tests Metrics Code coverage from tests Tools for metrics Code scanners Other tools Vulnerability scanners

Risk-based Testing Prioritize features and functions to be tested based on: Importance Likelihood or impact of failure Good enough software

Some Types of Testing Inline testing Assert macros & statements Unit testing Classes, methods, libraries Integration testing Interactions between components Final testing Exercise entire product

Notion: Test Coverage Identify a test coverage tool appropriate for your project Will identify % of code exercised by your tests No execution, no bug found Complete coverage requires a lot of work and is almost never done Satisfied with some %

Notion: Static Analysis Examine the code without executing it Common approach: Compile the code to some intermediate representation Analyze Dead (unreachable) code Code quality metrics (complexity) Things that look like vulnerabilities

Contents of Test Plan Complete set of test cases Testing process Refer to chapter 10 of the book

Complete Document Merge testing plan template with the outline of a project plan See book, section 11.6 Base schedule on testing plan, so do plan testing first

Questions?