SE420 - Software Quality Assurance

Similar documents
Topic 01. Software Engineering, Web Engineering, agile methodologies.

18-642: Software Development Processes

Lecture 7: Software Processes. Refresher: Software Always Evolves

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

SE310 Analysis and Design of Software Systems

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

SE310 Analysis and Design of Software Systems

The Scaled Agile Framework

SE420 Software Quality Assurance

SOFTWARE LIFE-CYCLE PROCESSES From Waterfall to Extreme Programming

Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Testing in Agile Software Development

Adopting Agile Practices

Ready for Scrum? Steve Hutchison DISA T&E

CMSC 435: Software Engineering Section 0201

SE420 Software Quality Assurance

Incremental Programming

Software Development Methodologies

SOFTWARE LIFE-CYCLE MODELS 2.1

The requirements engineering process

Kanban One-Day Workshop

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

Requirements and Design Overview

Testing in the Agile World

Dilbert Scott Adams. CSc 233 Spring 2012

SE310 Analysis and Design of Software Systems

System Development Life Cycle Methods/Approaches/Models

PMI Agile Certified Practitioner (PMI-ACP) Exam Prep Training - Brochure

Reducing the costs of rework. Coping with change. Software prototyping. Ways to Cope with change. Benefits of prototyping

Incremental development A.Y. 2018/2019

Specifying and Prototyping

Testing Agile Projects Stuart Reid

CertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

A CONFUSED TESTER IN AGILE WORLD

CS SOFTWARE ENGINEERING QUESTION BANK SIXTEEN MARKS

SE310 Analysis and Design of Software

Agile Tester Foundation E-learning Course Outline

W hitepapers. The Nexus Integration Team. Rob Maher, Patricia Kong. November 2016

Software Engineering I (02161)

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Software Engineering Lifecycles. Controlling Complexity

Evolutionary Architecture and Design

Software Verification and Validation (VIMMD052) Introduction. Istvan Majzik Budapest University of Technology and Economics

Crystal Methodologies, Lean & Kanban

Approaches for Auditing Software Vendors

Introduction to Software Engineering

Modern Software Engineering Methodologies Meet Data Warehouse Design: 4WD

SE310 Analysis and Design of Software Systems

Software Processes. Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 4 Slide 1

LEARNING SOLUTIONS & CERTIFICATE PATHS

Certified Software Quality Engineer Preparation On Demand, Web-Based Course Offered by The Westfall Team

Shift Left Testing: are you ready? Live Webinar, Sept 19

Testing. in A Large scale agile Development Environment

Architecture and Design Evolution

SE310 Analysis and Design of Software Systems

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

MTAT Software Engineering Management

Gradational conception in Cleanroom Software Development

XP Evolution Rachel Davies

Introduction to User Stories. CSCI 5828: Foundations of Software Engineering Lecture 05 09/09/2014

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

Advanced Software Engineering: Software Testing

Software Process. Software Process

SE310 Analysis and Design of Software Systems

Objectives. Connecting with Computer Science 2

Test Driven Development. René Barto SES Agile Development - Test Driven Development

Requirements and User-Centered Design in an Agile Context

Software Development Process Models

Incorporating User Centered Requirement Engineering into Agile Software Development

Development with Scrum

Kanban In a Nutshell. Bob Galen President & Principal Consultant RGCG, LLC

The Kanban Applied Guide

02291: System Integration

No SVN checkout today. Object-Oriented Design

Best Practices for Collecting User Requirements

Introduction to Software Engineering

The software lifecycle and its documents

Agile 2005 Experience Report

CS487 Midterm Exam Summer 2005

SE420 Software Quality Assurance

Software Testing Interview Question and Answer

PERSPECTIVE. End-to-end test automation A behaviordriven and tool-agnostic approach. Abstract

User Stories Applied, Mike Cohn

Optimize tomorrow today.

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016

Human Computer Interaction Lecture 06 [ HCI in Software Process ] HCI in the software process

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Agile Test Automation ICAgile

