Unit testing using Python nose

Size: px
Start display at page:

Download "Unit testing using Python nose"

Transcription

1 Unit testing using Python nose Luis Pedro Coelho On the web: On European Molecular Biology Laboratory June 11, 2014 Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (1 / 23)

2 Motivation Scientific code must not just produce nice looking output, but actually be correct. Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (2 / 23)

3 Motivation (II) Some recent code-related scientific catastrophes: Geoffrey Chang Abortion reduces crime? maybe not so much once you fix the bug Rogoff s Growth in a Time of Debt paper is a famous example (even if the bug itself is only a small part of the counter-argument) East Anglia Climategate Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (3 / 23)

4 Why do things go wrong?.1 Your code is correct, but input files are wrong/missing/, the network goes down.2 Your code is buggy. Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (4 / 23)

5 Never fail silently! The worst thing is to fail silently. Fail loudly and clearly (This is partially why Unix tradition is to produce no output when things go well) Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (5 / 23)

6 Defensive Programming Defensive programming means writing code that will catch bugs early. Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (6 / 23)

7 Assertions def stddev ( v a l u e s ) : S = stddev ( v a l u e s ) Compute standard d e v i a t i o n a s s e r t l e n ( v a l u e s ) > 0, stddev : got empty l i s t.... Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (7 / 23)

8 Assertions def stddev ( v a l u e s ) : S = stddev ( v a l u e s ) Compute standard d e v i a t i o n i f l e n ( v a l u e s ) <= 0 : r a i s e A s s e r t i o n E r r o r ( stddev : got empty l i s t. )... Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (8 / 23)

9 Preconditions In computer programming, a precondition is a condition or predicate that must always be true just prior to the execution of some section of code. (Wikipedia) Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (9 / 23)

10 Preconditions Other Languages C/C++ #include <assert.h> Java assert pre-condition Matlab assert () (in newer versions) Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (10 / 23)

11 Assertions Are Not Error Handling! Error handling protects against outside events; assertions protect against programmer mistakes. Assertions should never be false. Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (11 / 23)

12 Programming by Contract.1 pre-conditions..2 post-conditions..3 invariants. Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (12 / 23)

13 Pre-condition What must be true before calling a function. Post-condition What is true after calling a function. Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (13 / 23)

14 Testing Do you test your code? Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (14 / 23)

15 Unit Testing def test_stddev_const ( ) : a s s e r t stddev ( [ 1 ] * 100 ) < 1e - 3 def t e s t _ s t d d e v _ p o s i t i v e ( ) : a s s e r t stddev ( range ( 20 ) ) > 0. Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (15 / 23)

16 Nosetest Nose software testing framework: Tests are named test_something. Conditions are asserted. Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (16 / 23)

17 Software Testing Philosophies.1 Test everything. Test it twice..2 Write tests first..3 Regression testing. Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (17 / 23)

18 Regression Testing Make sure bugs only appear once! Luis Pedro Coelho (EMBL) Unit testing June 11, 2014 (18 / 23)

19 Practical Session: some preliminaries statistics.py def stddev ( xs ) :... test_statistics.py def test_stddev_const ( ) : a s s e r t stddev ( [ 1 ] * 100 ) < 1e - 3 def t e s t _ s t d d e v _ p o s i t i v e ( ) : a s s e r t stddev ( range ( 20 ) ) > 0. Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (19 / 23)

20 Practical Session: some preliminaries statistics.py def stddev ( xs ) :... test_statistics.py import s t a t i s t i c s def test_stddev_const ( ) : a s s e r t s t a t i s t i c s. stddev ( [ 1 ] *100 ) < 1e - 3 def t e s t _ s t d d e v _ p o s i t i v e ( ) : a s s e r t s t a t i s t i c s. stddev ( range ( 20 ) ) > 0. Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (20 / 23)

21 Practical: Python III & Unit testing.1 You can either start from scratch or check the files I give you (or any combination of both)..2 Goal is to write code to do a simple task & test it. Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (21 / 23)

