CISC327 - So*ware Quality Assurance

Size: px
Start display at page:

Download "CISC327 - So*ware Quality Assurance"

Transcription

1 CISC327 - So*ware Quality Assurance Lecture 8 Introduc<on to Systema<c Tes<ng, part 1 CISC J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield

2 Introduc<on to Systema<c Tes<ng Outline Today we begin a thorough look at so*ware tes<ng Defini<ons: What is so*ware tes<ng? Role of specifica<ons Levels of tes<ng: unit, integra<on, system, acceptance

3 What is Tes<ng? Tes<ng is the process of execu<ng so*ware in a controlled manner to answer a ques<on: "Does the so*ware behave as specified?" Implies that we have a specifica<on* Possibly that the tests are the specifica<on Or implies that we have some property we wish to test for independently of the specifica<on e.g., "All paths in the code are reachable, no dead code" Tes<ng is o*en associated with the words valida<on and verifica<on * compare h[p:// a- great- ar<st- in- just- 10- seconds- andi- mcclure- michael- brough/

4 What is Systema<c Tes<ng? An explicit discipline or procedure (a system) for choosing and crea<ng test cases execu<ng the tests and documen<ng the results evalua<ng the results, possibly automa<cally deciding when we are done (enough tes<ng)

5 What is Systema<c Tes<ng? Because in general it is impossible to ever test completely, each systema<c method chooses a par<cular point of view and tests only from that point of view (the test criterion) e.g., test only that every decision (if statement) can be executed either way

6 Verifica(on vs. Valida<on Verifica<on The checking or tes<ng of so*ware (or anything else) for conformance and consistency with a given specifica<on Answers the ques<on "are we doing the job right?" Tes<ng is most useful in verifica<on, although it is just one part of it Inspec<on, measurement, analysis and formal methods are also important

7 Verifica<on vs. Valida(on Valida<on The process of checking that what has been specified is what the user actually wanted Answers the ques<on "are we doing the right job?" Valida<on usually involves mee<ngs, reviews, and discussions to check that what has been specified is what was intended Tes<ng is less useful in valida<on, although it can have a role

8 Valida<on vs. Verifica<on Verifica<on Check that the so*ware meets its stated func<onal and non- func<onal requirements Valida<on More general than verifica<on, ensure that the so*ware meets the customer's expecta<ons Requirements specifica<ons do not always reflect the real wishes or needs of system customers and users

9 Tes<ng vs. Debugging Debugging is not Tes<ng Debugging is the process of analyzing and loca<ng bugs when the so*ware does not behave as expected Tes<ng plays the much more comprehensive role of methodically searching for and exposing bugs, not just fixing those that happen to show up by playing with the so*ware Debugging therefore supports tes<ng but cannot replace it However, no amount of tes<ng is guaranteed to find all bugs (except possibly exhaus<ve tes<ng, where prac<cal)

10 Exhaus(ve Tes(ng vs. Occasionally you can test exhaus<vely: Let s write all the tests for a NAND ( not AND or Sheffer stroke ) opera<on Tests are just the same as the specifica<on (truth table): A B A NAND B true true false true false true false true true false false true Only 4 possible combina<ons of A and B, so 4 test cases

11 Exhaus<ve Tes<ng vs. Most so*ware, even most individual methods, can t be exhaus<vely tested Examples: There are infinitely many integers Even a 32- bit integer (small these days) has ~4 billion possible values Strings: way too many strings to test Compilers are an extreme case: the set of possible inputs to a C compiler is the set of all C programs (and many almost C programs, e.g. programs with syntax errors)

12 The Role of Specifica<ons The Need for Specifica<on Valida<on and verifica<on ac<vi<es, such as tes<ng, cannot be meaningful unless we have a specifica<on for the so*ware The so*ware we are building could be a single module or class, or could be an en<re system Depending on the size of the project and the development methods, specifica<ons can range from a single page to a complex hierarchy of interrelated documents

13 Levels of Specifica<on Three Levels Specifica<ons of large systems usually contain at least three levels of so*ware specifica<on documents 1. Func<onal specifica<ons (or requirements) 2. Design specifica<ons 3. Detailed design specifica<ons

14 Levels of Specifica<on 1) Func<onal specifica<ons (requirements) Give a precise descrip<on of the required behaviour (func<onality) of the system Describe what the so*ware should do, not how it should do it May also describe constraints on how this can be achieved Example: When the user chooses the "Exit" menu item, bring up the "Save" dialog if the current document has not been saved, otherwise terminate the program

15 Levels of Specifica<on 2) Design specifica<ons Describe the architecture of the design to implement the func<onal specifica<on Describe the components of the so*ware and how they are to relate to one another Example: A UML diagram and associated documenta<on describing the rela<onship between a document object and a spelling checker

16 Levels of Specifica<on 3) Detailed design specifica<ons Describe how each component of the architecture, down to the individual code units, is to be implemented Example: A detailed descrip<on of the Document object, including the data structures used to store the informa<on, rela<onships with other objects, and so on

17 Levels of Tes<ng Corresponding Test Levels Given the hierarchy of specifica<ons, it is usual to structure tes<ng into three (or more) corresponding levels 3) (detailed design) Unit Tes<ng 2) (design specifica<ons) Integra(on Tes<ng 1) (func<onal specifica<ons) System Tes<ng To these levels, we usually add: 0) Acceptance Tes<ng