Protecting Information Assets - Week 11 - Application Development Security. MIS 5206 Protecting Information Assets

SAFe AGILE TRAINING COURSES

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

Adapt your tes-ng approach for Agile

Shift Left, Automation, and Other Smart Strategies for Getting Ahead in QA

AppScan Deployment APPLICATION SECURITY SERVICES. Colin Bell. Applications Security Senior Practice Manager

VO Software Engineering

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

Transcription:

SE420 - Software Quality Assurance http://dilbert.com/strips/comic/2006-01-29/ Lecture 3 Unit Testing, Part-2 January 21, 2019 Sam Siewert

Reminders Assignment #2 Posted Thursday [Unit Re-Use] Explore 3 Options for Assignments #3, #4, #5, #6 (Scaffold) Choose One [Work Together or Alone] Option 1 Encryption/Decryption of Files Option 2 RAID 10 and 50 File of Files Option 3 PPM File Image Processing, 3 Transforms (Brighten, Gamma Correct, and Sharpen) Option 4 Open Source Code of your interest Remaining Assignments [Top Down] #3 Specification and Acceptance Test #4 System Design and System Integrated Test #5 Design, Module Unit Tests and Regression Suite #6 Complete Code, Refine and Run all V&V Tests and Deliver Assignment #1 Grading in progress Sam Siewert 2

Requirements Generation and Acceptance Tests Require Experience Challenge of Waterfall and V Customer May Not Be Forthcoming Candidate or Reference Design and Code Re-Use May Be Best Starting Point to Drive Process Can Drive Top-Down (from concept to code) or Bottom-Up (from candidate code, design, system) Regression Testing Sam Siewert 3

Agile Development Methods http://dilbert.com/strips/comic/2007-11-26/ Not a New Process, Rather New Strategy for Existing Incremental Processes Sam Siewert 4

Workflow for a V with XP or Spiral Rather than Parallel Waterfall on Design/Dev Side and QA side, allow for Feedback or Evolution Task Level Workflow - E.g. Kanban (Github Project) Cycle time for SE420 and SE310 should be 2 weeks (for a Scrum Sprint) Hold stand-up meetings in class (at least once a week - provide status and re-task once teams are formed) Sam Siewert 5

Kanban on Whiteboard / Sticky Notes Kanban originally intended to be a physical workflow method Abstracted into software tools Github - Development workflow, Project boards Atlassian - https://confluence.atlassian.com/a gile/glossary/kanban-board Numerous other Agile and DevOps process management tools Columns depend on project and phase of Analysis, Design, Development, Test, etc. Facilitates stand-up status meetings Backlog (deferred tasks) Analysis, design features, tests, Ready (start implementation) Code construction, test plan, design, Doing (coding, testing, designing, ) On-hold (awaiting team decision) Done (ready for next phase) Move up or down the V Spiral to next quadrant Pass to new XP cycle or Scrum sprint Sam Siewert 6

Universal Principles for SQA and SWE Testing Throughout Process Life-cycle is Concurrent with Engineering (The Boehm V ). Testing Activity & Strategy Match Phase of Engineering Acceptance Testing Requirements System & Integration Testing System and Architecture Design Detailed Design and Coding Design Execution, Unit Testing Iteration and Sustaining Regression Testing at all Levels Validation (Building Right Thing), Verification (Built Right) are Continuous Activities, Equally Important Avoid Rigid Long Phases and Silos, Solicit Requirements Sam Siewert 7

Agile Manifesto http://agilemanifesto.org/principles.html 1. Early and Continuous Software Delivery to Customer 2. Welcome Changing Requirements, Even Late in Process 3. Deliver Working Software Frequently 4. Sponsors and Developers Work Together Start to End 5. Build Project Around Motivated Developers, Empower 6. Face-to-Face Primary Method of Communication 7. Working Software Primary Success Metric 8. Process and Pace Must be Sustainable (No Burnout) 9. Continuous Attention to Design 10. Simplify and Maximize Work Not Done Less is More 11. Best Requirements, Architecture, Design Come from Self- Organizing Teams 12. Regular Interval to Tune and Adjust Behavior Sam Siewert 8