22 Types of tests Smoke test: just check it runs Corner/edge cases: check complex cases. Case testing: test a known case Regression testing: create a test when you find a bug. Integration test: test that different parts work together. Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (22 / 23)

23 Goals.1 Download files from There is a data file (data.txt).3 See the code in main.py, which loads it..4 Write a function average in a file called robust.py, which computes the average of a sequence of numbers, whilst ignoring the maximum and minimum..5 Write tests for robust.average..6 (If you have the time, you can look at plots.py) Luis Pedro Coelho (luis@luispedro.org) (EMBL) Unit testing June 11, 2014 (23 / 23)

CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf

CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf CS 1133, LAB 2: FUNCTIONS AND TESTING http://www.cs.cornell.edu/courses/cs1133/2015fa/labs/lab02.pdf First Name: Last Name: NetID: The purpose of this lab is to help you to better understand functions:

More information

How To Understand The Details Of A Function In Python 2.5.2 (For Beginners)

How To Understand The Details Of A Function In Python 2.5.2 (For Beginners) Python Programming: An Introduction to Computer Science Chapter 6 Defining Functions Python Programming, 2/e 1 Objectives To understand why programmers divide programs up into sets of cooperating functions.

More information

A Laboratory Information. Management System for the Molecular Biology Lab

A Laboratory Information. Management System for the Molecular Biology Lab A Laboratory Information L I M S Management System for the Molecular Biology Lab This Document Overview Why LIMS? LIMS overview Why LIMS? Current uses LIMS software Design differences LIMS software LIMS

More information

Research Data Management CODING

Research Data Management CODING CODING Coding When writing software or analytical code it is important that others and your future self can understand what the code is doing. published 10 steps that they regard as the Best Practices

More information

Software security specification and verification

Software security specification and verification Software security specification and verification Erik Poll Security of Systems (SoS) group Radboud University Nijmegen Software (in)security specification and verification/detection Erik Poll Security

More information

Loop Invariants and Binary Search

Loop Invariants and Binary Search Loop Invariants and Binary Search Chapter 4.3.3 and 9.3.1-1 - Outline Ø Iterative Algorithms, Assertions and Proofs of Correctness Ø Binary Search: A Case Study - 2 - Outline Ø Iterative Algorithms, Assertions

More information

National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. Testing Guidelines for Student Projects

National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. Testing Guidelines for Student Projects National University of Ireland, Maynooth MAYNOOTH, CO. KILDARE, IRELAND. DEPARTMENT OF COMPUTER SCIENCE, TECHNICAL REPORT SERIES Testing Guidelines for Student Projects Stephen Brown and Rosemary Monahan

More information

Testing Introduction. IEEE Definitions

Testing Introduction. IEEE Definitions Testing Introduction IEEE Definitions Software testing is the process of analyzing a software item to detect the differences between existing and required conditions (that is, bugs) and to evaluate the

More information

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery

PHP Debugging. Draft: March 19, 2013 2013 Christopher Vickery PHP Debugging Draft: March 19, 2013 2013 Christopher Vickery Introduction Debugging is the art of locating errors in your code. There are three types of errors to deal with: 1. Syntax errors: When code

More information

Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions?

Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions? Logistics Project Part 3 (block) due Sunday, Oct 30 Feedback by Monday Logistics Project Part 4 (clock variant) due Sunday, Nov 13 th Individual submission Recommended: Submit by Nov 6 th Scoring Functionality

More information

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References Outline Computer Science 331 Introduction to Testing of Programs Mike Jacobson Department of Computer Science University of Calgary Lecture #3-4 1 Denitions 2 3 4 Implementation and Evaluation 5 Debugging

More information

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014 CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections

More information

Lecture Notes on Linear Search

Lecture Notes on Linear Search Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is

More information

Software Development Phases

Software Development Phases Software Development Phases Specification of the task Design of a solution Implementation of solution Analysis of solution Testing and debugging Maintenance and evolution of the system Obsolescence Specification

More information

Scanner. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit.

