20 Pages

19-junit

Course: CIT 597, Fall 2009
School: UPenn
Rating:
 
 
 
 
 

Word Count: 1744

Document Preview

10, JUnit Apr 2009 Test suites Obviously you have to test your code to get it working in the first place You can do ad hoc testing (running whatever tests occur to you at the moment), or You can build a test suite (a thorough set of tests that can be run at any time) Its a lot of extra programming Disadvantages of a test suite This is true, but use of a good test framework can help quite a bit...

Register Now

Unformatted Document Excerpt

Coursehero >> Pennsylvania >> UPenn >> CIT 597

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
10, JUnit Apr 2009 Test suites Obviously you have to test your code to get it working in the first place You can do ad hoc testing (running whatever tests occur to you at the moment), or You can build a test suite (a thorough set of tests that can be run at any time) Its a lot of extra programming Disadvantages of a test suite This is true, but use of a good test framework can help quite a bit False--Experiments repeatedly show that test suites reduce debugging time more than the amount spent building the test suite You dont have time to do all that extra work Advantages of a test suite Reduces total number of bugs in delivered code Makes code much more maintainable and refactorable This is a huge win for programs that get actual use! 2 XP approach to testing In the Extreme Programming approach, Tests are written before the code itself If code has no automated test case, it is assumed not to work A test framework is used so that automated testing can be done after every small change to the code This may be as often as every 5 or 10 minutes If a bug is found after development, a test is created to keep the bug from coming back Fewer bugs More maintainable code Continuous integration--During development, the program always works--it may not do everything required, but what it does, it does right 3 Consequences Rhythm There is a rhythm to developing software unit tests first. You create one test to define some small aspect of the problem at hand. Then you create the simplest code that will make that test pass. Then you create a second test. Now you add to the code you just created to make this new test pass, but no more! Not until you have yet a third test. You continue until there is nothing left to test. http://www.extremeprogramming.org/rules/testfirst.html 4 JUnit JUnit is a framework for writing tests JUnit was written by Erich Gamma (of Design Patterns fame) and Kent Beck (creator of XP methodology) JUnit uses Javas reflection capabilities (Java programs can examine their own code) JUnit helps the programmer: define and execute tests and test suites formalize requirements and clarify architecture write and debug code integrate code and always be ready to release a working version JUnit is not yet (as far as I know) included in Suns SDK, but an increasing number of IDEs include it BlueJ, JBuilder, and Eclipse now provide JUnit tools 5 Terminology A test fixture sets up the data (both objects and primitives) that are needed to run tests Example: If you are testing code that updates an employee record, you need an employee record to test it on A unit test is a test of a single class A test case tests the response of a single method to a particular set of inputs A test suite is a collection of test cases A test runner is software that runs tests and reports results An integration test is a test of how well classes work together JUnit provides some limited support for integration tests 6 Structure of a JUnit test class Suppose you want to test a class namedFraction publicclassFractionTest extendsjunit.framework.TestCase{ This is the unit test for the Fraction class; it declares (and possibly defines) values used by one or more tests This is the default constructor Creates a test fixture by creating and initializing objects and values Releases any system resources used by the test fixture These methods contain tests for the Fraction methods add(), toString(), etc. (note how capitalization changes) 7 publicFractionTest(){} protectedvoidsetUp() protectedvoidtearDown() publicvoidtestAdd(), publicvoidtestToString(), etc. Assert methods I Within a test, Call the method being tested and get the actual result assert what the correct result should be with one of the provided assert methods These steps can be repeated as many times as necessary An assert method is a JUnit method that performs a test, and throws an AssertionFailedError if the test fails JUnit catches these Errors and shows you the result staticvoidassertTrue(booleantest) staticvoidassertTrue(Stringmessage,booleantest) Throws an AssertionFailedError if the test fails The optional message is included in the Error staticvoidassertFalse(booleantest) staticvoidassertFalse(Stringmessage,booleantest) Throws an AssertionFailedError if the test fails 8 Example: Counter class For the sake of example, we will create and test a trivial counter class The constructor will create a counter and set it to zero The increment method will add one to the counter and return the new value The decrement method will subtract one from the counter and return the new value This has the advantages described earlier Depending on the JUnit tool we use, we may have to create the class first, and we may have to populate it with stubs (methods with empty bodies) We write the test methods before we write the code Dont be alarmed if, in this simple example, the JUnit tests are more code than the class itself 9 JUnit tests for Counter publicclassCounterTestextendsjunit.framework.TestCase{ Countercounter1; publicCounterTest(){}//defaultconstructor protectedvoidsetUp(){//createsa(simple)testfixture counter1=newCounter(); } protectedvoidtearDown(){}//noresourcestorelease assertTrue(counter1.increment()==1); publicvoidtestIncrement(){ assertTrue(counter1.increment()==2); } publicvoidtestDecrement(){ assertTrue(counter1.decrement()==1); } } Note that each test begins with a brand new counter This means you dont have to worry about the order in which the tests are run 10 The Counter class itself publicclassCounter{ intcount=0; publicintincrement(){ return++count; } publicintdecrement(){ returncount; } publicintgetCount(){ returncount; } } Is JUnit testing overkill for this little class? The Extreme Programming view is: If it isnt tested, assume it doesnt work You are not likely to have many classes this trivial in a real program, so writing JUnit tests for those few trivial classes is no big deal Often even XP programmers dont bother writing tests for simple getter methods such as getCount() We only used assertTrue in this example, but there are additional assert methods 11 Assert methods II assertEquals(expected,actual) assertEquals(Stringmessage,expected,actual) This method is heavily overloaded: arg1 and arg2 must be both objects or both of the same primitive type For objects, uses your equals method, if you have defined it properly, as publicbooleanequals(Objecto)--otherwise it uses == assertSame(Objectexpected,Objectactual) assertSame(Stringmessage,Objectexpected,Objectactual) Asserts that two objects refer to the same object (using ==) assertNotSame(Objectexpected,Objectactual) assertNotSame(Stringmessage,Objectexpected,Objectactual) Asserts that two objects do not refer to the same object 12 Assert methods III assertNull(Objectobject) assertNull(Stringmessage,Objectobject) Asserts that the object is null assertNotNull(Objectobject) assertNotNull(Stringmessage,Objectobject) Asserts that the object is null fail() fail(Stringmessage) Causes the test to fail and throw an AssertionFailedError Useful as a result of a complex test, when the other assert methods arent quite what you want 13 The assert statement Earlier versions of JUnit had an assert method instead of an assertTrue method The name had to be changed when Java 1.4 introduced the assert statement assertboolean_condition; assertboolean_condition:error_message; Both forms throw an AssertionFailedError if the boolean_condition is false The second form, with an explicit error message, is seldom necessary Use it to document a condition that you know to be true Use assert false; in code that you know cannot be reached (such as a default case in a switch statement) Do not use assert to check whether parameters have legal values, or other 14 places where throwing an Exception is more appropriate There are two forms of the assert statement: When to use an assert statement: BlueJ BlueJ 1.3.0 provides support with commands such as Create TestClass and CreateTestMethod You can create objects on the test bench and move them to the fixture (and back again) BlueJ also has a recording mode where you create and manipulate objects, and BlueJ turns your actions into test code This is a first implementation and is still quite buggy ...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

