Unit testing with examples in C++

Size: px
Start display at page:

Download "Unit testing with examples in C++"

Transcription

1 Unit testing with examples in C++ icer Workshop 02/19/2015 Yongjun Choi Research Specialist, Institute for Cyber- Enabled Research Download the slides:

2 Agenda Test-driven development Unit testing and frameworks Unit testing in C++ & Boost.Test

3 How this workshop works We are going to cover some basics. A few of hands on examples Exercises are denoted by the following icon in this presents:

4 Test-driven development (TDD) TDD is a software development process which relies on the repetition of a very short development cycle 1. Add a failing test case that defines a desired improvement or new function 2. Run all tests and see if the new one fails 3. Write some code to pass the test 4. Run tests 5. Refactor code

5 Test-driven development (TDD) Let s assume you want to develop a software module which calculates defint(f(x), a, b) You need to know if your new module works correctly. So, before you start coding, a test case is prepared. eg: defint(f(x), a, b) == 1/2 Now you develop a module to pass this test

6 TDD workflow

7 Software testing Many different forms of tests: unit tests: integration tests: to test if Individual units are combined and functioned as a group. regression tests: to uncover new software bugs in existing functional performance tests: to determine how a system performs in terms of responsiveness and stability under a particular workload.

8 Unit testing Unit testing is a method by which individual units of source code are tested to determine if they are correctly working. A unit is the smallest testable part of an application. an individual function or procedure

9 Benefits of unit testing Facilitate changes: unit tests allow programmers to refactor code at later date, and be sure that code still works correctly; Simplify integration: unit tests may reduce uncertainty in the units, and can be used in a bottom-up testing style approach. Living documentation for the system: easy to gain a basic understanding of implemented API

10 How to organize tests Each test case should test only one thing A test case should be short Test should run fast, so it will possible to run it very often Each test should work independent of other test Tests should NOT be dependent on the order of their execution

11 Test methods: man in the loop How should a test program report errors? Displaying an error message would be one possible way. if( something_bad_detected ) std::cout << Something bad has been detected << std::endl; requires inspection of the program s output after each run to determine if an error exists. Human inspection of output message is time consuming and unreliable. Unit testing frameworks are designed to automate those tasks.

12 Test methods: EXIT_SUCCESS/EXIT_FAILURE #include <my_class.hpp> int main( int, char* [] ) { my_class test_object( "qwerty" ); return test_object.is_valid()? EXIT_SUCCESS : EXIT_FAILURE; There are several issues with the test above You need to convert is_valid result in proper result code If exception happens in test_object when is_valid invocation, the program will crash. You won t see any output, if you run it manually.

13 Test methods: Unit testing frameworks The Unit Test Framework solves all these issues. To integrate it the above program needs to be changed to: #include <my_class.hpp> #define BOOST_TEST_MODULE MyTest #include <boost/test/unit_test.hpp> BOOST_AUTO_TEST_CASE( my_test ) { my_class test_object( "qwerty" ); BOOST_CHECK( test_object.is_valid() );

14 Test methods: Unit testing frameworks To simplify development of unit tests, unit test frameworks are usually used. Almost any programming language has several unit testing frameworks.

15 Unit testing frameworks in C++ There are many unit testing frameworks for C++ Boost.Test, Google C++ Testing Framework, etc, etc, etc! Boost.Test Suitable for novice and advanced users Allows organization of test cases into test suites Test cases can be registered automatically and/or manually Fixtures (initialization and cleanup of resources) Large number of assertion/checkers exceptions, equal, not equal, greater, less, floating point numbers comparison etc.

16 Preparation connect to the MSU hpc open a terminal and do 1. ssh [email protected] 2. ssh dev-intel10 3. module load powertools 4. getexample boostunittests 5. cd boostunittests Now you are ready to run boost unit test samples!

17 simpleunittest1.cpp #define BOOST_TEST_MODULE Simple testcase // name of this test #include <boost/test/unit_test.hpp> //header file for boost.test // a module that we want to develop int addtwonumbers(int i, int j ) { return 0; //Here is a test BOOST_AUTO_TEST_CASE(addition) { BOOST_CHECK(addTwoNumbers(2, 3) == 5);