Scanner. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit. Scanner The Scanner class is intended to be used for input. It takes input and splits it into a sequence of tokens. A token is a group of characters which form some unit. For example, suppose the input

More information

PL/SQL Practicum #2: Assertions, Exceptions and Module Stability

PL/SQL Practicum #2: Assertions, Exceptions and Module Stability PL/SQL Practicum #2: Assertions, Exceptions and Module Stability John Beresniewicz Technology Manager Precise Software Solutions Agenda Design by Contract Assertions Exceptions Modular Code DESIGN BY CONTRACT

More information

CME 193: Introduction to Scientific Python Lecture 8: Unit testing, more modules, wrap up

CME 193: Introduction to Scientific Python Lecture 8: Unit testing, more modules, wrap up CME 193: Introduction to Scientific Python Lecture 8: Unit testing, more modules, wrap up Sven Schmit stanford.edu/~schmit/cme193 8: Unit testing, more modules, wrap up 8-1 Contents Unit testing More modules

More information

mate of your wit Case Study www.witmate.com 1

mate of your wit Case Study www.witmate.com 1 Logic Engine case study Expense Application System (contact@witmate.com) Abstract This article explains the approaches and advantages of Logic Engine based system design and implementation with the case

More information

Software Engineering Techniques

Software Engineering Techniques Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary

More information

Committee on WIPO Standards (CWS)

Committee on WIPO Standards (CWS) E CWS/1/5 ORIGINAL: ENGLISH DATE: OCTOBER 13, 2010 Committee on WIPO Standards (CWS) First Session Geneva, October 25 to 29, 2010 PROPOSAL FOR THE PREPARATION OF A NEW WIPO STANDARD ON THE PRESENTATION

More information

How to Outsource Without Being a Ninnyhammer

How to Outsource Without Being a Ninnyhammer How to Outsource Without Being a Ninnyhammer 5 mistakes people make when outsourcing for profit By Jason Fladlien 2 Introduction The way everyone does outsourcing is patently wrong, and this report is

More information

Data Intensive Computing Handout 5 Hadoop

Data Intensive Computing Handout 5 Hadoop Data Intensive Computing Handout 5 Hadoop Hadoop 1.2.1 is installed in /HADOOP directory. The JobTracker web interface is available at http://dlrc:50030, the NameNode web interface is available at http://dlrc:50070.

More information

Software Construction

Software Construction Software Construction Debugging and Exceptions Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You know the proper usage

More information

X05. An Overview of Source Code Scanning Tools. Loulwa Salem. Las Vegas, NV. IBM Corporation 2006. IBM System p, AIX 5L & Linux Technical University

X05. An Overview of Source Code Scanning Tools. Loulwa Salem. Las Vegas, NV. IBM Corporation 2006. IBM System p, AIX 5L & Linux Technical University X05 An Overview of Source Code Scanning Tools Loulwa Salem Las Vegas, NV Objectives This session will introduce better coding practices and tools available to aid developers in producing more secure code.

More information

4. Test Design Techniques

4. Test Design Techniques 4. Test Design Techniques Hans Schaefer hans.schaefer@ieee.org http://www.softwaretesting.no/ 2006-2010 Hans Schaefer Slide 1 Contents 1. How to find test conditions and design test cases 2. Overview of

More information

Using Files as Input/Output in Java 5.0 Applications

Using Files as Input/Output in Java 5.0 Applications Using Files as Input/Output in Java 5.0 Applications The goal of this module is to present enough information about files to allow you to write applications in Java that fetch their input from a file instead

More information

Evaluation of AgitarOne

Evaluation of AgitarOne Carnegie Mellon University, School of Computer Science Master of Software Engineering Evaluation of AgitarOne Analysis of Software Artifacts Final Project Report April 24, 2007 Edited for public release

More information

Fast string matching

Fast string matching Fast string matching This exposition is based on earlier versions of this lecture and the following sources, which are all recommended reading: Shift-And/Shift-Or 1. Flexible Pattern Matching in Strings,

