November 2011CSC7302: Testing & MetricsHangMan-Refactoring.1 HangMan PBL - Refactoring Use your updated (best) version of Hangman (with a dictionary of.

Slides:



Advertisements
Similar presentations
What is Test Director? Test Director is a test management tool
Advertisements

Ch-11 Project Execution and Termination. System Testing This involves two different phases with two different outputs First phase is system test planning.
Test Automation Success: Choosing the Right People & Process
David Woo (dxw07u).  What is “White Box Testing”  Data Processing and Calculation Correctness Tests  Correctness Tests:  Path Coverage  Line Coverage.
PRESENTATION 3 Sri Raguraman CIS 895 Kansas State University.
Objects First With Java A Practical Introduction Using BlueJ Designing object-oriented programs How to write code in a way that is easily understandable,
Introduction to Eclipse, Unit Testing and JUnit David Rabinowitz.
Intro to CIT 594
Using subversion COMP 2400 Prof. Chris GauthierDickey.
Eclipse[10] MIPSinEclipse. Overview Goal: To provide a friendly development environment for CS students programming in MIPS (particularly CS33 at UCLA),
Theatrical Lighting Design and Inventory Management System Architecture Presentation Presenters: Ed Morrison, Harikrishna Patel, Joshua Zawislak.
I n t e g r i t y - S e r v i c e - E x c e l l e n c e Business & Enterprise Systems Introduction to Hewlett Packard (HP) Application Lifecycle Management.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Methodology for Architectural Level Reliability Risk Analysis Lalitha Krothapalli CSC 532.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Your Interactive Guide to the Digital World Discovering Computers 2012.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
Introduction to Systems Analysis and Design Trisha Cummings.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Refactoring Lecture 5 CIS 6101 Software Processes and Metrics.
Multi Duty Tool for Smallworld™ solution providers.
Software Systems Verification and Validation Laboratory Assignment 3
System Implementation System Implementation - Mr. Ahmad Al-Ghoul System Analysis and Design.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Craig Berntson
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Object Oriented Analysis and Design Introduction.
1 Design, construction, & unit testing Software Engineering Semester Project Chih-Hong Jeng & Farn Wang fall 2006.
JUnit in Action SECOND EDITION PETAR TAHCHIEV FELIPE LEME VINCENT MASSOL GARY GREGORY ©2011 by Manning Publications Co. All rights reserved. Slides Prepared.
November 2011CSC7302: Testing & MetricsL1-HangmanProblem:1 Hangman: apps, webpages,adverts,scams, …but usually just a fun game Variations: Clues/Themes.
T-unit: Tcl Unit Test Package Automated Unit Test Package For Tcl Procedures Final Presentation Joseph Boyle Loyola Marymount University.
LECTURE 38: REFACTORING CSC 395 – Software Engineering.
17-Dec-03 Intro to CIT 594 ~matuszek/cit594.html.
Software Quality Assurance
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
Detecting Patterns and Antipatterns in Software using Prolog Rules Alecsandar Stoianov, Ioana Sora Department of Computers Politehnica University of Timisoara,
4/1/05F-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Packages and Components in Java and UML.
(1) A “Software ICU” for assessing and maintaining software project health Philip Johnson Collaborative Software Development Laboratory Information and.
Unit Testing with JUnit and Clover Based on material from: Daniel Amyot JUnit Web site.
Version Control CSC 517 John Slankas. Version Control Managing files and directories, and the changes made to them over time. - Adapted from “Version.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Migrating Desktop Bartek Palak Bartek Palak Poznan Supercomputing and Networking Center The Graphical Framework.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Software Metric Tools Joel Keyser, Jacob Napp, Carey Norslien, Stephen Owings, Tristan Paynter.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Diagnosing Design Problems in Object Oriented Systems Adrian Trifu, Radu Marinescu Proceedings of the 12th IEEE Working Conference on Reverse Engineering.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
Object Oriented Programming Criteria: P2 Date: 07/10/15 Name: Thomas Jazwinski.
Recommending Adaptive Changes for Framework Evolution Barthélémy Dagenais and Martin P. Robillard ICSE08 Dec 4 th, 2008 Presented by EJ Park.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
On Experimenting refactoring tools to remove code smells Xp 2015 workshop.
Automated Testing April 2001WISQA Meeting Ronald Utz, Automated Software Testing Analyst April 11, 2001.
CSC 395 – Software Engineering Lecture 27: White-Box Testing.
Maven. Introduction Using Maven (I) – Installing the Maven plugin for Eclipse – Creating a Maven Project – Building the Project Understanding the POM.
PROGRAMMING USING PYTHON LANGUAGE ASSIGNMENT 1. INSTALLATION OF RASPBERRY NOOB First prepare the SD card provided in the kit by loading an Operating System.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
Implementation Topics Describe –Characteristics of good implementations –Best practices to achieve them Understand role of comments Learn debugging techniques.
Metrics of Software Quality
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Data Coverage and Code Coverage
Software testing strategies 2
TRUST KEY (DONGLE / PEN DRIVE)
Methodology for Architectural Level Reliability Risk Analysis
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Chapter 9: Implementation
Presentation transcript:

November 2011CSC7302: Testing & MetricsHangMan-Refactoring.1 HangMan PBL - Refactoring Use your updated (best) version of Hangman (with a dictionary of words). 1.Detect potential problems: a.Metric values out of bounds ? (Your code should pass this?) b.Poor object oriented design that gives off bad smells? (Your code probably wont pass this?) 2.Prepare a refactoring: a.Check the tests for the code to be refactored – i.Are all tests passed? ii.Is the coverage good (100%)? b.Is the documentation good? c.Submit/save current version before proceeding 3.Run the refactoring: Does the Eclipse IDE provide a refactoring for you to (partially) correct the problem? YES – use it and re-run application tests NO – check if some other tool exists YES – test the refactoring before use, use it and re-run application tests NO – check if some help for manual refactoring YES –test the refactoring before use, use it and re-run application tests NO – proceed with care 4.Check the problems have been removed/reduced.

November 2011CSC7302: Testing & MetricsHangMan-Refactoring.2 HangMan PBL - Refactoring 1.Detect potential problems: Useful plug-ins: a.Metric values out of bounds ? This metrics plugin calculates various code and design metrics for Java projects. In addition to metrics such as McCabe cyclomatic complexity and the dependency metrics of Robert Martin and many others, it also includes a graphical dependency analysis tool based on the dynamic hyperbolic graphing package TouchGraph. You should already have this installed

November 2011CSC7302: Testing & MetricsHangMan-Refactoring.3 HangMan PBL - Refactoring 1.Detect potential problems: Useful plug-ins: b.Poor object oriented design that gives off bad smells? inCode is source code analyzer that provides a continuous detection of several well-known design flaws (i.e. God Class, Feature Envy, Data Class and Significant Duplication) that are described in the "Object-Oriented Metrics in Practice" book (Springer, 2006). Furthermore the tool provides three helpful visualisations of (i) the entire system (System Complexity View), (ii) classes (Class Blueprint)and (iii) methods (Method Interaction). You can install this from: See : inCode: Continuous Quality Assessment and Improvement, Radu Marinescu, George Ganea and Ioana Verebi, LOOSE Research Group, Politehnica University of Timis¸oara, Romania

November 2011CSC7302: Testing & MetricsHangMan-Refactoring.4 HangMan PBL - Refactoring 2.Prepare a refactoring: a.Check the tests for the code to be refactored – i.Are all tests passed? ii.Is the coverage good (100%)? I use 2 coverage tools/plugins: EclEmma - DJunit - b.Is the documentation good? I hope you are using Javadocs? c.Submit/save current version before proceeding I hope you are using version control (svn, cvs?) TO DO: install and execute these coverage tools on your hangman code/tests

November 2011CSC7302: Testing & MetricsHangMan-Refactoring.5 HangMan PBL - Refactoring 3.Run the refactoring: Does the Eclipse IDE provide a refactoring for you to (partially) correct the problem? YES – use it and re-run application tests NO – check if some other tool exists YES – test the refactoring before use, use it and re-run application tests NO – check if some help for manual refactoring YES –test the refactoring before use, use it and re-run application tests NO – proceed with care Try and refactor your code (in whatever way you wish) so that you are happy with the quality of the design.

November 2011CSC7302: Testing & MetricsHangMan-Refactoring.6 HangMan PBL - Refactoring 4.Check the problems have been removed/reduced. It is almost certain that you will need to repeat the refactoring multiple times before you arrive at an acceptable design/implementation. Note that you may have to compromise with complex systems – it may not be possible/easy to pass all metric tests and/or get rid of all bad smells. It is best to stop refactoring when it looks like you will be going round in circles. Don’t forget to submit/save any version that improves the system whilst still passing all the tests (with good test coverage) Once you are happy with your Hangman solution we will move onto the next stage of development: using dictionaries from (standardised) files. This will lead us to examine: Coupling and cohesion Integration testing Regression testing