Announcement. SOFT1902 Software Development Tools. Today s Lecture. Version Control. Multiple iterations. What is Version Control
|
|
- Ronald Webb
- 8 years ago
- Views:
Transcription
1 SOFT1902 Software Development Tools Announcement SOFT1902 Quiz 1 in lecture NEXT WEEK School of Information Technologies 1 2 Today s Lecture Yes: we have evolved to the point of using tools Version Control Automatic Documentation Managing Testing Debugging IDEs Version Control If C gives you enough rope to hang yourself with, think of Subversion as a sort of rope storage facility Brian W. Fitzpatrick, one of the authors of Subversion; Multiple iterations What is Version Control Software emerges in many stages and iterations. This might be from agile development, discovery of bugs, extensions, and keeping up with changing environments. Version control is one of the key tools of group software development: it enables developers to keep track of releases, share code among themselves, and archive code and any other text files (e.g. documentation, LaTeX...) It is very very useful
2 Flavours of version control Models of version control Microsfot Word track changes Keeping multiple copies CVS (Concurrent Version System) Subversion (not an acronym). Visual SourceSafe...and others lock-modify-unlock copy-modify-merge 7 8 File system File sharing In a simple file system where anyone reads and writes it is not possible to keep track of versions, despite the best of intentions. A situation to avoid! With this model, developers can undo each other s work Lock-Modify-Unlock Copy-Modify-Merge 1 Developers lock files, make changes, then commit them. This can be slow, unnecessary (if both developers are working on different parts of the file) and misleading: dependencies can be violated (if one person uses a file someone else is changing). Two developers check out the same file & make changes. Once one commits the changes, the other is out of date
3 Copy-Modify-Merge 2 Consistency through VC The versions are compared and merged by a developer; Then it is published for all. Some installations of version control can force coding styles JStyle is an automated tool for following conventions such as (but costs money) unit testing but you shouldn t need these. Should you? CVS or SVN? Further benefits CVS = Concurrent Version System SVN = Subversion Both have advantages but SVN is preferred (by me): plain text archives (as of version 1.2) can move folders/directories slightly nicer more esoteric features like branching (not detailed here). Version Control also enables roll-backs to earlier versions when something really goes wrong! You can use it for your text files too! handy places to look CVS: homepage manual Automatic Documentation SVN: Javadoc and Doxygen homepage book
4 When you remember about documentation What to automatically document Automatic documentation is very useful for saving time. You put comments in your code; you should use them. /** Javadoc comments look like this. (And so do Doxygen comments.) */ /// one-liner comments can be handy Not everything! But anything that is needed by a client (programmer) who is calling the public methods in your explain the meaning of arguments and return conditions are essential pieces of knowledge, not just for collaborative projects Commenting practise Commenting practise Comments should clarify and explain. Scalability needs to be calculated for method calls: it's easier when they're all documented. It is not true that good code should need no comments! It is not true that everything should be commented. int putpowers(double x, int n, double[] result) /** Put positive powers of the input number n into x is positive or zero, n is positive, result is of length result[i] contains x^(i+1), for i = 0..(n-1). */ { double current = x; // assign current to value x for (int i = 0; i < n; i++) { result[i] = current; current = current * x; // now current = x^(i+1) Automatic documentation example: Powers.java Using Javadoc import java.util.*; public class Powers { public Powers() { int putpowers(double x, int n, double[] result) /** Put positive powers of the input number n into x is positive or zero, n is positive, result is of length result[i] contains x^(i+1), for i = 0..(n-1). */ { double current = x; // assign current to value x for (int i = 0; i < n; i++) { result[i] = current; current = current * x; // now current = x^(i+1) 23 ~> emacs Powers.java ~> javadoc Powers.java Loading source file Powers.java... Constructing Javadoc information... Standard Doclet version 1.5.0_06 Building tree for all the packages and classes... Generating Powers.html... Generating package-frame.html... Generating package-summary.html... Generating package-tree.html... Generating constant-values.html... Building index for all the packages and classes... Generating overview-tree.html... Generating index-all.html... Generating deprecated-list.html... Building index for all classes... Generating allclasses-frame.html... Generating allclasses-noframe.html... Generating index.html... Generating help-doc.html... Generating stylesheet.css... ~> 24 4
5 hierarchy graphs Javadoc creates html pages describing your whole program, with all inheritance, methods, variables, and comments... This is a file hierarchy for some C++ code hierarchy graphs This is a class hierarchy for some C++ code Doxygen also handles pre- and post- conditions LaTeX Managing Testing because you can't prove the nonexistence of bugs Doxygen can produce LaTeX and rtf documents too
6 Contents Terminology Terminology: Black box, White box (e.g., unit testing), Test coverage Unit testing Assertion (v useful) Testing harness Test cases should be easy to re-use (Advanced Topic 10.1 in Big Java (2nd ed)) Numeric class example (pg 374) Oracles The test suite Regression testing Testing Tools: JUnit (free from built in to BlueJ and Eclipse) Black box testing: don't look inside the code akin to beta-release White box: look inside and use program structure includes Unit Testing (if you actually look inside!) Test coverage: the proportion of a program's code that has been tested Unit Testing Verifying the output A unit test is test of a single method or closely related group of methods. Unit tests typically have a wrapper called a "harness". When you write a method you may as well write your unit test at the same time. JUnit can help you here by providing a simple and convenient interface to your testing methods. How to test your method is working? Suppose you are solving an equation (for x): then just substitute the value of x into that equation and see if it's true: testing mysqrt(2.0), equation is x 2 = 2. x = = mysqrt fails the test Oracles Rounding error An alternative is to find an oracle: another method that works, which is more reliable (though may be slower). E.g., compare mysqrt(2.0) with Java built-in pow(2.0, 0.5) (= ). Oracles are not always easy to find! Rounding error can suggest spurious bugs: don't be too hasty claiming things are not equal! You can use approximation where appropriate. BigJava provides a Numeric class you may find useful
7 Numeric class Testing suite and regression public class Numeric { /** From Big Java pg 374 */ public static boolean approxequal(double x, double y) { final double EPSILON=1E-12; return Math.abs(x-y) <= EPSILON; Never throw anything away. When you create a (unit) test, keep it! Often when you fix something else, an old bug may creep back... You can accumulate a suite of tests. Re-running previous tests after changes is called regression testing Make it easy on yourself JUnit Tests need to be easily repeatable. Manual testing of many cases is slow and difficult to repeat. You can hard-code test cases in your testing classes, or read a set of test cases from an input file: java MyProgram < testdata.txt JUnit is free from and is built in to BlueJ and Eclipse. For each class you build, you also build a tester that extends TestCase from the junit.framework package. For each test case define a method beginning with test, like testsimpleinput JUnit example JUnit output import junit.framework.testcase; JUnit runs all the tests and returns a summary. public class RootApproximatorTest extends TestCase { public void testsimplecase() { double x = 4; RootApproximator a = new RootApproximator(x); double r = a.getroot(); asserttrue(numeric.approxequal(r, 2)); public testboundarycase() { // more testing here... // more test cases... source:
8 Contents Debugging you and your Mortein General advice: consider boundary (also called 'corner') cases Trace through problem areas Output messages Log messages: use Logger class Use a debugger! Eclipse, JSwat Basic tools Breakpoints, steps, inspection Flashy tricks: Conditional breaks Change variables on the fly Change code on the fly General Advice Tracing It is much easier to prove bugs exist than that they don't! It is in general not possible to write bug-free code (first time). One of commonest techniques you will use is tracing through your code. (Yes, there's a reason we teach you to trace code!) You can often find errors quickly this way but you need to pay close attention! Step through your code slowly and make sure every part is correct Judicious use of println Logger Another simple debugging method is printing out interim results and data. Put println("...") statements where you suspect there to be errors. Disadvantages: you have to take out the printlns later it slows down the program and can flood you with unnecessary verbiage. You can keep a log file with Logger.global.info("message");...which prints by default. Alternatively set Logger.global.setLevel(Level.OFF); at the beginning of main(). Don't forget to turn off logging prior to release!
9 assert assert Java provides an assert keyword: int putpowers(double x, int n, double[] result) /** Put positive powers of the input number n into x is positive or zero, n is positive, result is of length result[i] contains x^(i+1), for i = 0..(n-1). */ { assert x >= 0; // we expect x to be non-negative assert n >= 0; // n must not be negative either. double current = x; // assign current to value x for (int i = 0; i < n; i++) { result[i] = current; current = current * x; // now current = x^(i+1) The assert keyword will cause a runtime error if the following statement is false. assert is enabled with java -enableassertions MyProg java -ea MyProg otherwise the default is not to check assertions Debuggers Standard debugging features For bigger projects it's good to use a dedicated debugger. Some IDEs have debuggers built-in; there are other debugger-only applications. Debuggers give a broad view of your code and enable to you stop wherever you want. breakpoint: a position in code where execution will halt. You can continue on after inspecting the state of variables; step into: go into methods (the smallest step possible); step over: go to the next line, over method calls; step out: go back up the program stack (via the completion of the current method) Flashy debugging tricks conditional breakpoints: set a condition such that if the condition is met, execution pauses. watch points: watch a location in memory (such as for a particular variable) and stop if it changes. SLOW! change variables: change the value of a variable (dangerous!) Building Big Projects when vi(m) and emacs aren't enough
10 ant ant build file ant is the make of Java. This sentence makes sense. ant is a tool for the creation of big projects: create an XML description of the project with all dependencies <project name="myproject" default="dist" basedir="."> <description> simple example build file </description> <property name="src" location="src"/> <!-- set global properties for this build --> <property name="build" location="build"/> <property name="dist" location="dist"/> <target name="init"> <tstamp/> <!-- Create the time stamp --> <mkdir dir="${build"/> <!-- Create the build directory structure used by compile --> </target> <target name="compile" depends="init" description="compile the source " > <javac srcdir="${src" destdir="${build"/> <!-- Compile the java code from ${src into ${build --> </target> <target name="dist" depends="compile description="generate the distribution" > <mkdir dir="${dist/lib"/> <!-- Create the distribution directory --> <jar jarfile="${dist/lib/myproject-${dstamp.jar" basedir="${build"/> <!-- Put everything in ${build into the MyProject-${DSTAMP.jar file --> </target> <target name="clean description="clean up" > <delete dir="${build"/> <!-- Delete the ${build and ${dist directory trees --> <delete dir="${dist"/> </target> </project> define dependencies among logical components (compile depends on init); define targets to compile larger components (including the complete project) using ant BlueJ Once your build file is correct with all dependencies, type ant <target> e.g. ant clean ant compile...and sit back. Available from: Platforms: Windows, Mac OS X,.jar Features: free, simple to use, can and run bare methods BlueJ summary BlueJ was conceived at U. Syd, developed at Monash, and is now maintained from Kent and Deakin Universities. It is specifically for teaching Object Oriented Programming with Java to novices. It s not as sophisticated as Eclipse but is easy to use
11 Eclipse Eclipse is a powerful open-source development environment. Available from (current version 3.2) Platforms: just about everything Features very nice for Java! quite nice for C/C++ uses external compilers built-in debugger Javadoc refactoring plug-ins for Subversion, other languages Good for multiple large projects Summary Version Control Essential for collaborative projects; SVN is good, use it! Automatic Documentation Good for APIs Managing Testing Test, test, test.. Unit Testing (as in JUnit) Debugging takes up lots of time Big Projects: ant, BlueJ, Eclipse And for next week... Monday: GUIs Thursday: SOFT1902 Quiz! Yay! on all that stuff up to last week 65 11
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 informationEclipse 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 informationAutomatic 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 informationTest Driven Development
Test Driven Development Introduction Test Driven development (TDD) is a fairly recent (post 2000) design approach that originated from the Extreme Programming / Agile Methodologies design communities.
More informationUnit Testing & JUnit
Unit Testing & JUnit Lecture Outline Communicating your Classes Introduction to JUnit4 Selecting test cases UML Class Diagrams Rectangle height : int width : int resize(double,double) getarea(): int getperimeter():int
More informationA Practical Guide to Test Case Types in Java
Software Tests with Faktor-IPS Gunnar Tacke, Jan Ortmann (Dokumentversion 203) Overview In each software development project, software testing entails considerable expenses. Running regression tests manually
More informationUnit Testing. and. JUnit
Unit Testing and JUnit Problem area Code components must be tested! Confirms that your code works Components must be tested t in isolation A functional test can tell you that a bug exists in the implementation
More informationDesigning with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219
Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing
More informationCoding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd
Coding in Industry David Berry Director of Engineering Qualcomm Cambridge Ltd Agenda Potted history Basic Tools of the Trade Test Driven Development Code Quality Performance Open Source 2 Potted History
More informationSoftware Construction
Software Construction Documentation and Logging Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You can use Mock Objects
More informationContent. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
More informationTable of Contents. LESSON: The JUnit Test Tool...1. Subjects...2. Testing 123...3. What JUnit Provides...4. JUnit Concepts...5
Table of Contents LESSON: The JUnit Test Tool...1 Subjects...2 Testing 123...3 What JUnit Provides...4 JUnit Concepts...5 Example Testing a Queue Class...6 Example TestCase Class for Queue...7 Example
More informationagile, open source, distributed, and on-time inside the eclipse development process
agile, open source, distributed, and on-time inside the eclipse development process Erich Gamma IBM Distinguished Engineer Eclipse Project Management Committee erich_gamma@ch.ibm.com what is eclipse (www.eclipse.org)?
More informationApproach of Unit testing with the help of JUnit
Approach of Unit testing with the help of JUnit Satish Mishra mishra@informatik.hu-berlin.de About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality
More informationJava CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
More informationJavaScript Testing. Beginner's Guide. Liang Yuxian Eugene. Test and debug JavaScript the easy way PUBLISHING MUMBAI BIRMINGHAM. k I I.
JavaScript Testing Beginner's Guide Test and debug JavaScript the easy way Liang Yuxian Eugene [ rwtmm k I I PUBLISHING I BIRMINGHAM MUMBAI loading loading runtime Preface 1 Chapter 1: What is JavaScript
More informationTutorial 5: Developing Java applications
Tutorial 5: Developing Java applications p. 1 Tutorial 5: Developing Java applications Georgios Gousios gousiosg@aueb.gr Department of Management Science and Technology Athens University of Economics and
More informationOutline. 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 informationEffective unit testing with JUnit
Effective unit testing with JUnit written by Eric M. Burke burke_e@ociweb.com Copyright 2000, Eric M. Burke and All rights reserved last revised 12 Oct 2000 extreme Testing 1 What is extreme Programming
More informationExtreme 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 informationMonitoring, Tracing, Debugging (Under Construction)
Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.
More informationVersion control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.
Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a
More information1.00 Lecture 1. Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
1.00 Lecture 1 Course Overview Introduction to Java Reading for next time: Big Java: 1.1-1.7 Course information Course staff (TA, instructor names on syllabus/faq): 2 instructors, 4 TAs, 2 Lab TAs, graders
More informationCPSC 330 Software Engineering
CPSC 330 Software Engineering Lecture 4: Unit ing, JUnit, and Software Development Processes Today Unit ing and JUnit Software Development Processes (as time allows) Reading Assignment Lifecycle handout
More informationChapter 3. Input and output. 3.1 The System class
Chapter 3 Input and output The programs we ve looked at so far just display messages, which doesn t involve a lot of real computation. This chapter will show you how to read input from the keyboard, use
More informationModern Software Development Tools on OpenVMS
Modern Software Development Tools on OpenVMS Meg Watson Principal Software Engineer 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Topics
More informationSoftware 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 informationFirst 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 informationIntroduction 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 informationJUnit Howto. Blaine Simpson
JUnit Howto Blaine Simpson JUnit Howto Blaine Simpson Published $Date: 2005/09/19 15:15:02 $ Table of Contents 1. Introduction... 1 Available formats for this document... 1 Purpose... 1 Support... 2 What
More informationFail early, fail often, succeed sooner!
Fail early, fail often, succeed sooner! Contents Beyond testing Testing levels Testing techniques TDD = fail early Automate testing = fail often Tools for testing Acceptance tests Quality Erja Nikunen
More informationResearch 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 informationCSE 403. Performance Profiling Marty Stepp
CSE 403 Performance Profiling Marty Stepp 1 How can we optimize it? public static String makestring() { String str = ""; for (int n = 0; n < REPS; n++) { str += "more"; } return str; } 2 How can we optimize
More informationTesting, Debugging, and Verification
Testing, Debugging, and Verification Testing, Part II Moa Johansson 10 November 2014 TDV: Testing /GU 141110 1 / 42 Admin Make sure you are registered for the course. Otherwise your marks cannot be recorded.
More informationJenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012
Jenkins Continuous Build System Jesse Bowes CSCI-5828 Spring 2012 Executive summary Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development
More informationTest-Driven Development
Test-Driven Development An Introduction Mattias Ståhlberg mattias.stahlberg@enea.com Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.
More informationJava course - IAG0040. Unit testing & Agile Software Development
Java course - IAG0040 Unit testing & Agile Software Development 2011 Unit tests How to be confident that your code works? Why wait for somebody else to test your code? How to provide up-to-date examples
More informationSoftware documentation systems
Software documentation systems Basic introduction to various user-oriented and developer-oriented software documentation systems. Ondrej Holotnak Ondrej Jombik Software documentation systems: Basic introduction
More informationXP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories
XP & Scrum Beatrice Åkerblom beatrice@dsv.su.se extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or
More informationContinuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester
Continuous Integration and Bamboo Ryan Cutter CSCI 5828 2012 Spring Semester Agenda What is CI and how can it help me? Fundamentals of CI Fundamentals of Bamboo Configuration / Price Quick example Features
More informationSource Control Systems
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy
More informationSoftware Development Tools
Software Development Tools COMP220/COMP285 Sebastian Coope More on Automated Testing and Continuous Integration These slides are mainly based on Java Tools for Extreme Programming R.Hightower & N.Lesiecki.
More informationANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)
ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Who am I? Lo Chi Wing, Peter Lecture 1: Introduction to Android Development Email: Peter@Peter-Lo.com Facebook: http://www.facebook.com/peterlo111
More informationProfessional. SlickEdif. John Hurst IC..T...L. i 1 8 О 7» \ WILEY \ Wiley Publishing, Inc.
Professional SlickEdif John Hurst IC..T...L i 1 8 О 7» \ WILEY \! 2 0 0 7 " > Wiley Publishing, Inc. Acknowledgments Introduction xiii xxv Part I: Getting Started with SiickEdit Chapter 1: Introducing
More informationProgramming 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 informationDevelopment Environment and Tools for Java. Brian Hughes IBM
Development Environment and Tools for Java Brian Hughes IBM 1 Acknowledgements and Disclaimers Availability. References in this presentation to IBM products, programs, or services do not imply that they
More informationHypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
More informationtools that make every developer a quality expert
tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX
More informationSoftware Engineering for LabVIEW Applications. Elijah Kerry LabVIEW Product Manager
Software Engineering for LabVIEW Applications Elijah Kerry LabVIEW Product Manager 1 Ensuring Software Quality and Reliability Goals 1. Deliver a working product 2. Prove it works right 3. Mitigate risk
More informationJos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl
Domain Specific Languages for Business Users Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl Sheet 2 Background Experience Business DSLs Insurance Product Modeling (structure) Pattern
More informationVisual Basic Programming. An Introduction
Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides
More informationRails Cookbook. Rob Orsini. O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo
Rails Cookbook Rob Orsini O'REILLY 8 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword : ; xi Preface ; ;... xiii 1. Getting Started 1 1.1 Joining the Rails Community
More informationGDB Tutorial. A Walkthrough with Examples. CMSC 212 - Spring 2009. Last modified March 22, 2009. GDB Tutorial
A Walkthrough with Examples CMSC 212 - Spring 2009 Last modified March 22, 2009 What is gdb? GNU Debugger A debugger for several languages, including C and C++ It allows you to inspect what the program
More informationBeginning POJOs. From Novice to Professional. Brian Sam-Bodden
Beginning POJOs From Novice to Professional Brian Sam-Bodden Contents About the Author Acknowledgments Introduction.XIII xv XVII CHAPTER1 Introduction The Java EE Market Case Study: The TechConf Website...
More informationJUnit. Introduction to Unit Testing in Java
JUnit Introduction to Unit Testing in Java Testing, 1 2 3 4, Testing What Does a Unit Test Test? The term unit predates the O-O era. Unit natural abstraction unit of an O-O system: class or its instantiated
More informationContinuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.
1 Continuous Integration with Jenkins Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.se Faculty of Engineering, Lund Univeristy (LTH) March 5, 2013 Abstract
More informationSome Scanner Class Methods
Keyboard Input Scanner, Documentation, Style Java 5.0 has reasonable facilities for handling keyboard input. These facilities are provided by the Scanner class in the java.util package. A package is a
More informationBest Practices For PL/SQL Development in Oracle Application Express
Oracle PL/SQL and APEX Best Practices For PL/SQL Development in Oracle Application Express Steven Feuerstein steven@stevenfeuerstein.com PL/SQL Evangelist Quest Software Resources for PL/SQL Developers
More informationSOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
More informationVersion Control with Subversion
Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or
More informationLab work Software Testing
Lab work Software Testing 1 Introduction 1.1 Objectives The objective of the lab work of the Software Testing course is to help you learn how you can apply the various testing techniques and test design
More informationCS 451 Software Engineering Winter 2009
CS 451 Software Engineering Winter 2009 Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Testing Process Testing Testing only reveals the presence of defects Does not identify
More informationCreating a Free, Dependable Software Engineering Environment for Building Java Applications
Creating a Free, Dependable Software Engineering Environment for Building Java Applications Marcus Bittman 814-332-3629 bittmam@allegheny.edu Robert Roos 814-332-2883 rroos@allegheny.edu Gregory M. Kapfhammer
More informationCapabilities of a Java Test Execution Framework by Erick Griffin
Capabilities of a Java Test Execution Framework by Erick Griffin Here we discuss key properties and capabilities of a Java Test Execution Framework for writing and executing discrete Java tests for testing
More informationDocumentation and Project Organization
Documentation and Project Organization Software Engineering Workshop, December 5-6, 2005 Jan Beutel ETH Zürich, Institut TIK December 5, 2005 Overview Project Organization Specification Bug tracking/milestones
More informationDatabase Migration Plugin - Reference Documentation
Grails Database Migration Plugin Database Migration Plugin - Reference Documentation Authors: Burt Beckwith Version: 1.4.0 Table of Contents 1 Introduction to the Database Migration Plugin 1.1 History
More informationCISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011
CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion
More informationTwo Best Practices for Scientific Computing
Two Best Practices for Scientific Computing Version Control Systems & Automated Code Testing David Love Software Interest Group University of Arizona February 18, 2013 How This Talk Happened Applied alumnus,
More informationIntroduction to Automated Testing
Introduction to Automated Testing What is Software testing? Examination of a software unit, several integrated software units or an entire software package by running it. execution based on test cases
More informationContinuous Integration. CSC 440: Software Engineering Slide #1
Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge
More informationGLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS. 2015 Software AG. All rights reserved. For internal use only
GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS CONSULTING TOOLS VALUE CREATING ADD-ONS REDUCE manual effort time effort risk 6 READY-TO- USE TOOLS MORE COMING SOON SIMPLE PRICING & INSTALLATION INCREASE
More informationTesting Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic
Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic The challenge When building distributed, large-scale applications, quality assurance (QA) gets increasingly
More informationTest Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.
Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on
More informationFundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
More informationRevision control systems (RCS) and
Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer
More informationWhat Is Specific in Load Testing?
What Is Specific in Load Testing? Testing of multi-user applications under realistic and stress loads is really the only way to ensure appropriate performance and reliability in production. Load testing
More informationDebugging Java Applications
Debugging Java Applications Table of Contents Starting a Debugging Session...2 Debugger Windows...4 Attaching the Debugger to a Running Application...5 Starting the Debugger Outside of the Project's Main
More informationVersion Control Systems (Part 2)
i i Systems and Internet Infrastructure Security Institute for Networking and Security Research Department of Computer Science and Engineering Pennsylvania State University, University Park, PA Version
More informationIntegrated Error-Detection Techniques: Find More Bugs in Java Applications
Integrated Error-Detection Techniques: Find More Bugs in Java Applications Software verification techniques such as pattern-based static code analysis, runtime error detection, unit testing, and flow analysis
More informationSoftware Quality Exercise 2
Software Quality Exercise 2 Testing and Debugging 1 Information 1.1 Dates Release: 12.03.2012 12.15pm Deadline: 19.03.2012 12.15pm Discussion: 26.03.2012 1.2 Formalities Please submit your solution as
More informationUnit Testing and JUnit
Unit Testing and JUnit Testing Objectives Tests intended to find errors Errors should be found quickly Good test cases have high p for finding a yet undiscovered error Successful tests cause program failure,
More informationPlugin JUnit. Contents. Mikaël Marche. November 18, 2005
Plugin JUnit Mikaël Marche November 18, 2005 JUnit is a Java API enabling to describe unit tests for a Java application. The JUnit plugin inside Salomé-TMF enables one to execute automatically JUnit tests
More informationNo no-argument constructor. No default constructor found
Every software developer deals with bugs. The really tough bugs aren t detected by the compiler. Nasty bugs manifest themselves only when executed at runtime. Here is a list of the top ten difficult and
More informationThe ROI of Test Automation
The ROI of Test Automation by Michael Kelly www.michaeldkelly.com Introduction With the exception of my first project team out of college, in every project team since, I ve had to explain either what automated
More informationJava Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo
Java Power Tools John Ferguson Smart ULB Darmstadt 1 PI O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword Preface Introduction xvii xix xxxiii Parti. Build
More informationLab 0 (Setting up your Development Environment) Week 1
ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself
More informationBuild management & Continuous integration. with Maven & Hudson
Build management & Continuous integration with Maven & Hudson About me Tim te Beek tim.te.beek@nbic.nl Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository
More informationRUnit - A Unit Test Framework for R
RUnit - A Unit Test Framework for R Thomas König, Klaus Jünemann, and Matthias Burger Epigenomics AG November 5, 2015 Contents 1 Introduction 2 2 The RUnit package 4 2.1 Test case execution........................
More informationVisual Logic Instructions and Assignments
Visual Logic Instructions and Assignments Visual Logic can be installed from the CD that accompanies our textbook. It is a nifty tool for creating program flowcharts, but that is only half of the story.
More informationCSE 308. Coding Conventions. Reference
CSE 308 Coding Conventions Reference Java Coding Conventions googlestyleguide.googlecode.com/svn/trunk/javaguide.html Java Naming Conventions www.ibm.com/developerworks/library/ws-tipnamingconv.html 2
More information[PRAKTISCHE ASPEKTE DER INFORMATIK WS 13/14]
2013/14 Institut für Computergraphik, TU Braunschweig Pablo Bauszat [PRAKTISCHE ASPEKTE DER INFORMATIK WS 13/14] All elemental steps that will get you started for your new life as a computer science programmer.
More information<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 informationAdvanced Software Testing
Johan Seland Advanced Software Testing Geilo Winter School 2013 1 Solution Example for the Bowling Game Kata Solution is in the final branch on Github git clone git://github.com/johanseland/bowlinggamekatapy.git
More informationTESTING WITH JUNIT. Lab 3 : Testing
TESTING WITH JUNIT Lab 3 : Testing Overview Testing with JUnit JUnit Basics Sample Test Case How To Write a Test Case Running Tests with JUnit JUnit plug-in for NetBeans Running Tests in NetBeans Testing
More informationOutlook Today. Microsoft Outlook a different way to look at E-MailE. By Microsoft.com
Outlook Today Microsoft Outlook a different way to look at E-MailE By Microsoft.com What to do, What to do How many times have you received a message from your system administrator telling you that you're
More informationTeam Name : PRX Team Members : Liang Yu, Parvathy Unnikrishnan Nair, Reto Kleeb, Xinyi Wang
Test Design Document Authors Team Name : PRX Team Members : Liang Yu, Parvathy Unnikrishnan Nair, Reto Kleeb, Xinyi Wang Purpose of this Document This document explains the general idea of the continuous
More informationCSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
More informationThe Benefits of Modular Programming
CHAPTER TWO The Benefits of Modular Programming Copyright Sun Microsystems, 2007 2.1 Distributed Development Nobody writes software entirely in-house anymore. Outside the world of embedded systems, almost
More informationWeek G Versioning with svn
Week G Versioning with svn What is Versioning? Naïve vs. smart approaches Subversion (svn) workflow Basic svn commands http://subversion.tigris.org/ Assignments: Check in your proposals Week G Versioning
More informationUnit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects
TORRY HARRIS BUSINESS SOLUTIONS Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects Ganapathi Nanjappa 4/28/2010 2010 Torry Harris Business Solutions. All rights reserved Page
More information