More information

Data Intensive Computing Handout 6 Hadoop

Data Intensive Computing Handout 6 Hadoop Data Intensive Computing Handout 6 Hadoop Hadoop 1.2.1 is installed in /HADOOP directory. The JobTracker web interface is available at http://dlrc:50030, the NameNode web interface is available at http://dlrc:50070.

More information

Outline. Computer Science 331. Stack ADT. Definition of a Stack ADT. Stacks. Parenthesis Matching. Mike Jacobson

Outline. Computer Science 331. Stack ADT. Definition of a Stack ADT. Stacks. Parenthesis Matching. Mike Jacobson Outline Computer Science 1 Stacks Mike Jacobson Department of Computer Science University of Calgary Lecture #12 1 2 Applications Array-Based Linked List-Based 4 Additional Information Mike Jacobson (University

More information

Lessons Learned in Software Testing

Lessons Learned in Software Testing Lessons Learned in Software Testing An excellent book covering a range of testing topics Practical rather than academic In the next few lectures, we ll discuss some of the key lessons from this book, and

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions

Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement

More information

FCCS Tutorial INSTRUCTOR S GUIDE

FCCS Tutorial INSTRUCTOR S GUIDE FCCS Tutorial INSTRUCTOR S GUIDE To download and/or view the Fuel Characteristic Classification System (FCCS) tutorial, please visit the tutorial webpage at: http://www.fs.fed.us/pnw/fera/products/software_tutorials.html

More information

Eclipse Help

Eclipse Help Software configuration management We ll start with the nitty gritty and then get more abstract. Configuration and build Perdita Stevens School of Informatics University of Edinburgh 1. Version control

More information

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

Introduction to Programming System Design. CSCI 455x (4 Units) Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,

More information

Ruby in the context of scientific computing

Ruby in the context of scientific computing Ruby in the context of scientific computing 16 January 2014 1/24 Overview Introduction Characteristics and Features Closures Ruby and Scientific Computing SciRuby Bioruby Conclusion References 2/24 Introduction

More information

02-201: Programming for Scientists

02-201: Programming for Scientists 1. Course Information 1.1 Course description 02-201: Programming for Scientists Carl Kingsford Fall 2015 Provides a practical introduction to programming for students with little or no prior programming

More information

The first program: Little Crab

The first program: Little Crab CHAPTER 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if-statement In the previous chapter,

More information

On the Brittleness of Software and the Infeasibility of Security Metrics

On the Brittleness of Software and the Infeasibility of Security Metrics On the Brittleness of Software and the Infeasibility of Security Metrics Steven M. Bellovin http://www.cs.columbia.edu/~smb Columbia University August 1, 2006 1 / 9 If you can not measure it, you can not

More information

Tool-Assisted Unit-Test Generation and Selection Based on Operational Abstractions

Tool-Assisted Unit-Test Generation and Selection Based on Operational Abstractions Tool-Assisted Unit-Test Generation and Selection Based on Operational Abstractions Tao Xie 1 and David Notkin 2 (xie@csc.ncsu.edu,notkin@cs.washington.edu) 1 Department of Computer Science, North Carolina

More information

A Short Course in Logic Zeno s Paradox

A Short Course in Logic Zeno s Paradox 1 Grappling with Good Arguments A Short Course in Logic Zeno s Paradox We ve seen that if we decide that an argument is good then we should be inclined to believe that the ultimate conclusion is true.

More information

2 Introduction to Nintex Workflow

2 Introduction to Nintex Workflow 2 Introduction to Nintex Workflow What is Nintex Workflow? Nintex Workflow is a product created by Nintex, their started in Australia and are now based in the USA. They have also locations in England,

More information

BLOCK OCCUPANCY DETECTOR WITH SEMAPHORE OPERATION BOD1/DAP4-BR

