1 TRex Paul Baker 1, Dominic Evans 1, Jens Grabowski 2, Helmut Neukirchen 2, Benjamin Zeiss 2 The Refactoring and Metrics Tool for TTCN-3 Test Specifications.

Slides:



Advertisements
Similar presentations
SWE 316: Software Design and Architecture Objectives Lecture # 23 Software Reengineering SWE 316: Software Design and Architecture  To describe the activities.
Advertisements

HUAWEI TECHNOLOGIES CO., LTD. Security Level: Slide title :40-47pt Slide subtitle :26-30pt Color::white Corporate Font : FrutigerNext LT Medium Font to.
GFT The Graphical Format of TTCN-3
The Use of TTCN-3 for Software Testing Ina Schieferdecker FOKUS, Berlin
“Bad Smells” in TTCN-3 Test Suites Martin Bisanz, Jens Grabowski, Helmut Neukirchen, Benjamin Zeiss Software Engineering for Distributed Systems Group.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
A conformance test suite for TTCN-3 tools Benjamin Zeiss, T-Systems Andras Kovacs, Broadbit Bogdan Stanca-Kaposta, Testing Technologies.
An overview on the Testing and Test Control Notation version 3 (TTCN-3) Helmut Neukirchen Háskóli Íslands
Architecture Eclipse Framework with Plugin Concept JTransformer Plugin Analysis + Transformation interface: logical Program.language keeps representation.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
20-Jun-15 Eclipse. Most slides from: 2 About IDEs An IDE is an Integrated Development Environment.
Programming Languages Structure
Software evolution.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Software Testing and QA Theory and Practice (Chapter 10: Test Generation from FSM Models) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory.
Testing RAVEN Helmut Neukirchen Faculty of Industrial Engineering, Mechanical Engineering and Computer Science University of Iceland, Reykjavík, Iceland.
Concordia University Department of Computer Science and Software Engineering Click to edit Master title style ADVANCED PROGRAMING PRACTICES API documentation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
ETSI Protocol and Testing Competence Centre
An Approach and Tool for Synchronous Refactoring of UML Diagrams and Models Using Model-to-Model Transformations Hafsteinn Þór Einarsson Helmut Neukirchen.
Modeling Practices in Open Source Software OSS 2013 Koper-Capodistria, Slovenia Omar Badreddin Post Doctoral Fellow, University of Ottawa
Computing and SE II Chapter 18: Tools and Environments Er-Yu Ding Software Institute, NJU.
1 v1.6 08/02/2006 Overview of Eclipse Lectures 1.Overview 2.Installing and Running 3.Building and Running Java Classes 4.Refactoring 5.Debugging 6.Testing.
Refactoring Cristescu Marilena. Definitions Loose Usage: Reorganize a program(or something) As a noun: a change made to the internal structure of some.
Software Refactoring Part I: Introduction Bartosz Walter Advanced Object-Oriented Design Lecture 5.
Sadegh Aliakbary Sharif University of Technology Spring 2012.
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 7.
1 3. Computing System Fundamentals 3.1 Language Translators.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Generative Programming. Automated Assembly Lines.
R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support.
Eclipse Eclipse An IDE is an Integrated Development Environment Different IDEs meet different needs – BlueJ, DrJava are designed as teaching.
Component Based SW Development and Domain Engineering 1 Component Based Software Development and Domain Engineering.
Eclipse 24-Apr-17.
1 CSC/ECE 517 Fall 2010 Lec. 3 Overview of Eclipse Lectures Lecture 2 “Lecture 0” Lecture 3 1.Overview 2.Installing and Running 3.Building and Running.
Refactoring 101 William C. Wake
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Sadegh Aliakbary Sharif University of Technology Spring 2011.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Industrial Project (236504) Advanced programming tools for refactoring Java code in Eclipse Student: Alexander Libov Supervisor: Dr. Ran Ettinger, IBM.
Refactoring - 1 CS494: Intro. to Refactoring Readings: –Refactoring for everyone: How and why to use Eclipse's automated refactoring features. By David.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
Diagnosing Design Problems in Object Oriented Systems Adrian Trifu, Radu Marinescu Proceedings of the 12th IEEE Working Conference on Reverse Engineering.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Refactoring. DCS – SWC 2 Refactoring ”A change made to the internal structure of software to make it easier to understand and cheaper to modify without.
Eclipse 27-Apr-17.
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
TTCN-3 Testing and Test Control Notation Version 3.
Software test automation with UML2.0 TestingProfile & TTCN-3 Maili Markvardt.
CASE Tools and their Effect on Software Quality
Java IDE Dwight Deugo Nesa Matic
XML-based Representation of Test Cases for Distributed Systems Alexander Kraas 7. October 2008.
Advanced Programing practices
Module Road Map Refactoring Why Refactoring? Examples
课程名 编译原理 Compiling Techniques
Eclipse 20-Sep-18.
Tools of Software Development
Component-Level Design
A code metric tool for Software Engineering
Chapter 8 Software Evolution.
Overview of the ETSI Test Description Language
Automation of Control System Configuration TAC 18
An Introduction to Eclipse
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Refactoring.
Presentation transcript:

1 TRex Paul Baker 1, Dominic Evans 1, Jens Grabowski 2, Helmut Neukirchen 2, Benjamin Zeiss 2 The Refactoring and Metrics Tool for TTCN-3 Test Specifications 1 Motorola Labs, Viables Industrial Estate, Basingstoke, UK 2 Software Engineering for Distributed Systems Group, University of Göttingen Presented by Rob Thomson 1

2 TTCN-3 Testing and Test Control Notation –Test specification and test implementation language –Standardised by ETSI and the ITU Originally for functional black-box testing of telecoms systems. Now also for –Internet protocols –Automotive –Aerospace –…

3 Outline Motivation Metrics Refactoring TRex Tool Summary / Outlook

4 Motivation Migration of legacy test suites at Motorola: –Automatic Conversion of tests for a UMTS based component –60,000 lines of code –Hard to read, hard to (re-)use, and hard to maintain Current tools: –IDE functionality (editing, outline, etc.) –Compiler –Test-Management –But: No support for improving test suites!

5 Approach Initial aims: –Assessment of test suites with respect to lessons learnt from experience –Issue detection –Test suite restructuring Assessment and restructuring in TRex using –Metrics –Automated Refactorings

6 Outline Motivation Metrics Refactoring TRex Tool Summary / Outlook

7 TTCN-3 Metrics(1/2) Quantitative measures of a software product –Deliver hints about possible quality issues in test suites TTCN-3 metrics: –Number of non-commented lines of TTCN-3 source code –Number of and references to Test cases Functions Altsteps Component, data and port types Template definitions Parameterized templates

8 TTCN-3 Metrics(2/2) Template Coupling: –Measures the coupling between data description and test behavior

9 Outline Motivation Metrics Refactoring TRex Tool Summary / Outlook

10 Refactoring: Definition „a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior“ Fowler, M.: Refactoring – Improving the Design of Existing Code. Addison-Wesley (1999)

11 TTCN-3 Refactoring Catalog Refactorings are typically described in catalogs Name, Summary, Motivation, Mechanics, Example 28 (of 72) refactorings from Fowler are applicable 20 specific refactorings for TTCN-3 e.g. Alt-steps, groups, concurrency, module parameterization TTCN-3 refactoring catalog grouping: –Test behavior –Data descriptions –Overall test suite structure

12 TTCN-3 Refactoring Catalog TTCN-3 specific refactorings: –Test behavior (5 refactorings) Extract Altstep … –Data descriptions (6 refactorings) Inline Template … –Overall test suite structure (9 refactorings) Extract Module …

13 Refactoring: Inline Template Parameter (1/2) module ExampleModule { type record ExampleType { boolean ipv6, charstring ipAddress } template ExampleType exampleTemplate(charstring addressParameter) := { ipv6 := false, ipAddress := addressParameter } testcase exampleTestCase() runs on ExampleComponent { pt.send(exampleTemplate(" ")); pt.receive(exampleTemplate(" ")); } Original code:

14 module ExampleModule { type record ExampleType { boolean ipv6, charstring ipAddress } template ExampleType exampleTemplate := { ipv6 := false, ipAddress := " " } testcase exampleTestCase() runs on ExampleComponent { pt.send(exampleTemplate); pt.receive(exampleTemplate) } Refactoring: Inline Template Parameter (2/2) Refactored code:

15 Automation Automated calculation of metrics –Locates problematic code pieces using appropriate boundary values –Used for refactoring suggestions Tool supported refactoring –Lowers the probability that the observable behavior is changed due to a refactoring –Takes less time than manual refactoring –Is well known from the Java world: Eclipse JDT, Jetbrains IDEA

16 Outline Motivation Metrics Refactoring TRex Tool Summary / Outlook

17 TRex Features(1/3) TTCN-3 core notation editing –Syntax Highlighting –Content Assist –Outline View –Code Formatter –Text hover –Open Declaration –Find References Compiler Integration –Telelogic Tau G2/Tester

18 TRex Features(2/3) Refactorings (currently): –Rename –Inline Template –Inline Template Parameter –Parameterize Template Metrics –Basic metrics –Metrics-based refactoring suggestions

19 TRex Features(3/3)

20 Outline Motivation Metrics Refactoring TRex Tool Summary / Outlook

21 Summary Metrics and refactoring for TTCN-3: –Address maintenance, reusability and readability problems of converted legacy test suites –Less error-prone and less time consuming due to tool support TRex: –IDE for TTCN-3 –Automatic assessment and restructuring of test suites

22 TRex Availability TRex is open source and available now! Eclipse Public License Interested java developers are welcome to join the project

23 Outlook Enhanced editing functionality More refactoring implementations Metrics based on control-flow and call-graphs Identification of useful metric boundary values Automatic pattern-based code smell detection

24

25 Backup

26 TRex tool chain

27 TRex Architecture