UPenn - CIT - 597
Aspect-Oriented ProgrammingApr 10, 2009Programming paradigmsProcedural programming Executing a set of commands in a given sequence Fortran, C, Cobol Evaluating a function defined in terms of other functions Lisp, ML, OCaml Proving a theorem
UPenn - CIT - 591
JUnitApr 10, 2009Test suitesObviously you have to test your code to get it working in the first place You can do ad hoc testing (running whatever tests occur to you at the moment), or You can build a test suite (a thorough set of tests that
UPenn - CIT - 597
ServletsApr 10, 2009ServersA server is a computer that responds to requests from a clientTypical requests: provide a web page, upload or download a file, send emailA server is also the software that responds to these requests; a clien
UPenn - P - 414
Physics 414/521 Lecture 1Professor Joseph Kroll Dr. Jose Vithayatil University of PennsylvaniaOutline Standard units Discussion of uncertainties statistical systematic reminder about propagation of uncertainties Mean & VarianceWe do not u
UPenn - P - 364
Checklist for Physics 364 Lab #3: ac Circuits=1. Verifying that Kirchhoff's laws are satisfied for complex impedance o They should have schematic of the circuit and a description of where they placed the oscilloscope probes. The schematic
UPenn - P - 364
yytkrty7@2ee&te l { d q h h d f d q h p t o o l h 3~qx3Q7Qgrwrj{zQ7Q`rTyh`w%ct(3rxywj!g!d h% r!gx!YCSkrQwj!rwx%mr!gQj`QSlYjQx!%`rh d f f s on l h d } d f { d q h fd s q s
UPenn - P - 364
(Wi}s7@2t& z A " E A H B 6 $ " E 4 A E d x d h g xp h z z y d d g }mifSUsn%&5!bjuWYtjTs3tS2rmI!msfVe!j u ex xy u p il d y u ~ dx g l d i d d x d uYkIk!Qt!WfxijesWgiQ!t5YVWjlYim!5Ybfe3fj!jW(vflmn
UPenn - P - 364
Physics 364: Some General Remarks about the Laboratory 17 Sep. 2001 Prof. Kroll Please read this information before coming to the rst laboratory session on 17 September 2001. Information about the laboratories (schedule, lab write-ups, etc.) can be f
UPenn - P - 364
Physics 364 Fall 2001 Laboratories Prof. Kroll_ | | | | | | | | | | | | |BARBOUR,SAMUEL 10103593 | | | | | | | | | | | | |_|_|_|_|_|
UPenn - P - 364
Max,For the first three homework problems, I would like you to check oneof the problems carefully (specified below) and then see if theyattempted the other problems. The problems I would like to see checkedcarefully areProblem Set #1: Problem
UPenn - P - 364
Kirchhos Voltage Law (KVL): the sum of voltages around any closed loop is zero, that is, voltage gains equal voltage losses. Kirchhos Current Law (KCL): the sum of currents into a node is zero, that is, the sum of currents into the node equals the su
UPenn - P - 364
Dear Class,If you are receiving this message, it is because you are currently enrolledto take Physics 364 or 521 this Fall semester. I am writing to you to provideyou with some important information about the class. There is a web page for the
UPenn - DPF - 2006
Observation of B0s B0s OscillationsThe CDF CollaborationJoseph Kroll University of Pennsylvania1st St. Ocean City, NJ, Feb. 7, 2003, H2O 350 FDPF Waikiki, HI 2 Nov 2006Results presented today are contained in two papers:) on ti ra o ab 6 )
UPenn - DOE - 2005
Penn CDF B Physics OverviewJoseph Kroll Penn DOE Site Visit 8 August 2005Topics Bs & B0 Flavor oscillations ( ms) leadership Kroll, Jones, Oldeman flavor tagging Jones, Usynin, Kroll lifetime resolution Heijboer trigger monitoring & innov
UPenn - DOE - 2005
CDF OverviewJoseph Kroll Penn DOE Site Visit 8 9 August 2005Context of this presentationPast 4 years CDF II has moved from construction & commissioning maintaining & analyzing Penn CDF Group has made major contributions to CDF II & made a major
UPenn - UCC - 1
1-105. Territorial Application of the Act; Parties Power to ChooseApplicable Law and Judicial Forum(a) Unless the law determining the rights and obligations of parties with respect to anyaspect of a transaction governed by this Act has been se
UPenn - N - 03
Statistical Phrase-Based Translation Proceedingsof HLT-NAACL 2003 Main Papers , pp. 48-54 Edmonton, May-June 2003Philipp Koehn, Franz Josef Och, Daniel Marcu Information Sciences Institute Department of Computer Science University of Southern Cal
UPenn - C - 96
H M M - B a s e d Word Alignment in Statistical TranslationStephan Vogel Hermann Ney Christoph Tillmann L e h r s t u h l ffir I n f o r m a t i k V, R W T H A a c h e n D-52056 Aachen, Germany {vogel, n e y , t illmann}@inf ormat ik. rwth-aachen, d
UPenn - P - 03
Chunk-based Statistical TranslationTaro Watanabe, Eiichiro Sumita and Hiroshi G. Okuno {taro.watanabe, eiichiro.sumita}@atr.co.jp ATR Spoken Language Translation Department of Intelligence Science Research Laboratories and Technology 2-2-2 Hikarida
UPenn - C - 00
ABL: Alignment-Based LearningMenno van Zaanen School of C o m p u t e r S t u d i e s University of Leeds LS2 9 J T L(~eds UK menno@scs, l e e d s , a c . ukAbstract This ])al)er introdu(:es a new tyl)e of grammar learning algorithm, iilst)ired l)
UPenn - P - 00
An Information-Theory-Based Feature Type Analysis for the Modelling of Statistical ParsingSUI Zhifang , ZHAO Jun , Dekai WU Hong Kong University of Science & Technology Department of Computer Science Human Language Technology Center Clear Water B
UPenn - P - 03
A spoken dialogue interface for TV operations based on data collected by using WOZ methodJun Yeun-Bae Goto Kim NHK STRL NHK STRL Human Science Human Science Tokyo 157-8510 Tokyo 157-8510 Japan Japangoto.j-fw @nhk.or.jp kimu.y-go @nhk.or.jpMasaru
UPenn - P - 03
Loosely Tree-Based Alignment for Machine TranslationDaniel Gildea University of Pennsylvania dgildea@cis.upenn.eduAbstractWe augment a model of translation based on re-ordering nodes in syntactic trees in order to allow alignments not conforming
UPenn - C - 90
Toward Memory-based TranslationSatoshi S A T O and Ma.koto N A G A O Dept. of Electrical Engineering, K y o t o University Y o s h i d a - h o n m a c h i , Sa.kyo, K.yoto, 606, Ja.pan sa.to@kuee.kyoto-u.ac.jpAbstractAn essential problem of examp
UPenn - J - 93
Machine Translation: A Knowledge-Based Approach Sergei Nirenburg, Jaime Carbonell, Masaru Tomita, and Kenneth Goodman(Carnegie Mellon University) San Mateo, CA: Morgan Kaufmann Publishers, 1992, xiv + 258 pp. Hardbound, ISBN 1-55860-128-7, $39.95T
UPenn - C - 00
Automatic Corpus-Based Thai Word Extraction with the C4.5 Learning AlgorithmVIRACH SORNLERTLAMVANICH, TANAPONG POTIPITI AND THATSANEE CHAROENPORN National Electronics and Computer Technology Centel, National Science and Technology Development Agency
UPenn - C - 90
Reversible Unification Based M a c h m . FranslatlonGertjan van Noord OTS RUU Trans 10 3,512 JK Utrecht Valmoord~hutruu59.BH~netMarch 28, 1990Abstract[n this paper it will be shown how unification g r a m m a r s can be used to build a reversib
UPenn - C - 00
Chart-Based Transfer Rule Application in Machine TranslationAdam MeyersNew York University meyers@cs.nyu.edu M i c h i k o Kosaka Monlnouth University kosaka@monmouth.eduR a l p h GrishInanNew York University grishman@cs.nyu.eduAbstract35"ans
UPenn - P - 99
Corpus-Based Identification of Non-Anaphoric N o u n PhrasesD a v i d L. B e a n and E l l e n R i l o f fD e p a r t m e n t of C o m p u t e r Science University of U t a h Salt Lake City, U t a h 84112 {bean,riloff}@cs.utah.eduAbstract Corefer
UPenn - P - 90
ZERO MORPHEMES IN UNIFICATION-BASED COMBINATORY CATEGORIAL GRAMMAR Chinatsu Aone The University of Texas at Austin & MCC 3500 West Balcones Center Dr. Austin, TX 78759 (aone@mcc.com) ABSTRACT In this paper, we report on our use of zero morphemes in U
UPenn - P - 96
A N e w Statistical Parser Based on B i g r a m Lexical D e p e n d e n c i e sCollins* Dept. of Computer and Information Science University of Pennsylvania P h i l a d e l p h i a , P A , 19104, U . S . A . mcollins@gradient, cis.upenn, eduMichae
UPenn - P - 99
Designing a Task-Based Evaluation M e t h o d o l o g y for a Spoken Machine Translation S y s t e mKavita Thomas L a n g u a g e Technologies I n s t i t u t e Carnegie Mellon University 5000 Forbes Avenue P i t t s b u r g h , PA 15213, USAkavita
UPenn - P - 03
An Ontology-based Semantic Tagger for IE systemNarj` s Boufaden e Department of Computer Science Universit de Montr al e e Quebec, H3C 3J7 Canada boufaden@iro.umontreal.caAbstractIn this paper, we present a method for the semantic tagging of word
UPenn - C - 96
NL Domain Explanations in Knowledge Based MATGalia Angelova, Kalina Bontcheva 1Bulgarian Academy of Sciences, Linguistic Modelling Laboratory A c a d . G, B o n c h e v Str. 2 5 A , 1113 S o f i a , B u l g a r i a , { galja,kalina} @ b g c i c t .
UPenn - P - 03
Deverbal Compound Noun Analysis Based on Lexical Conceptual StructureTeruo Koyama Koichi Takeuchi Kyo Kageura Human and Social Information Research Division National Institute of Informatics 2-1-2 Hitotsubashi, Chiyodaku, Tokyo 101-8430, Japan koich
UPenn - D - 07
Large-Scale Named Entity Disambiguation Based on Wikipedia DataSilviu CucerzanMicrosoft Research One Microsoft Way, Redmond, WA 98052, USA silviu@microsoft.comAbstractThis paper presents a large-scale system for the recognition and semantic disa
UPenn - P - 01
A Syntax-based Statistical Translation ModelKenji Yamada and Kevin Knight Information Sciences Institute University of Southern California 4676 Admiralty Way, Suite 1001 Marina del Rey, CA 90292 kyamada,knight @isi.edu AbstractWe present a syntax-b
UPenn - C - 02
Semantics-based Representation for Multimodal Interpretation in Conversational SystemsJoyce ChaiIBM T. J. Watson Research Center 19 Skyline Drive Hawthorne, NY 10532, USA{jchai@us.ibm.com}Abstract To support context-based multimodal interpretati
UPenn - A - 92
A Simple Rule-Based Part of Speech TaggerEric Brill * D e p a r t m e n t of C o m p u t e r S c i e n c e University of Pennsylvania P h i l a d e l p h i a , P e n n s y l v a n i a 19104U.S.A.brill@unagi.cis.upenn.edu Abstract Automatic part o
UPenn - P - 05
A Hierarchical Phrase-Based Model for Statistical Machine TranslationDavid Chiang Institute for Advanced Computer Studies (UMIACS) University of Maryland, College Park, MD 20742, USA dchiang@umiacs.umd.eduAbstractWe present a statistical phrase-b
UPenn - P - 06
Investigations on Event-Based SummarizationMingli Wu Department of Computing The Hong Kong Polytechnic University Kowloon, Hong Kong csmlwu@comp.polyu.edu.hkAbstractWe investigate independent and relevant event-based extractive mutli-document su
UPenn - N - 06
Thai Grapheme-Based Speech RecognitionPaisarn Charoenpornsawat, Sanjika Hewavitharana, Tanja SchultzInteractive Systems Laboratories, School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 {paisarn, sanjika, tanja}@cs.cmu.eduA
UPenn - P - 01
An Algebra for Semantic Construction in Constraint-based GrammarsAnn Copestake Computer Laboratory University of Cambridge New Museums Site Pembroke St, Cambridge, UKaac@cl.cam.ac.ukAlex Lascarides Division of Informatics University of Edinburgh
UPenn - C - 02
Machine Translation Based on NLG from XML-DBYohei Seki Aoyama Gakuin / Department of Informatics, University The Graduate University for Advanced Studies (Sokendai) Abstract Ken'ichi Harada Department of Computing Science Keio UniversityThe purpos
UPenn - E - 06
Word Sense Induction: Triplet-Based Clustering and Automatic EvaluationStefan Bordag Natural Language Processing Department University of Leipzig Germany sbordag@informatik.uni-leipzig.deAbstractIn this paper a novel solution to automatic and uns
UPenn - P - 89
Unification-BasedSemantic InterpretationRobert C. Moore Artificial Intelligence Center SRI International Menlo Park, CA 94025 AbstractWe show how unification can be used to specify the semantic interpretation of natural-language expressions, inc
UPenn - N - 04
Feature-based Pronunciation Modeling for Speech RecognitionKaren Livescu and James Glass MIT Computer Science and Articial Intelligence Laboratory Cambridge, MA 02139, USA {klivescu, glass}@csail.mit.eduAbstractWe present an approach to pronuncia
UPenn - J - 92
Class-Based n-gram Models of Natural LanguageP e t e r F. B r o w n " P e t e r V. d e S o u z a * R o b e r t L. Mercer* IBM T. J. Watson Research Center V i n c e n t J. D e l l a Pietra* J e n i f e r C. Lai*We address the problem of predicting
UPenn - J - 95
Transformation-Based Error-Driven Learning and Natural Language Processing: A Case Study in Part-of-Speech TaggingEric Brill*The Johns Hopkins UniversityRecently, there has been a rebirth of empiricism in the field of natural language processing.
UPenn - E - 06
Adaptive Transformation-based Learning for Improving Dictionary TaggingBurcu Karagol-Ayan, David Doermann, and Amy Weinberg Institute for Advanced Computer Studies (UMIACS) University of Maryland College Park, MD 20742 {burcu,doermann,weinberg}@umia
UPenn - E - 06
Phrase-Based Backoff Models for Machine Translation of Highly Inected LanguagesMei Yang Department of Electrical Engineering University of Washington Seattle, WA, USA yangmei@ee.washington.edu Katrin Kirchhoff Department of Electrical Engineering Un
UPenn - P - 04
Towards a Semantic Classication of Spanish Verbs Based on Subcategorisation InformationEva Esteve Ferrer Department of Informatics University of Sussex Brighton, BN1 9QH, UK E.Esteve-Ferrer@sussex.ac.uk AbstractWe present experiments aiming at an a
UPenn - N - 03
A Phrase-Based Unigram Model for Statistical Machine TranslationChristoph Tillmann and Fei Xia IBM T.J. Watson Research Center Yorktown Heights, NY 10598 {ctill,feixia}@us.ibm.comAbstractIn this paper, we describe a phrase-based unigram model fo
UPenn - CIS - 610
TensorTextures: Multilinear Image-Based RenderingM. Alex O. Vasilescu and Demetri Terzopoulos University of Toronto, Department of Computer Science New York University, Courant Institute of Mathematical SciencesFigure 1: Frames from the Treasure C
UPenn - P - 84
Features and ValuesLauri Karttunen University of Texas at Austin Artificial Intelligence Center SRI International and Center for the Study of Language and Information Stanford UniversityAbstractThe paper discusses the linguistic aspects of a new
UPenn - T - 87
Unification a n d the n e w g r a m m a t i s m Steve Pulman University of Cambridge Computer Laboratory Corn Exchange Street Cambridge C B 2 3QG, UK.Whatare w e talking about?The prototypical unification grammar consists of a context-free skel
UPenn - H - 01
Guidelines for Annotating Temporal InformationInderjeet Mani, George WilsonThe MITRE Corporation, W640 11493 Sunset Hills Road Reston, Virginia 20190-5214, USA +1-703-883-6149Lisa FerroThe MITRE Corporation, K329 202 Burlington Road, Rte. 62 Bed
UPenn - C - 86
The computational complexity of sentence derivation in functional unification grammarGraeme Ritchie Department of Artificial Intelligence University of Edinburgh Edinburgh EHI IHNAbstract Functional unification (FU) grammar is a general linguisti
UPenn - E - 87
DECLARATIVE k VIEVNOOEL FOR DEPENDENCY PARSING INTO BLACKBOARD METHOOOLOGY-Vatkonen, K., J i p p i n e n , H., L e h t o t a , A. and Ytltammi, KIELIKOHE-pr~ject, SITRA Foundation P.O.Box 329, S F - 0 0 1 2 1 H e t s i n k i FinLand t e L . i n
UPenn - A - 97
Layout & Language: Preliminary experiments in assigning logical structure to table cellsMatthew Hurst and Shona Douglas Language Technology Group, Human Communication Research Centre, University of Edinburgh, Edinburgh EH8 9LW UK { M a t t h e w . H
UPenn - C - 88
AN I N T E G R A T E D MODEL F O R T H E TREATMENT OF TIME I N MT- SYSTEMSM. Meya Siemens CDS c/Luis Muntadas,5 CORNELLA, 08940-BARCELONA SpainJ. Vidul EUROTRA-E Ctra. Vallvidriera, 25.27 08017-BARCELONAAbstractOne of the ways to achieve a goo