BLOCK OCCUPANCY DETECTOR WITH SEMAPHORE OPERATION BOD1/DAP4-BR BLOCK OCCUPANCY DETECTOR WITH SEMAPHORE OPERATION BOD1/DAP4-BR This Block Occupancy Detector recognises the current drawn by moving trains within a block, and can operate a number of built-in programs

More information

CIS 192: Lecture 13 Scientific Computing and Unit Testing

CIS 192: Lecture 13 Scientific Computing and Unit Testing CIS 192: Lecture 13 Scientific Computing and Unit Testing Lili Dworkin University of Pennsylvania Scientific Computing I Python is really popular in the scientific and statistical computing world I Why?

More information

System Level Integration and Test Leveraging Software Unit Testing Techniques

System Level Integration and Test Leveraging Software Unit Testing Techniques System Level Integration and Test Leveraging Software Unit Testing Techniques Ryan J. Melton Ball Aerospace & Technologies Corp. Boulder, CO ABSTRACT Ever try to decipher or debug a huge automated test

More information

2 The first program: Little Crab

2 The first program: Little Crab 2 The first program: Little Crab topics: concepts: writing code: movement, turning, reacting to the screen edges source code, method call, parameter, sequence, if statement In the previous chapter, we

More information

Dhany Saputra. Summary. Experience. Doctoral Candidate in Bioinformatics dhany.saputra@gmail.com

Dhany Saputra. Summary. Experience. Doctoral Candidate in Bioinformatics dhany.saputra@gmail.com Dhany Saputra Doctoral Candidate in Bioinformatics dhany.saputra@gmail.com Summary I'm writing a PhD thesis at the Center for Biological Sequence Analysis, Technical University of Denmark. I have experiences

More information

Design by Contract beyond class modelling

Design by Contract beyond class modelling Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

More information

Fully Automated Static Analysis of Fedora Packages

Fully Automated Static Analysis of Fedora Packages Fully Automated Static Analysis of Fedora Packages Red Hat Kamil Dudka August 9th, 2014 Abstract There are static analysis tools (such as Clang or Cppcheck) that are able to find bugs in Fedora packages

More information

DATEX II User Support