18 simpleunittest1 Now let s build and run it You should be ~/boostunittests. Please do 1. mkdir build 2. cd build 3. cmake../ 4. make 5../simpleUnitTest1 It will give you an error message because we did not implement the module yet.

19 simpleunittest1 #define BOOST_TEST_MODULE Simple testcases #include <boost/test/unit_test.hpp> int add(int i, int j ) {return 0; BOOST_AUTO_TEST_CASE(addition) { BOOST_CHECK(add(2, 3) == 5); A failed BOOST_CHECK will not exit the test case immediately - the problem is recorded and the case continues. To immediately fail a test, BOOST_REQUIRE is used.

20 simpleunittest2.cpp #define BOOST_TEST_MODULE Simple testcase //declares name of this test #include <boost/test/unit_test.hpp> // header file for boost.test // a module that we want to develop int addtwonumbers(int i, int j ) { return i - j; // need to be fixed to pass the test //Here is a test BOOST_AUTO_TEST_CASE(addition) { BOOST_CHECK(addTwoNumbers(2, 3) == 5); BOOST_CHECK_MESSAGE(addTwoNumbers(2, 3)== 5, "<addtwonumbers> has some problem!"); BOOST_CHECK_EQUAL(addTwoNumbers(2, 3), 5); BOOST_REQUIRE(addTwoNumbers(2, 3) == 5); BOOST_WARN(addTwoNumbers(2, 3) == 5); //will never reach this check

21 simpleunittest2 Run and verify the difference between assertions. Fix the bug, and test it again.

