CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00



Similar documents
Developing acceptance tests specifically with Fit Fit for Developing Software Framework for Integrated Tests Rick Mugridge and Ward Cunningham.

CS 4240: Principles of Software Design. Course Introduction. Tom Horton

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

Agile Testing and Extreme Programming

Experiences Teaching a Course in Programmer Testing

Course: ISYS 4373 Application Development with Java Prerequisite: ISYS 3293

SE 333/433 Software Testing and Quality Assurance

INFORMATION AND REGULATIONS FOR SELF-PACED PROGRAMMING COURSES CS 3S, CS 9ABCDEFGH, CS 47ABC. Spring Semester 2008

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Test-Driven Development

Computer Science CS 2334: Programming structures and abstractions

UVA IT3350 Syllabus Page 1

ECE 3200 Electronics I First Summer Session 2015 (Online) Syllabus

Economics : Principles of Microeconomics

Research Methods in Psychology PSYC 251 Spring 2011

Advanced Test-Driven Development

MKTG 330 FLORENCE: MARKET RESEARCH Syllabus Spring 2011 (Tentative)

College Algebra Online Course Syllabus

Subject & Course: CS362 Software Engineering II. Credits: 4. Instructor s Name: Arpit Christi. Instructor s christia@onid.oregonstate.

Statistical Methods Online Course Syllabus

COURSE DESCRIPTION. Required Course Materials COURSE REQUIREMENTS

Management Science 250: Mathematical Methods for Business Analysis Three Semester Hours

Psychology 125- Psychology of Aging ONLINE Saddleback College Fall Course Description and Objectives

Syllabus: IST451. Division of Business and Engineering. Penn State Altoona

INF5120 Modellbasert Systemutvikling

Napa Valley College Fall 2015 Math : College Algebra (Prerequisite: Math 94/Intermediate Alg.)

COMP252: Systems Administration and Networking Online SYLLABUS COURSE DESCRIPTION OBJECTIVES

SYLLABUS: ACCOUNTING PRINCIPLES I 6200:201 Section: Fall 2014 COURSE DESCRIPTION AND MATERIALS

WILLIAM PATERSON UNIVERSITY CHRISTOS M. COTSAKOS COLLEGE OF BUSINESS Course Syllabus

MAC2233, Business Calculus Reference # , RM 2216 TR 9:50AM 11:05AM

Agile in Financial Services A Framework in Focus

Analytical Chemistry Lecture - Syllabus (CHEM 3310) The University of Toledo Fall 2012

Department of Accounting ACC Fundamentals of Financial Accounting Syllabus

METHODS OF SOCIAL RESEARCH

BUMK758K Advanced Marketing Analytics Fall, 2015 Professor Michel Wedel

FIN 430: Financial Modeling (Spring 2016) Professor Russell Jame Course Overview and Objectives Course Prerequisites Required Materials

Technology and Online Computer Access Requirements: Lake-Sumter State College Course Syllabus

ECO 250 Economics and Business Statistics I Fall 2009 Online Course

BUS315: INTRODUCTION TO FINANCIAL MANAGEMENT COURSE OUTLINE

EDMS 769L: Statistical Analysis of Longitudinal Data 1809 PAC, Th 4:15-7:00pm 2009 Spring Semester

Psych 302: Research Methods in Psychology

Workshop on Agile Test Strategies and Experiences. Fran O'Hara, Insight Test Services, Ireland

Codeless Test Automation for Web Apps

Introduction to Agile Software Development. EECS 690 Agile Software Development

Agile QA s Revolutionary Impact on Project Management

INDIVIDUAL, SOCIETY, AND CULTURE

MKTG , Marketing Research and Information Technology Course Syllabus, Spring :30-11:00 a.m. MW

CEDAR CREST COLLEGE Psychological Assessment, PSY Spring Dr. Diane M. Moyer dmmoyer@cedarcrest.edu Office: Curtis 123

Precalculus Algebra Online Course Syllabus

MAT 1500: College Algebra for the Social and Management Sciences General Syllabus

DSBA/MBAD 6211 Advanced Business Analytics UNC Charlotte Fall 2015

Sangam A Distributed Pair Programming Plug-in for Eclipse

An Introduction to Agile Engineering Practices