DATEX II User Support DATEX II User Support Interactive Session Results www.easyway-its.eu Group 1 What is the best support system you ever experienced? Direct contact with responsable person, (not clear if there is a particulary

More information

Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science Python Programming: An Introduction to Computer Science Chapter 7 Decision Structures Python Programming, 1/e 1 Objectives To understand the programming pattern simple decision and its implementation using

More information

Numerical Analysis. Professor Donna Calhoun. Fall 2013 Math 465/565. Office : MG241A Office Hours : Wednesday 10:00-12:00 and 1:00-3:00

Numerical Analysis. Professor Donna Calhoun. Fall 2013 Math 465/565. Office : MG241A Office Hours : Wednesday 10:00-12:00 and 1:00-3:00 Numerical Analysis Professor Donna Calhoun Office : MG241A Office Hours : Wednesday 10:00-12:00 and 1:00-3:00 Fall 2013 Math 465/565 http://math.boisestate.edu/~calhoun/teaching/math565_fall2013 What is

More information

Automatic promotion and versioning with Oracle Data Integrator 12c

Automatic promotion and versioning with Oracle Data Integrator 12c Automatic promotion and versioning with Oracle Data Integrator 12c Jérôme FRANÇOISSE Rittman Mead United Kingdom Keywords: Oracle Data Integrator, ODI, Lifecycle, export, import, smart export, smart import,

More information

Applied Software Project Management

Applied Software Project Management Applied Software Project Management Introduction http://www.stellman-greene.com 1 Why do software projects fail? People begin programming before they understand the problem Everyone likes to feel that

More information

From Raw Data to. Actionable Insights with. MATLAB Analytics. Learn more. Develop predictive models. 1Access and explore data

From Raw Data to. Actionable Insights with. MATLAB Analytics. Learn more. Develop predictive models. 1Access and explore data 100 001 010 111 From Raw Data to 10011100 Actionable Insights with 00100111 MATLAB Analytics 01011100 11100001 1 Access and Explore Data For scientists the problem is not a lack of available but a deluge.

More information

Extreme Programming and Embedded Software Development

Extreme Programming and Embedded Software Development Extreme Programming and Embedded Software Development By James Grenning Every time I do a project, it seems we don t get the hardware until late in the project. This limits the progress the team can make.

More information

CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING

CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING Lecture Software Engineering CHAPTER 01 THE SCOPE OF SOFTWARE ENGINEERING Lecture Software Engineering Topics Introduction Historical Aspects Economic Aspects Requirements, Analysis, and Design Aspects

More information

RepoGuard Validation Framework for Version Control Systems

RepoGuard Validation Framework for Version Control Systems RepoGuard Validation Framework for Version Control Systems Remidi09 (2009-07-13, Limerick) Malte Legenhausen, Stefan Pielicke German Aerospace Center (DLR), Cologne http://www.dlr.de/sc Slide 1 Remidi09

More information

Sorting. Lists have a sort method Strings are sorted alphabetically, except... Uppercase is sorted before lowercase (yes, strange)

Sorting. Lists have a sort method Strings are sorted alphabetically, except... Uppercase is sorted before lowercase (yes, strange) Sorting and Modules Sorting Lists have a sort method Strings are sorted alphabetically, except... L1 = ["this", "is", "a", "list", "of", "words"] print L1 ['this', 'is', 'a', 'list', 'of', 'words'] L1.sort()

More information

Lab 2.1 Tracking Down the Bugs

Lab 2.1 Tracking Down the Bugs Lab 2.1 Tracking Down the Bugs Chapter 7 (To Err is Human ) discusses strategies for debugging finding and fixing problems with IT systems. In this lab, we focus on the early stages of debugging, where

More information

Should Business Move To The Cloud

Should Business Move To The Cloud MIS 220 Class Jiangpeng Li, Roy Prof. Wang Case Study 2 Should Business Move To The Cloud 1. What business benefits do cloud computing services provide? What problems do they solve? Cloud computing is

More information

Hoare-Style Monitors for Java

Hoare-Style Monitors for Java Hoare-Style Monitors for Java Theodore S Norvell Electrical and Computer Engineering Memorial University February 17, 2006 1 Hoare-Style Monitors Coordinating the interactions of two or more threads can

More information

Report on the Examination

Report on the Examination Version 1.0 0712 General Certificate of Education (A-level) June Computing COMP1 (Specification 2510) Unit 1: Problem Solving, Programming, Data Representation and Practical Exercise Report on the Examination

More information

3 Extending the Refinement Calculus

3 Extending the Refinement Calculus Building BSP Programs Using the Refinement Calculus D.B. Skillicorn? Department of Computing and Information Science Queen s University, Kingston, Canada skill@qucis.queensu.ca Abstract. We extend the

More information

Python as a Tool for Squeezing More Learning into Mathematical Physics: Powerful, Versatile, and Free. Geoffrey Poore Assistant Professor of Physics

Python as a Tool for Squeezing More Learning into Mathematical Physics: Powerful, Versatile, and Free. Geoffrey Poore Assistant Professor of Physics Python as a Tool for Squeezing More Learning into Mathematical Physics: Powerful, Versatile, and Free Geoffrey Poore Assistant Professor of Physics Python as a Tool for Squeezing More Learning into Mathematical

More information

Adapting C++ Exception Handling to an Extended COM Exception Model

Adapting C++ Exception Handling to an Extended COM Exception Model Adapting C++ Exception Handling to an Extended COM Exception Model Bjørn Egil Hansen DNV AS, DT 990 Risk Management Software Palace House, 3 Cathedral Street, London SE1 9DE, UK Bjorn.Egil.Hansen@dnv.com

More information

Show me the tests! Writing Automated Tests for Drupal

Show me the tests! Writing Automated Tests for Drupal DEV TRACK LEE ROWLANDS FEBRUARY 8 2013 Show me the tests! Writing Automated Tests for Drupal Me Lee Rowlands - @larowlan Senior Drupal Developer with PreviousNext Working with Drupal 4+ years Maintainer

More information

BuildBot. S.Cozzini/A.Messina/G.Giuliani. And Continuous Integration. RegCM4 experiences. Warning: Some slides/ideas. <willie@issdu.com.

BuildBot. S.Cozzini/A.Messina/G.Giuliani. And Continuous Integration. RegCM4 experiences. Warning: Some slides/ideas. <willie@issdu.com. BuildBot And Continuous Integration RegCM4 experiences S.Cozzini/A.Messina/G.Giuliani Warning: Some slides/ideas stolen by Willie Agenda How do we use BuildBot here? What is BuildBot?

More information

Secure Programming with Static Analysis. Jacob West jacob@fortify.com

Secure Programming with Static Analysis. Jacob West jacob@fortify.com Secure Programming with Static Analysis Jacob West jacob@fortify.com Software Systems that are Ubiquitous Connected Dependable Complexity U Unforeseen Consequences Software Security Today The line between

More information

Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask

Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates

More information

Software Configuration Management

Software Configuration Management Software Configuration Management 1 Software Configuration Management Four aspects Version control Automated build Change control Release Supported by tools Requires expertise and oversight More important

More information

I don t intend to cover Python installation, please visit the Python web site for details.

I don t intend to cover Python installation, please visit the Python web site for details. Python Related Information I don t intend to cover Python installation, please visit the Python web site for details. http://www.python.org/ Before you start to use the Python Interface plugin make sure

More information

CS1102: Adding Error Checking to Macros

CS1102: Adding Error Checking to Macros CS1102: Adding Error Checking to Macros Kathi Fisler, WPI October 6, 2008 1 Typos in State Machines The point of creating macros for state machines is to hide language details from the programmer. Ideally,

More information

Introduction to Python

Introduction to Python 1 Daniel Lucio March 2016 Creator of Python https://en.wikipedia.org/wiki/guido_van_rossum 2 Python Timeline Implementation Started v1.0 v1.6 v2.1 v2.3 v2.5 v3.0 v3.1 v3.2 v3.4 1980 1991 1997 2004 2010

More information

1. A is a tax system which has higher tax rates on people with lower incomes.

1. A is a tax system which has higher tax rates on people with lower incomes. Homework 15 1. A is a tax system which has higher tax rates on people with lower incomes. A. regressive tax B. progressive tax C. flat tax D. a value added tax 2. The is calculated by taking the total

More information

Project Management Tools

Project Management Tools Project Management Tools Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar SAPM Spring 2006: Tools 1 Automating Drudgery Most of the techniques in this course can benefit from

More information

Generate Android App

Generate Android App Generate Android App This paper describes how someone with no programming experience can generate an Android application in minutes without writing any code. The application, also called an APK file can

More information

Robustness Testing of the Microsoft Win32 API http://ballista.org

Robustness Testing of the Microsoft Win32 API http://ballista.org Robustness Testing of the Microsoft Win32 API http://ballista.org Charles P. Shelton cshelton@cmu.edu Philip Koopman koopman@cmu.edu - (412) 268-5225 - http://www.ices.cmu.edu/koopman Kobey DeVale,QVWLWXWH

More information

Experiences with Online Programming Examinations

Experiences with Online Programming Examinations Experiences with Online Programming Examinations Monica Farrow and Peter King School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh EH14 4AS Abstract An online programming examination

More information

The way to good code

The way to good code Refactoring from handcraft to machines August 14, 2007 And not about silly star wars toys! Agenda 1 Introduction 2 Bad Code 3 Refactoring 4 Thanks and Questions Who we are Mirko Stocker Leo Büttiker Studied

More information

How To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason)