18 Levels of Tes<ng Corresponding Test Levels 3) Unit tes<ng addresses the verifica<on that individual components of the architecture meet their detailed design specifica<on 2) Integra(on tes<ng (a.k.a. component tes<ng) verifies that the groups of units corresponding to architectural elements of the design specifica<on can be integrated to work as a whole

19 Levels of Tes<ng Corresponding Test Levels 1) System tes<ng verifies that the integrated total product has the func<onality specified in the func<onal specifica<on 0) Acceptance tes<ng, in which the actual customers validate that the so*ware meets their real inten<ons as well as what has been func<onally specified, and accept the result

20 An Integral Task: Tests as Goals Once each level of specifica<on is wri[en, the next step is to write the tests for that level XP speeds this by making the tests themselves the specifica<on It is important that the tests be designed without knowledge of the so*ware implementa<on In XP, before implementa<on Otherwise we are tempted to simply test the so*ware for what it actually does, not what it should do

21 Using Tests Evalua<ng Tests Within each level of tes<ng, once the tests have been applied, test results are evaluated If a problem is encountered, then either: a) the tests are wrong: the tests are revised and applied again, or b) the soeware is wrong: the so*ware is fixed and the tests are applied again In either case, the tests are applied again, and so on, un<l no more problems are found, at which point development can proceed to the next level of tes<ng

22 Tests Don't Die! Test Evolu<on Tes<ng does not end when the so*ware is accepted by the customer Tests must be repeated, modified and extended to ensure that no exis<ng func<onality has been broken, and that any new func<onality is implemented according to the revised specifica<ons and design

23 Tests Don't Die! Test Evolu<on Maintenance of the tests for a system is a major part of the effort to maintain and evolve a so*ware system while retaining a high level of quality To make this con<nual tes<ng prac<cal, automa<on plays a large role in so*ware tes<ng methods

24 Summary Introduc<on to Tes<ng Tes<ng addresses primarily the verifica<on that so*ware meets its specifica<ons Without some kind of specifica<on, we cannot test Tes<ng is done at several levels, corresponding to the levels of func<onal, design, and detailed specifica<ons in reverse order Tes<ng is not finished at acceptance, it remains for the life of the so*ware system

25 Summary References Sommerville, ch. 8, "So*ware Tes<ng" The So*ware Test Page (on the web)

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 12 Black Box Tes?ng CISC327-2003 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Black Box Tes?ng Outline Last?me we con?nued with black box tes?ng and

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 12 Black Box Tes?ng CISC327-2003 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Black Box Tes?ng Outline Last?me we con?nued with black box tes?ng and

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 19 Regression Tes?ng CISC327-2003- 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Regression Tes?ng Today we look at regression tes?ng Purpose of regression

More information

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan

COSC 310: So*ware Engineering. Dr. Bowen Hui University of Bri>sh Columbia Okanagan COSC 310: So*ware Engineering Dr. Bowen Hui University of Bri>sh Columbia Okanagan 1 Admin A2 is up Don t forget to keep doing peer evalua>ons Deadline can be extended but shortens A3 >meframe Labs This

More information

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues

Founda'ons of So,ware Engineering. Lecture 11 Intro to QA, Tes2ng Claire Le Goues Founda'ons of So,ware Engineering Lecture 11 Intro to QA, Tes2ng Claire Le Goues 1 Learning goals Define so;ware analysis. Reason about QA ac2vi2es with respect to coverage and coverage/adequacy criteria,

More information

CISC327 - So*ware Quality Assurance. Lecture 13 Black Box Unit

CISC327 - So*ware Quality Assurance. Lecture 13 Black Box Unit CISC327 - So*ware Quality Assurance Lecture 13 Black Box Unit Tes@ng Black Box Unit Tes@ng Black box method tes@ng Test harnesses Role of code- level specifica@ons (asser@ons) Automa@ng black box unit

More information

