Software Testing and Maintenance Introduction

Slides:



Advertisements
Similar presentations
1 Introduction to Software Engineering Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering University.
Advertisements

Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
Introduction to Software Testing Chapter 1 Model-Driven Test Design Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.3 Challenges in Testing Software Test Criteria and the Future of Testing Paul Ammann & Jeff Offutt
Goran Šuković, University of Montenegro 1/18 Faculty of Sciences Podgorica University of Montenegro 7 th Workshop on “Software Engineering Education and.
SWE Introduction to Software Engineering
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
CS351 - Software Engineering (AY2005)1 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects.
Frequently asked questions about software engineering
Lecture 1.
FYRIRLESTRAMARAÞON HR 2011 | RU LECTURE MARATHON 2011 Marta Kristín Lárusdóttir School of Computer Science Is it easy to use?
Computing MS Degrees Masters Degrees in Computing at GMU Jeff Offutt Professor of Software Engineering Chair, Graduate Studies Committee Coordinator, MS-SWE.
Software Engineering Experimentation Software Engineering Specific Issues (Mostly CS as well) Jeff Offutt
Introduction to Software Testing Chapter 9.3 Challenges in Testing Software Test Criteria and the Future of Testing Paul Ammann & Jeff Offutt
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
SWE © Solomon Seifu CS425 Software Engineering Solomon Seifu Department of Computer Science Maharishi University of Management, Fairfield, IA.
An Introduction to Software Engineering. What is Software?
Why You Should All Become Computer Engineers ECE 200 (Fall 2015) Saurabh Bagchi School of Electrical and Computer Engineering Purdue University.
Futures In I.T. Careers, Paths, Stereotypes and Myths.
An Introduction to Software Engineering (Chapter 1 from the textbook)
Teaching slides Chapter 1. Chapter 1: Introduction Introduction Components of a computer Building the software products What is software engineering?
SWE minor 2007 Minor in Software Engineering Offered by the Departments of Computer Science and Information & Software Engineering New for Fall 2007.
CS220:INTRODUCTION TO SOFTWARE ENGINEERING CH1 : INTRODUCTION 1.
Industry Advisory Board
Software Engineering Experimentation
Information Systems Development
CompSci 280 S Introduction to Software Development
16CS202 & Software Engineering
Yaskawa America, Inc. Two Divisions Annual Sales Employees
Paul Ammann & Jeff Offutt
INTRODUCTION The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned.
Chapter 1- Introduction
The CS Program at UHCL UHCL Spring Open House 2006 March 4, 2006
What is Wrong with Models?
We are: A Professional School The largest graduate school of Computer Science in the country We have: A University working with student and professional.
Chapter 18 Maintaining Information Systems
Contracting Officer Podcast Slides
Chapter 1- Introduction
Layout, Content and Design
Higher Information Systems
ITS 145: Intro to Information Systems
Introduction CSE 1310 – Introduction to Computers and Programming
Change to university degree accreditation incorporating employability:
Introduction.
Frequently asked questions about software engineering
Software Testing and Maintenance Designing for Change
Accepted Students Program
Information Systems Development
Design and Maintenance of Web Applications in J2EE
Software Usability and Design
Software engineering Lecturer: Nareena.
Frequently asked questions about software engineering
Introduction to Software Testing
Software Testing and Maintenance Modifying Code
An Introduction to Software Engineering
Overview: Software and Software Engineering
Software Testing and Maintenance Maintenance and Evolution Overview
Software Engineering Experimentation
Topics discussed in this section:
CS385T Software Engineering Dr.Doaa Sami
Chapter 1 Database Concepts.
NH Computing Education Landscape Report
SOFTWARE DEVELOPMENT LIFE CYCLE
Software Engineering ECS-602 B.Tech CS/Year-III Sem-VI
Error Handling in Java Servlets
Computer Science Department
Software Engineering Experimentation
Software Testing and Maintenance Designing for Change
Computer Science 210 Computer Organization
Presentation transcript:

Software Testing and Maintenance Introduction Jeff Offutt SWE 437 George Mason University 2018

“Traditional” Quality Attributes (1980s) Efficiency of process (time-to-market) Efficiency of execution (performance) This is what we teach is important in undergraduate computer science classes … It was true … in 1980 SWE 437 - Software Testing and Maintenance © Jeff Offutt

Modern Quality Attributes Reliability Usability Security Availability Scalability Maintainability Performance & Time to market Why the change ? All of these factors (sometimes called “-ilities”) are important in the 2000s Based on an informal survey of around a dozen web software development managers, 2000. SWE 437 - Software Testing and Maintenance © Jeff Offutt

Software Projects in the 1960s In the 1960s we built tiny log cabins … Single-programmer Not much complexity No process needed Design could be kept in short term memory SWE 437 - Software Testing and Maintenance © Jeff Offutt

Software Projects in the 1970s In the 1970s we built bigger houses … Still single-programmer – focus on algorithms and programming A little more complex We had to start thinking harder The lack of process led to some disasters For most of the industry, quality did not affect the bottom line But costs were starting to increase … SWE 437 - Software Testing and Maintenance © Jeff Offutt

Software Projects in the 1980s In the 1980s we built office buildings … We needed teamwork – and communication A lot more complex – data abstraction We needed to write down requirements and design Poor process and ignorance of need for process created spectacular failures We no longer had the skills and knowledge for successful engineering SWE 437 - Software Testing and Maintenance © Jeff Offutt

Software Projects in the 1990s In the 1990s we built skyscrapers … We needed more than teamwork and communication We needed totally new technologies – languages, modeling techniques, processes Software development changed completely New languages (Java, UML, etc) led to revolutionary procedures Education fell behind … SWE 437 - Software Testing and Maintenance © Jeff Offutt

Software Projects in the 2000s In the 2000s we build integrated collections of continuously evolving cities … Algorithm design and programming is no longer the primary focus of software development CS education fell so far behind it is almost obsolete New applications (web, embedded) is making quality crucial Developers learn more from training courses than they did in college Not much new development SWE 437 - Software Testing and Maintenance © Jeff Offutt

Pace of Change is Exhilarating We have gone from … Log cabins … to houses … to office buildings …to skyscrapers … to building the most complicated engineering systems in human history In just half a career !! Civil engineers took thousands of years for this kind of change And the most complicated civil engineering products pale in comparison the complexity of a modern IT system Electrical engineers took a couple of centuries No way researchers, educators, or engineers could keep up ! SWE 437 - Software Testing and Maintenance © Jeff Offutt

Theory, Practice and Education What have you learned in college ? How to build houses General software engineering courses (SWE / CS 321) introduce a few concepts about buildings The way we build software has changed dramatically since the CS curriculum stabilized in 1980 !!!! Very little new development is being done Maintenance … evolution … re-engineering … maintainability … being “agile” SWE 437 - Software Testing and Maintenance © Jeff Offutt

What Can You Do ? As a developer … As a professional … Program very neatly Design to make change easy Follow processes that make change easy As a professional … Listen to your colleagues when they teach you things you didn’t learn in college Take training classes eagerly (in the next 20 years, you shold spend more time in training than you spent in college CS courses) Further your education (MS degree) SWE 437 - Software Testing and Maintenance © Jeff Offutt

Performance & Time to market Goals of This Class Reliability / Testing Reliability / Testing Usability Security Availability Scalability Maintainability Performance & Time to market First third of SWE 437 Maintainability Last two thirds SWE 437 SWE 437 - Software Testing and Maintenance © Jeff Offutt

Current Reality Most software development is actually maintenance Maintenance is no longer as boring as it was in the 1980s “We have as many testers as we have developers. And developers spend half their time testing. We’re more of a testing organization than we're a software organization.” Bill Gates of Microsoft This class teaches modern methods for the two dominant portions of software development SWE 437 - Software Testing and Maintenance © Jeff Offutt