TECH 4101 HUMAN RESOURCES FOR ADMINISTRATIVE AND TECHNOLOGY MANAGERS (R1 section) Course Syllabus Fall 2015

MATH 1310, SECTION 17086

Agile Tester Foundation Course Outline

INFO 3130 Management Information Systems Spring 2016

Governors State University College of Business and Public Administration. Course: STAT Statistics for Management I (Online Course)

CSC122/CYEN122: Intermediate Computer Programming

COURSE SYLLABUS INTRODUCTION TO INTERNATIONAL BUSINESS MGT ONLINE FALL 2014

Lehigh University CHEM 112 ORGANIC CHEMISTRY II Spring 2016 Course Syllabus. Instructors:

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

JUnit. Introduction to Unit Testing in Java

Syllabus Geography 1010 Introduction to Geographic Data Spring 2015

Peru State College, Peru, NE. MGMT 602 Research Methods. Master of Science in Organizational Management. Syllabus Spring Semester 2014

Spring 2013 CS 6930 Advanced Topics in Web Security and Privacy - 3 Credit Hours Syllabus and Course Policies

IT 101 Introduction to Information Technology

Driving Development with Tests: ATDD and TDD

Financial Statement Analysis University of Texas at Austin ACC 327 Spring 2009 J. William Kamas

Introduction to Programming System Design. CSCI 455x (4 Units)

Major Topics Covered in the Course

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

ANTH 008 WORLD PREHISTORY

IST359 INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS

Applied Information Technology Department

BADM323: Information Systems for Business Professionals SU2016 Online Course

Teaching Agile Software Development at University Level 1

Web-Based Database Applications ITP 300x (3 Units)

INFO Management Information Systems Spring 2015

PSY 311: Research Methods in Psychology I (FALL 2011) Course Syllabus

Java course - IAG0040. Unit testing & Agile Software Development

Agile processes. Extreme Programming, an agile software development process

Best way to contact me: listed above or stop by my office; I don t read WebCT

New York University Stern School of Business Undergraduate College

FIN (MBA ) FINANCIAL MODELING Spring Office Phone: Office Hours: 3:00-4:00pm Tuesday/Thursday or by appointment

TA contact information, office hours & locations will be posted in the Course Contacts area of Blackboard by end of first week.

Williams College Department of Economics. Economics 384: Corporate Finance

Sociology 302: Contemporary Social Problems

TECM 2700 Introduction to Technical Writing

OFFICE LOCATION: OFFICE HOURS:

BCIS Business Computer Applications D10

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

BCIS Business Computer Applications - Online

Chemistry 3325 Organic Chemistry II Fall 2007

Course Objectives: This is a survey course to introduce you to the federal income tax system. The objectives of the course are to:

THE AMERICAN UNIVERSITY School of Public Affairs

Ecommerce Designing ETP 450x (4 Units) - Laboratory Exercises

HARFORD COMMUNITY COLLEGE 401 Thomas Run Road Bel Air, MD Course Outline

Troy Online. Course Syllabus. BUS4474 Business and Society Term

Transcription:

CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00 SOFTWARE TESTING 2. (Catalog description) Explores structural (glass box) methods for testing software. Testing of variables in simultaneous and sequential combinations, application programmer interfaces, protocols, design by contract, coverage analysis, testability, diagnostics, asserts and other methods to expose errors, regression test frameworks, test-first programming. Andy Tinkham Room 238, Olin Engineering OH: W,Th 2-3 andy@tinkham.org Cem Kaner Room 248, Olin Engineering OH: kaner@kaner.com Texts: David Astels, Test Driven Development: A Practical Guide J.B. Rainsberger, JUnit Recipes Rick Mugridge and Ward Cunningham, FIT for Developing Software Jim D Anjou, et al., The Java Developer s Guide to Eclipse, 2 nd Ed. OR David Gallardo, et al., Eclipse in Action: A Guide for the Java Developer Required Tools: Java 5.0, download from http://java.sun.com. This is needed to run Eclipse and the other tools. Eclipse 3.1, download from http://www.eclipse.org. This is a software development environment, including an editor, debugger, and many other features. JUnit integrates well with Eclipse (and is included in the download). JUnit (included in the Eclipse download). JUnit is an automated testing framework for unit testing in Java. Subclipse, download from http://subclipse.tigris.org. Subclipse is an Eclipse plug-in that allows Eclipse to work with Subversion source control systems, which we ll be using for the code projects this semester. 1.8.x programming language, download from http://www.ruby-lang.org/en/. is an increasingly popular scripting language. We ll use it to drive testing of web-based and other applications. Development Toolkit, download from http://sourceforge.net/projects/rubyeclipse. RDT is an Eclipse plug-in that provides rudimentary support for developing code in Eclipse Supplementary Reading: Note: These readings are completely optional. Some students have found the books helpful, and we recommend you look in these books first if you have questions or want further information about the subjects we cover in class. Johannes Link, Unit Testing in Java: How Tests Drive the Code Kent Beck, Test Driven Development: By Example Kent Beck, Extreme Programming Explained: Embrace Change