L7: Tes(ng. Smoke tes(ng. The test- vee Black- box vs. white- box tes(ng Tes(ng methods. Four levels of tes(ng. Case study

L7: Tes(ng. Smoke tes(ng. The test- vee Black- box vs. white- box tes(ng Tes(ng methods. Four levels of tes(ng. Case study Smoke tes(ng L7: Tes(ng The test- vee Black- box vs. white- box tes(ng Tes(ng methods Matrix test Step- by- step test Automated test scripts Four levels of tes(ng Debugging Unit tes?ng Integra?on tes?ng

More information

A formal design process, part 2

A formal design process, part 2 Principles of So3ware Construc9on: Objects, Design, and Concurrency Designing (sub-) systems A formal design process, part 2 Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Midterm

More information

csc444h: so(ware engineering I matt medland

csc444h: so(ware engineering I matt medland csc444h: so(ware engineering I matt medland matt@cs.utoronto.ca http://www.cs.utoronto.ca/~matt/csc444 tes2ng top- 10 infrastructure source code control including other types of testing reproducible builds

More information

Founda'ons of So,ware Engineering. Sta$c analysis (1/2) Claire Le Goues

Founda'ons of So,ware Engineering. Sta$c analysis (1/2) Claire Le Goues Founda'ons of So,ware Engineering Sta$c analysis (1/2) Claire Le Goues 1 Two fundamental concepts Abstrac'on. Elide details of a specific implementa$on. Capture seman$cally relevant details; ignore the

More information

Preliminary ACTL-SLOW Design in the ACS and OPC-UA context. G. Tos? (19/04/2016)

Preliminary ACTL-SLOW Design in the ACS and OPC-UA context. G. Tos? (19/04/2016) Preliminary ACTL-SLOW Design in the ACS and OPC-UA context G. Tos? (19/04/2016) Summary General Introduc?on to ACS Preliminary ACTL-SLOW proposed design Hardware device integra?on in ACS and ACTL- SLOW

More information

CISC327 - So*ware Quality Assurance

CISC327 - So*ware Quality Assurance CISC327 - So*ware Quality Assurance Lecture 23 Code Inspec

More information

Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2

Architectural Requirements Phase. See Sommerville Chapters 11, 12, 13, 14, 18.2 Architectural Requirements Phase See Sommerville Chapters 11, 12, 13, 14, 18.2 1 Architectural Requirements Phase So7ware requirements concerned construc>on of a logical model Architectural requirements

More information

So#ware Test and Analysis

So#ware Test and Analysis So#ware Test and Analysis Luciano Baresi Politecnico di Milano Leonardo Mariani (University of Milano Bicocca) Mo=va=ons So#ware systems permeate (almost) every aspect of our life So#ware is buggy In 2002

More information

Automa'c Test Genera'on

Automa'c Test Genera'on Automa'c Test Genera'on First, about Purify Paper about Purify (and PurifyPlus) posted How do you monitor reads and writes: insert statements before and a?er reads, writes in code can s'll be done with

More information

Model-Based Testing. (DIT848 / DAT261) Spring Lecture 3 White Box Testing - Coverage

Model-Based Testing. (DIT848 / DAT261) Spring Lecture 3 White Box Testing - Coverage Model-Based Testing (DIT848 / DAT261) Spring 2017 Lecture 3 White Box Testing - Coverage Gerardo Schneider Dept. of Computer Science and Engineering Chalmers University of Gothenburg Some slides based

More information

Object Oriented Design (OOD): The Concept

Object Oriented Design (OOD): The Concept Object Oriented Design (OOD): The Concept Objec,ves To explain how a so8ware design may be represented as a set of interac;ng objects that manage their own state and opera;ons 1 Topics covered Object Oriented

More information

What were his cri+cisms? Classical Methodologies:

What were his cri+cisms? Classical Methodologies: 1 2 Classifica+on In this scheme there are several methodologies, such as Process- oriented, Blended, Object Oriented, Rapid development, People oriented and Organisa+onal oriented. According to David

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

Model Transforma.on. Krzysztof Czarnecki Genera.ve So:ware Development Lab University of Waterloo, Canada gsd.uwaterloo.ca

Model Transforma.on. Krzysztof Czarnecki Genera.ve So:ware Development Lab University of Waterloo, Canada gsd.uwaterloo.ca Model Transforma.on Krzysztof Czarnecki Genera.ve So:ware Development Lab University of Waterloo, Canada gsd.uwaterloo.ca Modeling Wizards Summer School, Oct. 1, 2010, Oslo, Norway What is model transforma.on?

More information

Automated System Analysis using Executable SysML Modeling Pa8erns

Automated System Analysis using Executable SysML Modeling Pa8erns Automated System Analysis using Executable SysML Modeling Pa8erns Maged Elaasar* Modelware Solu

More information

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues

Founda'ons of So,ware Engineering. Process: Agile Prac.ces Claire Le Goues Founda'ons of So,ware Engineering Process: Agile Prac.ces Claire Le Goues 1 Learning goals Define agile as both a set of itera.ve process prac.ces and a business approach for aligning customer needs with

More information

Discrete Processes

Discrete Processes FRTN20 Market-Driven Systems Marknadsstyrda System FRTN20 Lecture 2: Discrete Produc@on 1 Discrete Produc@on Processes General Characteris@cs of discrete produc@on processes: Discon@nuous produc@on of

More information

Chunking: An Empirical Evalua3on of So7ware Architecture (?)

Chunking: An Empirical Evalua3on of So7ware Architecture (?) Chunking: An Empirical Evalua3on of So7ware Architecture (?) Rachana Koneru David M. Weiss Iowa State University weiss@iastate.edu rachana.koneru@gmail.com With participation by Audris Mockus, Jeff St.

More information

Proofs about Programs

Proofs about Programs Proofs about Programs Program Verification (Rosen, Sections 5.5) TOPICS Program Correctness Preconditions & Postconditions Program Verification Assignment Statements Conditional Statements Loops Composition

More information

CISC So*ware Quality Assurance

CISC So*ware Quality Assurance CISC 327 - So*ware Quality Assurance Lecture 29b Web Applica>on Security CISC327-2003 2017 J.R. Cordy, S. Grant, J.S. Bradbury, J. Dunfield Outline Web Applica>on Security SQL Injec>on Parameter Manipula>on

More information

Introduction to Software Testing Chapter 5.1 Syntax-based Testing

Introduction to Software Testing Chapter 5.1 Syntax-based Testing Introduction to Software Testing Chapter 5.1 Syntax-based Testing Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/ softwaretest/ Ch. 5 : Syntax Coverage Four Structures for Modeling Software Graphs

More information

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2)

Lecture 2. White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) Lecture 2 White- box Tes2ng and Structural Coverage (see Amman and Offut, Chapter 2) White- box Tes2ng (aka. Glass- box or structural tes2ng) An error may exist at one (or more) loca2on(s) Line numbers

More information

Evaluating and Improving Software Usability

Evaluating and Improving Software Usability Evaluating and Improving Software Usability 902 : Thursday, 9:30am - 10:45am Philip Lew www.xbosoft.com Understand, Evaluate and Improve 2 Agenda Introduc7on Importance of usability What is usability?

More information

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422

F.P. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering CIS 422 The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements...no

More information

Leveraging User Session Data to Support Web Applica8on Tes8ng

Leveraging User Session Data to Support Web Applica8on Tes8ng Leveraging User Session Data to Support Web Applica8on Tes8ng Authors: Sebas8an Elbaum, Gregg Rotheermal, Srikanth Karre, and Marc Fisher II Presented By: Rajiv Jain Outline Introduc8on Related Work Tes8ng

More information

SIS Logic Synthesis System

SIS Logic Synthesis System SIS Logic Synthesis System Luigi Di Guglielmo Davide Bresolin Tiziano Villa University of Verona Dep. Computer Science Italy Introduc>on Logic Synthesis performs the transla>on from a high level descrip>on

More information

Design Principles & Prac4ces

Design Principles & Prac4ces Design Principles & Prac4ces Robert France Robert B. France 1 Understanding complexity Accidental versus Essen4al complexity Essen%al complexity: Complexity that is inherent in the problem or the solu4on

More information

Java. Package, Interface & Excep2on

Java. Package, Interface & Excep2on Java Package, Interface & Excep2on Package 2 Package Java package provides a mechanism for par55oning the class name space into more manageable chunks Both naming and visibility control mechanism Define

More information

Computer Programming-I. Developed by: Strawberry

Computer Programming-I. Developed by: Strawberry Computer Programming-I Objec=ve of CP-I The course will enable the students to understand the basic concepts of structured programming. What is programming? Wri=ng a set of instruc=ons that computer use

More information

So#ware Tes+ng Made Easy

So#ware Tes+ng Made Easy So#ware Tes+ng Made Easy Common Sense Tips and Sugges+ons Robert McLay and Doug James April 8, 2014 Overview A Bit of Context Tips and Sugges+ons References and Final Thoughts You re busy. You might wonder

More information

So#ware Tes+ng. See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008.

So#ware Tes+ng. See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008. So#ware Tes+ng See also Sommerville, Chapter 8 Amman and Offut, Introduc)on to So,ware Tes)ng, Cambridge University Press, 2008. Tes+ng Most basic form of post- hoc SQA Helps define program func+onality

More information

Intelligent Systems Knowledge Representa6on

Intelligent Systems Knowledge Representa6on Intelligent Systems Knowledge Representa6on SCJ3553 Ar6ficial Intelligence Faculty of Computer Science and Informa6on Systems Universi6 Teknologi Malaysia Outline Introduc6on Seman6c Network Frame Conceptual

More information

How to sleep *ght and keep your applica*ons running on IPv6 transi*on. The importance of IPv6 Applica*on Tes*ng

How to sleep *ght and keep your applica*ons running on IPv6 transi*on. The importance of IPv6 Applica*on Tes*ng How to sleep *ght and keep your applica*ons running on IPv6 transi*on The importance of IPv6 Applica*on Tes*ng About this presenta*on It presents a generic methodology to test the IPv6 func*onality of

More information

Josh Bloch Charlie Garrod Darya Melicher

Josh Bloch Charlie Garrod Darya Melicher Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 1: Introduc9on Course overview and introduc9on to so3ware design Josh Bloch Charlie Garrod Darya Melicher 1 So3ware is everywhere

More information

CSE Opera,ng System Principles

CSE Opera,ng System Principles CSE 30341 Opera,ng System Principles Lecture 5 Processes / Threads Recap Processes What is a process? What is in a process control bloc? Contrast stac, heap, data, text. What are process states? Which

More information

System Modeling Environment

System Modeling Environment System Modeling Environment Requirements, Architecture and Implementa

More information

Clinical Metadata A complete metadata and project management solu6on. October 2017 Andrew Ndikom and Liang Wang

Clinical Metadata A complete metadata and project management solu6on. October 2017 Andrew Ndikom and Liang Wang A complete metadata and project management solu6on. October 2017 Andrew Ndikom and Liang Wang 1 Agenda How is metadata currently managed within the industry? Five key problems with current approaches.

More information

SQLite with a Fine-Toothed Comb. John Regehr Trust-in-So1 / University of Utah

SQLite with a Fine-Toothed Comb. John Regehr Trust-in-So1 / University of Utah SQLite with a Fine-Toothed Comb John Regehr Trust-in-So1 / University of Utah Feasible states for a system we care about No execu

More information

Chapter 8 Software Testing. Chapter 8 So-ware tes0ng

Chapter 8 Software Testing. Chapter 8 So-ware tes0ng Chapter 8 Software Testing 1 Topics covered ² Introduction to testing ² Stages for testing software system are: Development testing Release testing User testing ² Test-driven development as interleave

More information

CMPSC 24: Lecture 1 So4ware Development Process

CMPSC 24: Lecture 1 So4ware Development Process CMPSC 24: Lecture 1 So4ware Development Process Divyakant Agrawal Department of Computer Science UC Santa Barbara Syllabus and other course informaion hjp://www.cs.ucsb.edu/~agrawal/spring2010/ cmpsc24.html

More information

Interac(ve Form: Inspec(on methods. Eva Ragnemalm, IDA

Interac(ve Form: Inspec(on methods. Eva Ragnemalm, IDA Interac(ve Form: Inspec(on methods Eva Ragnemalm, IDA 2 Interac(ve form 1 Select an informa2on kiosk or machine Describe it s purpose, content and form Perform a cogni(ve walkthrough describe the result

More information

Faster Splunk App Cer=fica=on with Splunk AppInspect

Faster Splunk App Cer=fica=on with Splunk AppInspect Copyright 2016 Splunk Inc. Faster Splunk App Cer=fica=on with Splunk AppInspect Andy Nortrup Product Manager, Splunk Grigori Melnik Director, Product Management, Splunk Disclaimer During the course of this

More information

Programming Environments

Programming Environments Programming Environments There are several ways of crea/ng a computer program Using an Integrated Development Environment (IDE) Using a text editor You should use the method you are most comfortable with.

More information

CS 101: Computer Programming and Utilization

CS 101: Computer Programming and Utilization CS 101: Computer Programming and Utilization Jul-Nov 2017 Umesh Bellur (cs101@cse.iitb.ac.in) Lecture 14: Object Oritented Programming and Classes About These Slides Based on Chapter 18 of the book An

More information

Model- Based Security Tes3ng with Test Pa9erns

Model- Based Security Tes3ng with Test Pa9erns Model- Based Security Tes3ng with Test Pa9erns Julien BOTELLA (Smartes5ng) Jürgen GROSSMANN (FOKUS) Bruno LEGEARD (Smartes3ng) Fabien PEUREUX (Smartes5ng) Mar5n SCHNEIDER (FOKUS) Fredrik SEEHUSEN (SINTEF)

More information

Design pa*erns. Based on slides by Glenn D. Blank

Design pa*erns. Based on slides by Glenn D. Blank Design pa*erns Based on slides by Glenn D. Blank Defini6ons A pa#ern is a recurring solu6on to a standard problem, in a context. Christopher Alexander, a professor of architecture Why would what a prof

More information

Review. Asser%ons. Some Per%nent Ques%ons. Asser%ons. Page 1. Automated Tes%ng. Path- Based Tes%ng. But s%ll need to look at execu%on results

Review. Asser%ons. Some Per%nent Ques%ons. Asser%ons. Page 1. Automated Tes%ng. Path- Based Tes%ng. But s%ll need to look at execu%on results Review Asser%ons Computer Science 521-621 Fall 2011 Prof. L. J. Osterweil Material adapted from slides originally prepared by Prof. L. A. Clarke Dynamic Tes%ng Execute program on real data and compare

More information

CrowdCode: A Platform for Crowd Development

CrowdCode: A Platform for Crowd Development CrowdCode: A Platform for Crowd Development Thomas D. LaToza 1, Eric Chiquillo 1, 2, W. Ben Towne 3, Christian M. Adriano 1, André van der Hoek 1 1 University of California, Irvine 2 Zynga 3 Carnegie Mellon

More information

Debugging. BBM Introduc/on to Programming I. Hace7epe University Fall Fuat Akal, Aykut Erdem, Erkut Erdem, Vahid Garousi

Debugging. BBM Introduc/on to Programming I. Hace7epe University Fall Fuat Akal, Aykut Erdem, Erkut Erdem, Vahid Garousi Debugging BBM 101 - Introduc/on to Programming I Hace7epe University Fall 2015 Fuat Akal, Aykut Erdem, Erkut Erdem, Vahid Garousi Slides based on material prepared by Ruth Anderson, Michael Ernst and Bill

More information

CS 521/621 Course Overview: Sta5c and Dynamic Analyses

CS 521/621 Course Overview: Sta5c and Dynamic Analyses CS 521/621 Course Overview: Sta5c and Dynamic Analyses Last 5me What did we talk about? Why is it important to study soeware engineering? Just like cars US automobile industry used to be very complacent

More information

Laboratory 5: Implementing Loops and Loop Control Strategies

Laboratory 5: Implementing Loops and Loop Control Strategies Laboratory 5: Implementing Loops and Loop Control Strategies Overview: Objectives: C++ has three control structures that are designed exclusively for iteration: the while, for and do statements. In today's

More information

CDISC Migra+on. PhUSE 2010 Berlin. 47 of the top 50 biopharmaceu+cal firms use Cytel sofware to design, simulate and analyze their clinical studies.

CDISC Migra+on. PhUSE 2010 Berlin. 47 of the top 50 biopharmaceu+cal firms use Cytel sofware to design, simulate and analyze their clinical studies. CDISC Migra+on PhUSE 2010 Berlin 47 of the top 50 biopharmaceu+cal firms use Cytel sofware to design, simulate and analyze their clinical studies. Source: The Pharm Exec 50 the world s top 50 pharmaceutical

More information

Laboratory- Clinical Communica1ons LCC Profile

Laboratory- Clinical Communica1ons LCC Profile Laboratory- Clinical Communica1ons LCC Profile IHE Laboratory Domain College of American Pathologists Jim Harrison, Univ. of Virginia The Problem The tradi1onal order- result paradigm does not include

More information

CSc 120. Introduc/on to Computer Programming II. 02: Problem Decomposi1on and Program Development. Adapted from slides by Dr.

CSc 120. Introduc/on to Computer Programming II. 02: Problem Decomposi1on and Program Development. Adapted from slides by Dr. CSc 120 Introduc/on to Computer Programming II Adapted from slides by Dr. Saumya Debray 02: Problem Decomposi1on and Program Development A common student lament "I have this big programming assignment.

More information

JUnit tes)ng. Elisa Turrini

JUnit tes)ng. Elisa Turrini JUnit tes)ng Elisa Turrini Automated Tes)ng Code that isn t tested doesn t work Code that isn t regression tested suffers from code rot (breaks eventually) If it is not automated it is not done! Boring

More information

Configura)on Management Founda)ons. Leonardo Gresta Paulino Murta

Configura)on Management Founda)ons. Leonardo Gresta Paulino Murta Configura)on Management Founda)ons Leonardo Gresta Paulino Murta leomurta@ic.uff.br Configura)on Item Hardware or so@ware aggrega)on subject to configura)on management Examples: CM plan Requirement Engineering

More information

Principles of So3ware Construc9on. A formal design process, part 2

Principles of So3ware Construc9on. A formal design process, part 2 Principles of So3ware Construc9on Design (sub- )systems A formal design process, part 2 Josh Bloch Charlie Garrod School of Computer Science 1 Administrivia Midterm exam Thursday Review session Wednesday,

More information

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Announcements We are grading your midterms this week!

More information

Advanced Topics in MNIT. Lecture 1 (27 Aug 2015) CADSL

Advanced Topics in MNIT. Lecture 1 (27 Aug 2015) CADSL Compiler Construction Virendra Singh Computer Architecture and Dependable Systems Lab Department of Electrical Engineering Indian Institute of Technology Bombay http://www.ee.iitb.ac.in/~viren/ E-mail:

More information

Program Verification (Rosen, Sections 5.5)

Program Verification (Rosen, Sections 5.5) Program Verification (Rosen, Sections 5.5) TOPICS Program Correctness Preconditions & Postconditions Program Verification Assignments Composition Conditionals Loops Proofs about Programs Why study logic?

More information

Integra(ng an Online Configura(on Checker with Exis(ng Management Systems: Applica(on to CIM/WBEM Environments

Integra(ng an Online Configura(on Checker with Exis(ng Management Systems: Applica(on to CIM/WBEM Environments Integra(ng an Online Configura(on Checker with Exis(ng Management Systems: Applica(on to CIM/WBEM Environments Ludi Akue, Emmanuel Lavinal, Thierry Desprats, Michelle Sibilla University of Toulouse IRIT

More information

Build Your Own ASP.NET 4 Website Using C# & VB. Chapter 1: Introducing ASP.NET and the.net Pla;orm

Build Your Own ASP.NET 4 Website Using C# & VB. Chapter 1: Introducing ASP.NET and the.net Pla;orm Build Your Own ASP.NET 4 Website Using C# & VB Chapter 1: Introducing ASP.NET and the.net Pla;orm Outlines IntroducIon What is ASP.NET? Advantages of ASP.NET Installing the Required SoOware WriIng your

More information

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan

COSC 121: Computer Programming II. Dr. Bowen Hui University of Bri?sh Columbia Okanagan COSC 121: Computer Programming II Dr. Bowen Hui University of Bri?sh Columbia Okanagan 1 A1 Posted over the weekend Two ques?ons (s?ll long ques?ons) Review of main concepts from COSC 111 Prac?ce coding

More information

Principles of Programming Languages

Principles of Programming Languages Principles of Programming Languages h"p://www.di.unipi.it/~andrea/dida2ca/plp- 14/ Prof. Andrea Corradini Department of Computer Science, Pisa Introduc;on to Hakell Lesson 27! 1 The origins: ML programming

More information

Why is it important to study sofware engineering?

Why is it important to study sofware engineering? Last 6me CS 521/621 Course Overview: Sta6c and Dynamic Analyses What did we talk about? Why is it important to study soware engineering? Just like cars US automobile industry used to be very complacent

More information

Homework 1 Simple code genera/on. Luca Della Toffola Compiler Design HS15

Homework 1 Simple code genera/on. Luca Della Toffola Compiler Design HS15 Homework 1 Simple code genera/on Luca Della Toffola Compiler Design HS15 1 Administra1ve issues Has everyone found a team- mate? Mailing- list: cd1@lists.inf.ethz.ch Please subscribe if we forgot you 2

More information

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY VIRTUAL MACHINE (VM) Uses so&ware to emulate an en/re computer, including both hardware and so&ware. Host Computer Virtual Machine Host Resources:

More information

A Func'onal Introduc'on. COS 326 David Walker Princeton University

A Func'onal Introduc'on. COS 326 David Walker Princeton University A Func'onal Introduc'on COS 326 David Walker Princeton University Thinking Func'onally In Java or C, you get (most) work done by changing something temp = pair.x; pair.x = pair.y; pair.y = temp; commands

More information

Design and Debug: Essen.al Concepts CS 16: Solving Problems with Computers I Lecture #8

Design and Debug: Essen.al Concepts CS 16: Solving Problems with Computers I Lecture #8 Design and Debug: Essen.al Concepts CS 16: Solving Problems with Computers I Lecture #8 Ziad Matni Dept. of Computer Science, UCSB Outline Midterm# 1 Grades Review of key concepts Loop design help Ch.

More information

Agenda. Address vs. Value Consider memory to be a single huge array. Review. Pointer Syntax. Pointers 9/9/12

Agenda. Address vs. Value Consider memory to be a single huge array. Review. Pointer Syntax. Pointers 9/9/12 Agenda CS 61C: Great Ideas in Computer Architecture Introduc;on to C, Part II Instructors: Krste Asanovic Randy H. Katz hep://inst.eecs.berkeley.edu/~cs61c/f12 Review Pointers Administrivia Arrays Technology

More information

Data Quality Assessment Recommendations

Data Quality Assessment Recommendations Data Quality Assessment Recommendations Steering Commi,ee Mee.ng, August 19-20, 2014 Bethesda, MD Meredith Nahm Zozus, PhD Assoc. Director, Clinical Research Informa6cs Duke Transla6onal Medicine Ins6tute

More information

{HEADSHOT} In this lesson, we will look at the process that enables to leverage this source of real- world tes;ng data.

{HEADSHOT} In this lesson, we will look at the process that enables to leverage this source of real- world tes;ng data. {HEADSHOT} Despite our best efforts, even a9er extensive tes;ng, we as so9ware developers rarely put out bug- free code. In this lesson, we will look at a type of debugging technique used throughout the

More information

Integrating Selenium with Confluence and JIRA

Integrating Selenium with Confluence and JIRA Integrating Selenium with Confluence and JIRA Open Source Test Management within Confluence, Automation of Selenium, Reporting, and Traceability Andrew Lampitt, Co-Founder Sanjiva Nath, CEO and Founder

More information

Object Oriented Programming. Feb 2015

Object Oriented Programming. Feb 2015 Object Oriented Programming Feb 2015 Tradi7onally, a program has been seen as a recipe a set of instruc7ons that you follow from start to finish in order to complete a task. That approach is some7mes known

More information

CSc 120. Introduction to Computer Programming II. 14: Stacks and Queues. Adapted from slides by Dr. Saumya Debray

CSc 120. Introduction to Computer Programming II. 14: Stacks and Queues. Adapted from slides by Dr. Saumya Debray CSc 120 Introduction to Computer Programming II Adapted from slides by Dr. Saumya Debray 14: Stacks and Queues linear data structures 2 Linear data structures A linear data structure is a collec6on of

More information

Automated UI tests for Mobile Apps. Sedina Oruc

Automated UI tests for Mobile Apps. Sedina Oruc Automated UI tests for Mobile Apps Sedina Oruc What I ll be covering Ø Basics Ø What are UI tests? Ø The no@on of Emulator and Simulator Ø What are our challenges? Ø PlaForm specific UI tes@ng frameworks

More information

CS 61C: Great Ideas in Computer Architecture Strings and Func.ons. Anything can be represented as a number, i.e., data or instruc\ons

CS 61C: Great Ideas in Computer Architecture Strings and Func.ons. Anything can be represented as a number, i.e., data or instruc\ons CS 61C: Great Ideas in Computer Architecture Strings and Func.ons Instructor: Krste Asanovic, Randy H. Katz hdp://inst.eecs.berkeley.edu/~cs61c/sp12 Fall 2012 - - Lecture #7 1 New- School Machine Structures

More information

CS: Formal Methods in Software Engineering

CS: Formal Methods in Software Engineering CS:5810 Formal Methods in So7ware Engineering Sets and Rela

More information

RaceMob: Crowdsourced Data Race Detec,on

RaceMob: Crowdsourced Data Race Detec,on RaceMob: Crowdsourced Data Race Detec,on Baris Kasikci, Cris,an Zamfir, and George Candea School of Computer & Communica3on Sciences Data Races to shared memory loca,on By mul3ple threads At least one

More information

Crea?ng Cloud Apps with Oracle Applica?on Builder Cloud Service

Crea?ng Cloud Apps with Oracle Applica?on Builder Cloud Service Crea?ng Cloud Apps with Oracle Applica?on Builder Cloud Service Shay Shmeltzer Director of Product Management Oracle Development Tools and Frameworks @JDevShay hpp://blogs.oracle.com/shay This App you

More information

Stream and Complex Event Processing Discovering Exis7ng Systems: esper

Stream and Complex Event Processing Discovering Exis7ng Systems: esper Stream and Complex Event Processing Discovering Exis7ng Systems: esper G. Cugola E. Della Valle A. Margara Politecnico di Milano gianpaolo.cugola@polimi.it emanuele.dellavalle@polimi.it Univ. della Svizzera

More information

Sept 26, 2016 Sprenkle - CSCI Documentation is a love letter that you write to your future self. Damian Conway

Sept 26, 2016 Sprenkle - CSCI Documentation is a love letter that you write to your future self. Damian Conway Objec,ves Javadocs Inheritance Ø Final methods, fields Abstract Classes Interfaces Sept 26, 2016 Sprenkle - CSCI209 1 JAVADOCS Documentation is a love letter that you write to your future self. Damian

More information

Alignment and Image Comparison

Alignment and Image Comparison Alignment and Image Comparison Erik Learned- Miller University of Massachuse>s, Amherst Alignment and Image Comparison Erik Learned- Miller University of Massachuse>s, Amherst Alignment and Image Comparison

More information

Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13. Fall Lecture #7. Warehouse Scale Computer

Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13. Fall Lecture #7. Warehouse Scale Computer CS 61C: Great Ideas in Computer Architecture Everything is a Number Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13 9/19/13 Fall 2013 - - Lecture #7 1 New- School Machine Structures

More information

Design Pa*erns. Philippe Collet. Master 1 IFI Interna3onal h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213. P.

Design Pa*erns. Philippe Collet. Master 1 IFI Interna3onal h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213. P. Design Pa*erns Philippe Collet Master 1 IFI Interna3onal 2012-2013 h8p://dep3nfo.unice.fr/twiki/bin/view/minfo/soeeng1213 P. Collet 1 Agenda Introduc3on First example Principles and classifica3on Presenta3on

More information

Mo#va#ng the OO Way. COMP 401, Fall 2017 Lecture 05

Mo#va#ng the OO Way. COMP 401, Fall 2017 Lecture 05 Mo#va#ng the OO Way COMP 401, Fall 2017 Lecture 05 Arrays Finishing up from last #me Mul#dimensional Arrays Mul#dimensional array is simply an array of arrays Fill out dimensions lef to right. int[][]

More information

Through Python. "Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura..." Dante Alighieri

Through Python. Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura... Dante Alighieri Through Python "Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura..." Dante Alighieri Syllabus Variables vs object Float representa2on The importance of syntax operator overloading built-in

More information

Modifying an Exis.ng Commercial Product for Cryptographic Module Evalua.on

Modifying an Exis.ng Commercial Product for Cryptographic Module Evalua.on Modifying an Exis.ng Commercial Product for Cryptographic Module Evalua.on ICMC16 O?awa, Canada 18-20 May 2016 Presented by Alan Gornall Introduc.on I provide cer.fica.on support to my clients: compliance

More information

Con$nuous Integra$on Development Environment. Kovács Gábor

Con$nuous Integra$on Development Environment. Kovács Gábor Con$nuous Integra$on Development Environment Kovács Gábor kovacsg@tmit.bme.hu Before we start anything Select a language Set up conven$ons Select development tools Set up development environment Set up

More information

History of Java. Java was originally developed by Sun Microsystems star:ng in This language was ini:ally called Oak Renamed Java in 1995

History of Java. Java was originally developed by Sun Microsystems star:ng in This language was ini:ally called Oak Renamed Java in 1995 Java Introduc)on History of Java Java was originally developed by Sun Microsystems star:ng in 1991 James Gosling Patrick Naughton Chris Warth Ed Frank Mike Sheridan This language was ini:ally called Oak

More information

CORPORATE PRESENTATION

CORPORATE PRESENTATION CORPORATE PRESENTATION Background on device detec/on (1/2) Identifying the capabilities of a device accessing web contents has been an extensively explored issue in the past years, in particular in the

More information

Josh Bloch Charlie Garrod Darya Melicher

Josh Bloch Charlie Garrod Darya Melicher Principles of So3ware Construc9on: Objects, Design, and Concurrency Part 42: Concurrency Introduc9on to concurrency Josh Bloch Charlie Garrod Darya Melicher 1 Administrivia Homework 5 team sign-up deadline

More information

GENG2140 Lecture 4: Introduc4on to Excel spreadsheets. A/Prof Bruce Gardiner School of Computer Science and SoDware Engineering 2012

GENG2140 Lecture 4: Introduc4on to Excel spreadsheets. A/Prof Bruce Gardiner School of Computer Science and SoDware Engineering 2012 GENG2140 Lecture 4: Introduc4on to Excel spreadsheets A/Prof Bruce Gardiner School of Computer Science and SoDware Engineering 2012 Credits: Nick Spadaccini, Chris Thorne Introduc4on to spreadsheets Used

More information