How To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason) Praspel: A Specification Language for Contract-Driven Testing in PHP Ivan Enderlin Frédéric Dadeau Alain Giorgetti Abdallah Ben Othman October 27th, 2011 Meetings: LTP MTVV Ivan Enderlin, Frédéric Dadeau,

More information

Chapter 8 Software Testing

Chapter 8 Software Testing Chapter 8 Software Testing Summary 1 Topics covered Development testing Test-driven development Release testing User testing 2 Program testing Testing is intended to show that a program does what it is

More information

Introduction to Scientific Computing

Introduction to Scientific Computing Introduction to Scientific Computing what you need to learn now to decide what you need to learn next Bob Dowling University Computing Service rjd4@cam.ac.uk 1. Why this course exists 2. Common concepts

More information

CS 106 Introduction to Computer Science I

CS 106 Introduction to Computer Science I CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper

More information

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023 Operating Systems Autumn 2013 Outline 1 2 Types of 2.4, SGG The OS Kernel The kernel is the central component of an OS It has complete control over everything that occurs in the system Kernel overview

More information

How to Design and Create Your Own Custom Ext Rep

How to Design and Create Your Own Custom Ext Rep Combinatorial Block Designs 2009-04-15 Outline Project Intro External Representation Design Database System Deployment System Overview Conclusions 1. Since the project is a specific application in Combinatorial