Martin Fowler, Refactoring Eric M. Burke & Brian M. Coyner, Java Extreme Programming Cookbook Brian Marick, The Craft of Software Testing Vincent Massol, JUnit in Action Laurie Williams and Robert Kessler, Pair Programming Illuminated Mike Feathers, Working Effectively with Legacy Code Joshua Kerievsky, Refactoring to Patterns Mike Cohn, User Stories Applied for Agile Software Development Jeff Langr, Agile Java: Crafting Code with Test-Driven Development Additional materials: We may post additional papers on the blackboard class site, designating some as required reading and others as recommended, as the course progresses. Announcements of these papers will be made in class. Prerequisites: Software Testing 1. (A sound background in black box testing and the logic of test design) Java programming. Grading: To pass the course, you MUST have a passing average on the mid-term test and the final exam. Undergraduates (CSE 4415): If the average of your mid-term test and your final exam is below 60%, you will fail the course no matter how well you do on the assignments and projects. Graduates (SWE 5415): If the average of your mid-term test and your final exam is below 70%, you will fail the course no matter how well you do on the assignments and projects. You can earn grades as follows Homework, spot quizzes and in-class assignments 10% Projects 40% Mid-term test 20% Final exam 30% Total points available 100% We don't grade on a curve. If everyone gets 90% or more, everyone gets an A. (B is 80-89; C is 70-79; D is 60-69; F is 0-59). Mid-term Exam: Thursday, October 6, 3:30 p.m.-4:45 p.m. Final Exam: Must be submitted by Friday, December 16, 10:30 a.m. Website We will use Florida Tech s Blackboard website for communication, grade tracking, and possibly submission of assignments. We may also use it to administer some tests and quizzes. Create an account if you don t have one already and sign up for the class. It is your responsibility to provide and maintain accurate contact information on the blackboard site. As we send information out throughout the semester, we will not accept not getting the email as an excuse. Please make sure your name on Blackboard is recognizably similar to your name as listed in the class roll.

Policies Spot quizzes and in-class assignments are graded on a one point scale: Either you do well enough to get credit on it, or you don t. We will not accept late in-class assignments. Homework is graded on a 10-point scale. Late homework and projects lose 10% (1 point for homework and 10 points for projects) for each day late. Homework will not be accepted after we have gone over the assignment in class (generally, this will be the next class after the homeworks are due) nor will homeworks or projects be accepted when they are later than 7 days, regardless of when the material is reviewed in class. Scores for homeworks and projects not turned in prior to the acceptance deadlines will be recorded as 0. Please prepare all written work on a text editor or word processor. We will accept text files, RTF files, PDF files, Excel files, PowerPoint files, and Microsoft Word format files. If you don t have MS-Office, OpenOffice and other freeware tools can create all of these types of files. Submit homework and assignments through Blackboard. For the purpose of assigning late penalty points, we will use the timestamp assigned by Blackboard to determine what time something was submitted. Projects will be submitted through the Subversion version control server. We ll discuss this more in class when the first project is handed out. Keep copies of everything you submit. Documents have been lost in the Blackboard submission process. VERY IMPORTANT: When you submit something to Blackboard, make sure that the FILE NAME contains: YOUR NAME(S), and the ASSIGNMENT identifier. As long as it s unique in the class and we can easily recognize it, you can use any combination or truncation of your first and last names or initials. we get a lot of assignments. When we save them to our hard drive, we put them in one directory. When we do that, we no longer know which drop box entry it came from. If we can t identify your file from the file name in that directory, we will cut your assignment grade by 5 points (half a letter grade). You should also make sure that your names and the assignment title are included inside the file. Failure to do this will also result in a 5-point (half a letter grade) reduction for that assignment grade. Student Collaboration / Academic Integrity: Homeworks and projects will normally be done by two students working together. You may choose your own pairs, but must work with a different partner for each paired homework and project. Each pair will make a single, joint submission of their work on an assignment. If you find that you are having issues in a particular pairing, you need to come to us as quickly as possible so that we can help you clear up these issues and avoid any negative impacts on your grade. You may consult other students (both members of this class and students not currently enrolled) when preparing an assignment. Please give credit to each helper by including in the assignment the person s name and a brief description of how he or she helped you. If you receive help but submit work that fails to acknowledge your helpers, we will zero your paper and may take additional action in accordance with the University s academic integrity policy. You may not collaborate on the quizzes or exams. The usual rules governing cheating in closed book tests and exams will be applied. Take-home exams (including the final) may not be authored by more than one person. You may consult with other students in the class on the final exam; HOWEVER, each person MUST submit his or her own work that is obviously developed independently of all other people AND all consultants must be acknowledged as directed above. Course Objectives and Overview We have four guiding objectives for this course. In our order of priority, they are: 1. You should develop practical competencies in the types of testing a programmer can and should do to her code or that of a peer. Particularly, these types include:

a. Test-driven programming b. API-level system testing c. Designing powerful & thorough glass-box tests d. Test-driven maintenance of existing code e. Code-level integration testing 2. We designed this course to appeal to employers looking for senior test engineers and test-interested agile programmers. We want the contents of the course and well-done student work products to grab the attention of sophisticated interviewers.. 3. You should be familiar with current tools designed to support test-driven development. 4. You should be able to work well in pairs. In your black box testing course, you learned important general lessons about testing, such as testing from a theory of error, designing tests with an eye to their power (ability to expose problems) and selecting test approaches based on your project context and your objectives. In this course, we apply your knowledge to a new context in which you have the code. You can modify the code to better test or troubleshoot it. We will do a lot of programming in this course due to the focus on the types of testing done by programmers. Astel s book will be our main text book for this class. The first 8 chapters are informational, and will be covered in lecture. The remaining chapters show an example of TDD. We won t cover this example in class, but we ve designed the first project in a way that should let you use this example as a guide. We strongly suggest that students read & consult this example, particularly those whose Java skills are rusty. Lecture Schedule Week Topics Readings Notes 1 TDD, Refactorings Astels, Chapters 1 & 2 8/26: Last day to add (8/22-8/26) Rainsberger, Chapter 1 & 2 2 (8/29-9/2) 3 (9/5-9/9) 4 (9/12-9/16) 5 (9/19-9/23) 6 (9/26-9/30) 7 (10/3-10/7) Programming by Intention, JUnit JUnit, Mock Objects, TDD of GUIs Review & Midterm Astels, Chapters 3 (Skim chapters 4-6 as well) Rainsberger, Chapters 3-5 Rainsberger, Chapters 6-8 Astels 7-8 9/2: Last day to drop without W 10/4: Project 1 due by start of class 10/6: MIDTERM EXAM 8 Midterm & Project 1 10/11: NO CLASS (fall

(10/10-10/14) Review break) 10/14: Last day to drop with W 9 (10/17-10/21) 10 (10/24-10/28) 11 (10/31-11/4) 12 (11/7-11/11) 13 (11/14-11/18) 14 (11/21-11/25) 15 (11/28-12/2) 16 (12/5-12/9) 17 (12/12-12/16) FIT: Developing tables Mugridge Chapters 1-8 (May want to read example in Chapters 12-19) FIT: Developing tables & fixtures Mugridge Chapters 9-11, 20-24 (May want to read example in Chapters 30-36) FIT, Developing fixtures Mugridge Chapters 25-29 Project 2 Review, TDD of test tools Final project Q&A 11/10: Project 2 due by start of class 11/24: NO CLASS (Thanksgiving) 12/8: NO CLASS (Study day) Andy will still have regular office hours FINALS WEEK 12/16: Final Exam MUST be submitted by 10:30AM