22 Assertions BOOST_AUTO_TEST_CASE(addition) { BOOST_CHECK(addTwoNumbers(2, 3) == 5); BOOST_CHECK_MESSAGE(addTwoNumbers(2, 3)== 5, "<addtwonumbers> has some problem!"); BOOST_CHECK_EQUAL(addTwoNumbers(2, 3), 5); BOOST_REQUIRE(addTwoNumbers(2, 3) == 5); BOOST_WARN(addTwoNumbers(2, 3) == 5); //will never reach this check BOOST_WARN is not checked here, because the test has failed with BOOST_CHECK_REQUIRE

23 Testing tools/checkers WARN produces warning message check failed, but error counter does not increase and test case continues CHECK reports error and increases error counter when check fails, but test case continues REQUIRE similar to CHECK, but it is not used to report fatal errors.

24 Testing tools/checkers expression examples BOOST_WARN( sizeof(int) ==sizeof(short)); BOOST_CHECK(i == 1); BOOST_REQUIRE (i > 5); BOOST_REQUIRE( h, s[0]); If the check fails, Boost.Test will report the line in the source code where this occurred and what condition was specified. See the example

25 More Assertions CHECK, REQUIRE, and WARN (with log_level=all ) BOOST_CHECK_MESSAGE BOOST_CHECK_EQUAL The full list of available assertions can be found

26 simpleunittest3.cpp #define BOOST_TEST_MODULE Suites #include <boost/test/unit_test.hpp> int add(int i, int j) { return i + j; BOOST_AUTO_TEST_SUITE(Maths) BOOST_AUTO_TEST_CASE(addition) { BOOST_CHECK(add(2, 2) == 4); BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(Physics) BOOST_AUTO_TEST_CASE(specialRelativity) { int e = 32; int m = 2; int c = 4; BOOST_CHECK(e == m * c * c); BOOST_AUTO_TEST_SUITE_END() If you have many test cases in one program, then their maintenance could be hard. test suite is available In a normal run, you won t see that the tests have been categorized. With log_level=test_suite or log_level=all, you will.

27 Fixtures Fixtures are special objects that are used to implement setup and cleanup of data/resources required to execution of unit tests. Separation of code between fixtures and actual test code, simplifies the unit test code, and allows the same initialization code to be used for different test cases and test suites.

28 Fixtures example struct MyFixture { int* i; MyFixture() i = new int; *i = 0; ~MyFixture() {delete[] i; ; and you can use it in the following way: BOOST_AUTO_TEST_CASE (test_case1) { MyFixture f; // do something with f.i

29 Boost.Test s fixture macro #define BOOST_TEST_MODULE fixture example #include <boost/test/unit_test.hpp> struct F { int* i; F(): i(1) { ~F() { ; and you can use it following way: BOOST_FIXTURE_TEST_CASE(simple_test, F) { BOOST_CHECK_EQUAL*i, 1);

30 simpleunittest4.cpp #define BOOST_TEST_MODULE Fixtures #include <boost/test/unit_test.hpp> struct Massive { int m; Massive() : m(3) { BOOST_TEST_MESSAGE("setup mass"); ~Massive() { BOOST_TEST_MESSAGE("teardown mass"); ; The Massive fixture was created, it holds one variable m, and it is directly accessible in our test case. BOOST_FIXTURE_TEST_SUITE(Physics, Massive) BOOST_AUTO_TEST_CASE(specialTheory) { int e = 48; int c = 4; BOOST_CHECK(e == m * c * c); BOOST_AUTO_TEST_CASE(newton2) { int f = 10; int a = 5; BOOST_CHECK(f == m * a); BOOST_AUTO_TEST_SUITE_END()

31

Introduction to C Unit Testing (CUnit) Brian Nielsen Arne Skou

Introduction to C Unit Testing (CUnit) Brian Nielsen Arne Skou Introduction to C Unit Testing (CUnit) Brian Nielsen Arne Skou {bnielsen ask}@cs.auc.dk Unit Testing Code that isn t tested doesn t work Code that isn t regression tested suffers from code rot (breaks

More information

Regression Verification: Status Report

Regression Verification: Status Report Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software

More information

Approach of Unit testing with the help of JUnit

Approach of Unit testing with the help of JUnit Approach of Unit testing with the help of JUnit Satish Mishra [email protected] About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality

More information

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Unit 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

This presentation introduces you to the new call home feature in IBM PureApplication System V2.0.

This presentation introduces you to the new call home feature in IBM PureApplication System V2.0. This presentation introduces you to the new call home feature in IBM PureApplication System V2.0. Page 1 of 19 This slide shows the agenda, which covers the process flow, user interface, commandline interface

More information

Test-Driven Development

Test-Driven Development Test-Driven Development An Introduction Mattias Ståhlberg [email protected] Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.

More information

Agile.NET Development Test-driven Development using NUnit

Agile.NET Development Test-driven Development using NUnit Agile.NET Development Test-driven Development using NUnit Jason Gorman Test-driven Development Drive the design and construction of your code on unit test at a time Write a test that the system currently

More information

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

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective Iteration Advantages: bringing testing into the development life

More information

Java course - IAG0040. Unit testing & Agile Software Development

Java 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 information

URI and UUID. Identifying things on the Web.

URI and UUID. Identifying things on the Web. URI and UUID Identifying things on the Web. Overview > Uniform Resource Identifiers (URIs) > URIStreamOpener > Universally Unique Identifiers (UUIDs) Uniform Resource Identifiers > Uniform Resource Identifiers

More information

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction Software Testing Rajat Kumar Bal Introduction In India itself, Software industry growth has been phenomenal. IT field has enormously grown in the past 50 years. IT industry in India is expected to touch

More information

E-Blocks Easy Internet Bundle

E-Blocks Easy Internet Bundle Page 1 Cover Page Page 2 Flowcode Installing Flowcode Instruction for installing Flowcode can be found inside the installation booklet located inside the Flowcode DVD case. Before starting with the course

More information

Genesis Touch Training Module for Care Providers Video Conferencing: Genesis Touch One-Touch Video

Genesis Touch Training Module for Care Providers Video Conferencing: Genesis Touch One-Touch Video Genesis Touch Training Module for Care Providers Video Conferencing: Genesis Touch One-Touch Video CP310.02 4/23/2013 Genesis Touch One Touch Video One Touch video simplifies video conferencing between

More information

ICAgile Learning Roadmap Agile Testing Track

ICAgile Learning Roadmap Agile Testing Track International Consortium for Agile ICAgile Learning Roadmap Agile Testing Track Learning Objectives Licensing Information The work in this document was facilitated by the International Consortium for Agile

More information

Chemuturi Consultants Do it well or not at all Productivity for Software Estimators Murali Chemuturi

Chemuturi Consultants Do it well or not at all Productivity for Software Estimators Murali Chemuturi Productivity for Software Estimators Murali Chemuturi 1 Introduction Software estimation, namely, software size, effort, cost and schedule (duration) are often causing animated discussions among the fraternity

More information

CORBA Programming with TAOX11. The C++11 CORBA Implementation

CORBA Programming with TAOX11. The C++11 CORBA Implementation CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy

More information

the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the

the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the By Matt Love W hat s the first thing that comes to mind when you think about unit testing? If you re a Java developer, it s probably JUnit, since the tool is generally recognized as the de facto standard

More information

White Papers: Unit Testing. www.dcmtech.com. Unit Testing

White Papers: Unit Testing. www.dcmtech.com. Unit Testing Unit Testing Table of Contents TESTING, VERIFICATION AND VALIDATION...1 UNIT TESTING PROCEDURES...3 C1 100% COVERAGE...3 QUERY GENERATION...4 TESTING, VERIFICATION and VALIDATION Black Box Testing White

More information

Grandstream Networks, Inc.

Grandstream Networks, Inc. Grandstream Networks, Inc. GXV3240 IP Multimedia Phone for Android TM Microsoft Lync Application Setup Guide GXV3240 Microsoft Lync Setup Guide GXV3240 Microsoft Lync Setup Guide Index INTRODUCTION...

More information

Fail early, fail often, succeed sooner!

Fail 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 information

Eliminate Memory Errors and Improve Program Stability

Eliminate Memory Errors and Improve Program Stability Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent

More information

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive

More information

Tutorial Database Testing using SQL

Tutorial Database Testing using SQL Database Testing Tutorial using SQL Tutorial Database Testing using SQL 1. INTRODUCTION 1.1 Why back end testing is so important 1.2 Characteristics of back end testing 1.3 Back end testing phases 1.4

More information

Unit testing with JUnit and CPPUnit. Krzysztof Pietroszek [email protected]

Unit testing with JUnit and CPPUnit. Krzysztof Pietroszek kmpietro@swen.uwaterloo.ca Unit testing with JUnit and CPPUnit Krzysztof Pietroszek [email protected] Old-fashioned low-level testing Stepping through a debugger drawbacks: 1. not automatic 2. time-consuming Littering code

More information

Company Set Up. Company Settings

Company Set Up. Company Settings Company Set Up allows you to enable or disable features and customize QuickBooks Online around your company needs and your personal working style. In this QuickGuide, we ll walk through the basic steps

More information

Unit Testing. and. JUnit

Unit 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 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

QUIZ-II QUIZ-II. Chapter 5: Control Structures II (Repetition) Objectives. Objectives (cont d.) 20/11/2015. EEE 117 Computer Programming Fall-2015 1

QUIZ-II QUIZ-II. Chapter 5: Control Structures II (Repetition) Objectives. Objectives (cont d.) 20/11/2015. EEE 117 Computer Programming Fall-2015 1 QUIZ-II Write a program that mimics a calculator. The program should take as input two integers and the operation to be performed. It should then output the numbers, the operator, and the result. (For

More information

Going Interactive: Combining Ad-Hoc and Regression Testing

Going Interactive: Combining Ad-Hoc and Regression Testing Going Interactive: Combining Ad-Hoc and Regression Testing Michael Kölling 1, Andrew Patterson 2 1 Mærsk Mc-Kinney Møller Institute, University of Southern Denmark, Denmark [email protected] 2 Deakin University,

More information

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction DRUPAL CONTINUOUS INTEGRATION Part I - Introduction Continuous Integration is a software development practice where members of a team integrate work frequently, usually each person integrates at least

More information

iseries Electronic Document Management:

iseries Electronic Document Management: iseries Electronic Document Management: A step-by-step Guide for automating distribution of documents by email without custom programming. How to Email Forms Using SpoolFlex and FormFlex Overview... 0

More information

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program. Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

More information

Object-oriented Programming for Automation & Robotics Carsten Gutwenger LS 11 Algorithm Engineering

Object-oriented Programming for Automation & Robotics Carsten Gutwenger LS 11 Algorithm Engineering Object-oriented Programming for Automation & Robotics Carsten Gutwenger LS 11 Algorithm Engineering Lecture 1 Winter 2011/12 Oct 11 1. Introduction 2. Pool accounts Agenda 3. Signing up (two groups) 4.

More information

1 Abstract Data Types Information Hiding

1 Abstract Data Types Information Hiding 1 1 Abstract Data Types Information Hiding 1.1 Data Types Data types are an integral part of every programming language. ANSI-C has int, double and char to name just a few. Programmers are rarely content

More information

Opening a Command Shell

Opening a Command Shell Opening a Command Shell Win Cmd Line 1 In WinXP, go to the Programs Menu, select Accessories and then Command Prompt. In Win7, go to the All Programs, select Accessories and then Command Prompt. Note you

More information

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)

Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority) Boolean Expressions, Conditions, Loops, and Enumerations Relational Operators == // true if two values are equivalent!= // true if two values are not equivalent < // true if left value is less than the

More information

CP Lab 2: Writing programs for simple arithmetic problems

CP Lab 2: Writing programs for simple arithmetic problems Computer Programming (CP) Lab 2, 2015/16 1 CP Lab 2: Writing programs for simple arithmetic problems Instructions The purpose of this Lab is to guide you through a series of simple programming problems,

More information

Advanced Test-Driven Development

Advanced Test-Driven Development Corporate Technology Advanced Test-Driven Development Software Engineering 2007 Hamburg, Germany Peter Zimmerer Principal Engineer Siemens AG, CT SE 1 Corporate Technology Corporate Research and Technologies

More information

RUnit - A Unit Test Framework for R

RUnit - 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 information

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements

9 Control Statements. 9.1 Introduction. 9.2 Objectives. 9.3 Statements 9 Control Statements 9.1 Introduction The normal flow of execution in a high level language is sequential, i.e., each statement is executed in the order of its appearance in the program. However, depending

More information

ALGORITHMS AND FLOWCHARTS

ALGORITHMS AND FLOWCHARTS ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: Problem solving phase produce an ordered sequence of steps that describe solution of problem this sequence of steps

More information

C++ for Safety-Critical Systems. DI Günter Obiltschnig Applied Informatics Software Engineering GmbH guenter.obiltschnig@appinf.

C++ for Safety-Critical Systems. DI Günter Obiltschnig Applied Informatics Software Engineering GmbH guenter.obiltschnig@appinf. C++ for Safety-Critical Systems DI Günter Obiltschnig Applied Informatics Software Engineering GmbH [email protected] A life-critical system or safety-critical system is a system whose failure

More information

Agile Testing Overview

Agile Testing Overview Copyright (c) 2008, Quality Tree Software, Inc. 1 Agile Myths, Busted Contrary to popular myth, Agile methods are not sloppy, ad hoc, do-whatever-feelsgood processes. Quite the contrary. As Mary Poppendieck

More information

Koha 3 Library Management System

Koha 3 Library Management System P U B L I S H I N G community experience distilled Koha 3 Library Management System Savitra Sirohi Amit Gupta Chapter No.4 "Koha's Web Installer, Crontab, and Other Server Configurations" In this package,

More information

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011

Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 QAI /QAAM 2011 Conference Proven Practices For Managing and Testing IT Projects Co-Presented by Mr. Bill Rinko-Gay and Dr. Constantin Stanca 9/28/2011 Format This presentation is a journey When Bill and

More information

Extending Remote Desktop for Large Installations. Distributed Package Installs

Extending Remote Desktop for Large Installations. Distributed Package Installs Extending Remote Desktop for Large Installations This article describes four ways Remote Desktop can be extended for large installations. The four ways are: Distributed Package Installs, List Sharing,

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

4. Test Design Techniques

4. Test Design Techniques 4. Test Design Techniques Hans Schaefer [email protected] 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

Getting Started Using AudibleManager. AudibleManager 5.0

Getting Started Using AudibleManager. AudibleManager 5.0 Getting Started Using AudibleManager AudibleManager 5.0 Overview of AudibleManager... 5 AUDIBLE FOLDERS... 5 FOLDERS CONTENT WINDOW... 5 MOBILE DEVICES... 5 DEVICE VIEW... 5 DETAILS VIEW... 5 Functions

More information

Lab Experience 17. Programming Language Translation

Lab Experience 17. Programming Language Translation Lab Experience 17 Programming Language Translation Objectives Gain insight into the translation process for converting one virtual machine to another See the process by which an assembler translates assembly

More information

JUnit. Introduction to Unit Testing in Java

JUnit. 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 information

Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites:

Essentials of the Quality Assurance Practice Principles of Testing Test Documentation Techniques. Target Audience: Prerequisites: Curriculum Certified Software Tester (CST) Common Body of Knowledge Control Procedures Problem Resolution Reports Requirements Test Builds Test Cases Test Execution Test Plans Test Planning Testing Concepts

More information

Manual Techniques, Rules of Thumb

Manual Techniques, Rules of Thumb Seminar on Software Cost Estimation WS 2002/2003 Manual Techniques, Rules of Thumb Pascal Ziegler 1 Introduction good software measurement and estimation are important simple methods are widely used simple,

More information

GPSMAP 78 series. quick start manual. for use with the GPSMAP 78, GPSMAP 78s, and GPSMAP 78sc

GPSMAP 78 series. quick start manual. for use with the GPSMAP 78, GPSMAP 78s, and GPSMAP 78sc GPSMAP 78 series quick start manual for use with the GPSMAP 78, GPSMAP 78s, and GPSMAP 78sc Getting Started warning See the Important Safety and Product Information guide in the product box for product

More information

The While Loop. Objectives. Textbook. WHILE Loops

The While Loop. Objectives. Textbook. WHILE Loops Objectives The While Loop 1E3 Topic 6 To recognise when a WHILE loop is needed. To be able to predict what a given WHILE loop will do. To be able to write a correct WHILE loop. To be able to use a WHILE

More information

Review of ACN-5.1 - Working Environment

Review of ACN-5.1 - Working Environment CASL- -2015-0102-000 Lean/Agile Principles and Consortium for Advanced Practices Simulation for of Developing LWRs Quality Scientific Software Roscoe A. Bartlett Oak Ridge National Laboratory July 8-10,

More information

1. Right click using your mouse on the desktop and select New Shortcut.

1. Right click using your mouse on the desktop and select New Shortcut. offers 3 login page styles: Standard Login, List Login or Quick Time Punch. Each login page can be saved as a shortcut to your desktop or as a bookmark for easy fast login access. For quicker access to

More information

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage

More information

Increasing Productivity and Collaboration with Google Docs. Charina Ong Educational Technologist [email protected]

Increasing Productivity and Collaboration with Google Docs. Charina Ong Educational Technologist charina.ong@nus.edu.sg Increasing Productivity and Collaboration with Google Docs [email protected] Table of Contents About the Workshop... i Workshop Objectives... i Session Prerequisites... i Google Apps... 1 Creating

More information

Table 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 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 information

An Introduction to MPLAB Integrated Development Environment

An Introduction to MPLAB Integrated Development Environment An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to

More information

sqlcmd -S.\SQLEXPRESS -Q "select name from sys.databases"

sqlcmd -S.\SQLEXPRESS -Q select name from sys.databases A regularly scheduled backup of databases used by SyAM server programs (System Area Manager, Management Utilities, and Site Manager can be implemented by creating a Windows batch script and running it

More information

Automated Testing with Python

Automated Testing with Python Automated Testing with Python assertequal(code.state(), happy ) Martin Pitt Why automated tests? avoid regressions easy code changes/refactoring simplify integration design

More information

Software Testing with Python

Software Testing with Python Software Testing with Python Magnus Lyckå Thinkware AB www.thinkware.se EuroPython Conference 2004 Chalmers, Göteborg, Sweden 2004, Magnus Lyckå In the next 30 minutes you should... Learn about different

More information

The goal with this tutorial is to show how to implement and use the Selenium testing framework.

The goal with this tutorial is to show how to implement and use the Selenium testing framework. APPENDIX B: SELENIUM FRAMEWORK TUTORIAL This appendix is a tutorial about implementing the Selenium framework for black-box testing at user level. It also contains code examples on how to use Selenium.

More information

Effective unit testing with JUnit

Effective unit testing with JUnit Effective unit testing with JUnit written by Eric M. Burke [email protected] Copyright 2000, Eric M. Burke and All rights reserved last revised 12 Oct 2000 extreme Testing 1 What is extreme Programming

More information

Oracle Taleo Business Edition Cloud Service. What s New in Release 15B1

Oracle Taleo Business Edition Cloud Service. What s New in Release 15B1 Oracle Taleo Business Edition Cloud Service What s New in Release 15B1 July 2015 TABLE OF CONTENTS REVISION HISTORY... 3 OVERVIEW... 4 RELEASE FEATURE SUMMARY... 4 CAREERS WEBSITES... 5 Mobile Enabled

More information

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard

Testing. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies. CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 3 Testing CHAPTER AUTHORS Michael Atmadja Zhang Shuai Richard PREVIOUS CONTRIBUTORS : Ang Jin Juan Gabriel; Chen Shenglong

More information

Guide to PDF Publishing

Guide to PDF Publishing Guide to PDF Publishing Alibre Design 9.2 Copyrights Information in this document is subject to change without notice. The software described in this document is furnished under a license agreement or

More information

Managing Agile Projects in TestTrack GUIDE

Managing Agile Projects in TestTrack GUIDE Managing Agile Projects in TestTrack GUIDE Table of Contents Introduction...1 Automatic Traceability...2 Setting Up TestTrack for Agile...6 Plan Your Folder Structure... 10 Building Your Product Backlog...

More information

Agile Web Service and REST Service Testing with soapui

Agile Web Service and REST Service Testing with soapui Agile Web Service and REST Service Testing with soapui Robert D. Schneider Principal Think88 Ventures, LLC [email protected] www.think88.com/soapui Agenda Introduction Challenges of Agile Development

More information

TestManager Administration Guide

TestManager Administration Guide TestManager Administration Guide RedRat Ltd July 2015 For TestManager Version 4.57-1 - Contents 1. Introduction... 3 2. TestManager Setup Overview... 3 3. TestManager Roles... 4 4. Connection to the TestManager

More information

Test Specification. Introduction

Test Specification. Introduction Test Specification Introduction Goals and Objectives GameForge is a graphical tool used to aid in the design and creation of video games. A user with little or no experience with Microsoft DirectX and/or

More information

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game

Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.

More information

Communications Cloud Product Enhancements February 2016

Communications Cloud Product Enhancements February 2016 Communications Cloud Product Enhancements February 2016 Table of Contents Pages GoToMeeting... 3-26 GoToTraining...47-60 Communications Cloud Product Enhancements February 2016 GoToMeeting (Return to Table

More information

Data Quality Monitoring for High Energy Physics (DQM4HEP) Module interfaces

Data Quality Monitoring for High Energy Physics (DQM4HEP) Module interfaces Data Quality ing for High Energy Physics (DQM4HEP) Module interfaces R. Été, A. Pingault, L. Mirabito Université Claude Bernard Lyon 1 - Institut de Physique Nucléaire de Lyon / Ghent University 10 février

More information

Hands-on Practice. Hands-on Practice. Learning Topics

Hands-on Practice. Hands-on Practice. Learning Topics Using Microsoft PowerPoint Software on a SMART Board Interactive Whiteboard You make presentations for a reason to communicate a message. With a SMART Board interactive whiteboard, you can focus the attention

More information

COMPLETING PCI CERTIFICATION IN TRUSTKEEPER PCI MANAGER

COMPLETING PCI CERTIFICATION IN TRUSTKEEPER PCI MANAGER COMPLETING PCI CERTIFICATION IN TRUSTKEEPER PCI MANAGER Go to www.elavon.com/pci and click Verify Compliance at the top of the page. On the Verify Compliance page, click Register and Get Certified. (If

More information

Remote Field Service - Androids. Installation Guide

Remote Field Service - Androids. Installation Guide Remote Field Service - Androids Installation Guide Davisware 514 Market Loop West Dundee, IL 60118 Phone: (847) 426-6000 Fax: (847) 426-6027 Contents are the exclusive property of Davisware. Copyright

More information

COMPUTER SCIENCE 1999 (Delhi Board)

COMPUTER SCIENCE 1999 (Delhi Board) COMPUTER SCIENCE 1999 (Delhi Board) Time allowed: 3 hours Max. Marks: 70 Instructions: (i) All the questions are compulsory. (ii) Programming Language: C++ QUESTION l. (a) Why main function is special?

More information

Introduction to Agile Software Development Process. Software Development Life Cycles

Introduction to Agile Software Development Process. Software Development Life Cycles Introduction to Agile Software Development Process Presenter: Soontarin W. (Senior Software Process Specialist) Date: 24 November 2010 AGENDA Software Development Life Cycles Waterfall Model Iterative

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

Testing, Debugging, and Verification

Testing, 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 information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February

More information

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++

1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ Answer the following 1) The postfix expression for the infix expression A+B*(C+D)/F+D*E is ABCD+*F/DE*++ 2) Which data structure is needed to convert infix notations to postfix notations? Stack 3) The

More information

F5 BIG DDoS Umbrella. Configuration Guide

F5 BIG DDoS Umbrella. Configuration Guide F5 BIG DDoS Umbrella Configuration Guide Jeff Stathatos September 2014 Table of Contents F5 BIG DDoS Umbrella... 1 Configuration Guide... 1 1. Introduction... 3 1.1. Purpose... 3 1.2. Limitations... 3

More information

Contents. About Testing with Xcode 4. Quick Start 7. Testing Basics 23. Writing Test Classes and Methods 28. At a Glance 5 Prerequisites 6 See Also 6

Contents. About Testing with Xcode 4. Quick Start 7. Testing Basics 23. Writing Test Classes and Methods 28. At a Glance 5 Prerequisites 6 See Also 6 Testing with Xcode Contents About Testing with Xcode 4 At a Glance 5 Prerequisites 6 See Also 6 Quick Start 7 Introducing the Test Navigator 7 Add Testing to Your App 11 Create a Test Target 12 Run the

More information

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote 2011. SSA-U Appendix 5 Testing and Approval Project: E-vote 2011

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote 2011. SSA-U Appendix 5 Testing and Approval Project: E-vote 2011 E-vote 2011 SSA-U Appendix 5 Testing and Approval Project: E-vote 2011 Change log Version Date Author Description/changes 0.1 26.10.09 First version Page 1 CONTENT 1. INTRODUCTION 3 2. TESTING PROCESS

More information

Presentation: 1.1 Introduction to Software Testing

Presentation: 1.1 Introduction to Software Testing Software Testing M1: Introduction to Software Testing 1.1 What is Software Testing? 1.2 Need for Software Testing 1.3 Testing Fundamentals M2: Introduction to Testing Techniques 2.1 Static Testing 2.2

More information

Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius

Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius Practical Data Visualization and Virtual Reality Virtual Reality VR Software and Programming Karljohan Lundin Palmerius Synopsis Scene graphs Event systems Multi screen output and synchronization VR software

More information