More information

Writing in the Computer Science Major

Writing in the Computer Science Major Writing in the Computer Science Major Table of Contents Introduction... 2 Statement of Purpose... 2 Revision History... 2 Writing Tasks in Computer Science... 3 Documentation... 3 Planning to Program:

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,

More information

Using Excel for Statistical Analysis

Using Excel for Statistical Analysis Using Excel for Statistical Analysis You don t have to have a fancy pants statistics package to do many statistical functions. Excel can perform several statistical tests and analyses. First, make sure

More information

Test Plan Airline Reservation System

Test Plan Airline Reservation System Airline Reservation System Submitted in partial fulfillment of the requirements of the degree of Master of Software Engineering Kaavya Kuppa CIS 895 MSE Project Department of Computing and Information

More information

Survey of Unit-Testing Frameworks. by John Szakmeister and Tim Woods

Survey of Unit-Testing Frameworks. by John Szakmeister and Tim Woods Survey of Unit-Testing Frameworks by John Szakmeister and Tim Woods Our Background Using Python for 7 years Unit-testing fanatics for 5 years Agenda Why unit test? Talk about 3 frameworks: unittest nose

More information

Part II. Managing Issues

Part II. Managing Issues Managing Issues Part II. Managing Issues If projects are the most important part of Redmine, then issues are the second most important. Projects are where you describe what to do, bring everyone together,

More information

Specification and Analysis of Contracts Lecture 1 Introduction

Specification and Analysis of Contracts Lecture 1 Introduction Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.

More information

Managing XML Documents Versions and Upgrades with XSLT

Managing XML Documents Versions and Upgrades with XSLT Managing XML Documents Versions and Upgrades with XSLT Vadim Zaliva, lord@crocodile.org 2001 Abstract This paper describes mechanism for versioning and upgrding XML configuration files used in FWBuilder

More information

CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions

CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly

More information

Chapter 14. Programming and Languages. McGraw-Hill/Irwin. Copyright 2008 by The McGraw-Hill Companies, Inc. All rights reserved.

Chapter 14. Programming and Languages. McGraw-Hill/Irwin. Copyright 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 14 Programming and Languages McGraw-Hill/Irwin Copyright 2008 by The McGraw-Hill Companies, Inc. All rights reserved. Competencies (Page 1 of 2) Describe the six steps of programming Discuss design

More information

Wrestling with Python Unit testing. Warren Viant

Wrestling with Python Unit testing. Warren Viant Wrestling with Python Unit testing Warren Viant Assessment criteria OCR - 2015 Programming Techniques (12 marks) There is an attempt to solve all of the tasks using most of the techniques listed. The techniques

More information

<Insert Picture Here> What's New in NetBeans IDE 7.2

<Insert Picture Here> What's New in NetBeans IDE 7.2 Slide 1 What's New in NetBeans IDE 7.2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated

More information