Agile Practices Acceptance Test Driven Development (Requirements) Inherently Evolutionary Principals (Extreme, Spiral, Risk Control, Adaptive) Imagine Boehm s V as a Funnel with Spiral Inside it Where Phases of Analysis, Design, Coding are Concurrent with Test, But Also Spiral for Early Deliveries Acceptance Test is Focus, but Unit Tests, Integration tests, System Tests, Regression Required Along the Way Executable Design (Simulation State Machines) Proof-of-Concept Feasibility of Highest Risk Design Units Evolutionary Prototypes Solicit Early User Feed-back Sprint (Evolutionary Cycle in Spiral) Scrum Meetings (Quick, Stand-up Meetings, What is Done, What is to be Done, Blockers) Sprint Retrospective Customers are Internal as Well-as External Sam Siewert 9

Agile Advantages Does Not Dictate a Process Fit Current Process to Agile Principals Implies Evolutionary Process and Concurrent Engineering and Test Works with Extreme Programming and Tight Spiral and V Models, Could Work with Feed-back Waterfall, but Awkward Sustainable Focus on Team Behavior Works Well in Rapidly Evolving Markets http://en.wikipedia.org/wiki/extreme_programming Extreme Programming Process 1. Faster Iteration of Spiral 2. Iterate Release Plan to Code Process 3. Acceptance Test Driven 4. Program in Pairs (Walk-through) 5. Design Refinement Throughout Process 6. Define Requirements with Communication 7. Code in Small Increments 8. Revisit Requirements & Design Often Sam Siewert 10

Misinterpretations of Agile Process and Rigor is No Longer Needed Steps Can Be Skipped (Instead, Moved Up in Time & Iterated) Code First, Figure out Requirements and Design Later Requirements and Acceptance Testing De-emphasized Shortens Overall Development Time http://dilbert.com/strips/comic/2005-11-16/ Sam Siewert 11

Note on Top-Down & Bottom-Up Top-Down is Decomposition of System of Systems System Sub-system Units and Components Bottom-Up is Construction of a System of Systems Units and Components Selected and/or Perfected Sub-system Designs Improved with Better Components Systems Simplified System of Systems Eliminate Overlap and Redundancy Bottom-Up for Evolutionary Process Can Do Both with Iteration and Agile Principles Sam Siewert 12

Incremental - Spiral Model In Evolutionary (Extreme and Spiral Methods), Unit Coding and Testing Prior to Next Analysis & Design Phase Assume Professor Did Reasonable First-Cut Analysis and Design and Focus on Small Unit of Design Gain Detailed Test Experience Prevents Start-Up Requirements in a Vacuum Challenge Models Code Unit-Level Re-Use Challenges Sam Siewert 13

Linux Skills Building Unit Test Drivers (Strategy and Methods) January 24, 2017 Sam Siewert

Assignment #2 Use Code Example Unit Crypto Transposition or Substitution Functions RAID Parity or Mirroring with Striping PPM Transform Debug to Determine Paths and To Drive Test Cases Develop Test Drivers (One Positive, One Negative) Test Tests Run Tests and Produce Test Report Package for Delivery (Report) Sam Siewert 15

Start with Example Code Build, Run, Debug Core Unit (Potential Re-Use) Document Requirements and Use Cases (Acceptance Test Driven) Read Backgrounder and Review Example Code Make Assumptions, Communicate Face-to-Face and Via Assignment #2 Requirements Outline Acceptance Test for Assignment #6 (Requirements Vacuum) Devise Unit Tests for Core Unit Unit Driver Links Software Unit (to Be Used in Design) Driver Uses as Expected (Developer) Also Tests Negative, Stress, Corner Cases (SQA) Sam Siewert 16