Merken

Lessons learned about testing and TDD

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
this this this this this this this this this this this this this this this this this this this this is and this and this this this this this this this this this this
this
is this is this is this is this this is the 1 that it is this the this is the this this is the this is this this this is this is
this this this and if if if it if it if it if it if this is the this is this this this this this this and this is this this
this is this is the this is this this this this is this is this is this this
this
this this this this
this this this and
this and this and this
this this this and
this is this this is
this this and
this
this
this this this
this this receiver focus
their right to receive for those and so on and of his that means that uh we have to to deal with a set mechanized seems to about the receiver and then for the sake of simplicity from now on when I speak about this topic you can just think we have to to move to some and several mechanisms to know in order to input to the receiver for and
so let's start from the user story use story is what the user user Earth how flight screw helpful from Oct ceased and industry 18 . Turkey's uh you this story said as an astronomer i want to interact with the real test truth common alignment of fate when a figures acute does it out I want to know this set up this actually progress I also want to know if the set up is gone and that case they want to know if the telescope is really to operate eventually I want to get to top all the components of so we should got completely the point that maybe no uh so we we wrote them manually except on in this case is you can see is that should not use a compilation and because our 1 wants to interact with the system from the command line we write the acceptance tests and a we want astronomer to the last and free completely go that point so when that he or she the last OK he said he sees as the what they want which in we starting to write because in this case the effect of test said that we issue are set up take a common picking means that we want a particular configuration of the array of telescopes for instance the debate in the receiver we want to know if the system is starting In this case is starting and we want to know what is the command of set up in this case is the case the less about this non because this system he's not yet but went through the area that was the purpose of of this equal to the common that's this is a menu tests and from now on we start to write in their will to make the 1st 1 is the functional tests the and he so this picture of is that the because should not so the astronomers from the common line issue of set of KKT but this part here get gets is a common and they're called the city middle of the components component of what does it mean I each component as the CLI and he sees basically the interaction from the user point of view we become comport talk we should best be see alignment of the con . 2 2 right of functional
tests the 2nd example we are using a very test library you you can see there are 2 function the first one and that for the component function is called the probably you know about in that picture basically is just some called that the framework in this case if I press the grass before the test to require the test want to about the test In this case it is a cue to me before the test and the worth task the era of references from mean to the component so the path the set up of function is actually the best and the it gets the component reference and that performs the is set up according to C l told them that the assumed 3 set up the case being exactly this being at a we got from the common the common the line after the unitized the assets of exactly the common
that we got from the command line
before this 1 so you can so we want to we find that the CLA method that process being In the case of the starting reactants to the command and set up for this is equal to K K and so on when this is when the system is ready to be 1 the across the top of that to be equal to k k and is ready to be true the
2nd kind of interactions for the components from there the other part of the systems of the system and so far from all the components that means that we have to test the not the CLI but all of the API of the components in this case you can see that the different components can call different methods from of our
components and he sees the integration pairs as you can see that if you do this in the future the future that we call addicted the set medical here and after a we verify that the is starting with and we wait until the components rating and after we are so that the we starting the task force but the most important thing to this slide is that you and if you look nice that we have these things just that start to medical that's because we brought just 1 except just 1 functional tests but now we want to test the the eyes so we have to test different different kinds of of methods so we have more test for the integration test then the function of this the last
step is there unique the units this is the best from their development point of view so for instance inside the body of this this this top of functions there are several rounds of cold and then 46 we want to verify that at the end of the set up of the uh several mechanized position is it's like being a close enough to to the position where we commanded doing this up because at some point and this is not medical there will be a set position so in that case but we we got the expected because each other properties but from integration we were a count of the component is reading we get the component of propositional and we will fight it that the act position is close enough to the expected 1 In our CD have we have for a snapshot of called about the implementation of the component that the title asked about his his this here we get the best of our method with the comport we get to the end of the was he's trying be and up there was
certainly position now this is important point because there probably several mechanize and needs some units to reach position that means that there's we into minutes the but we want to you want the unit test to run line we want the the not afraid outside the unit test unit of called on the test and they should be fast sense we and them continuously when programming therefore they should be independent from the external resources and they must also test error and the conditions are and that means the user used that requires an idea seemed radicals or mock it also because sometimes the external resources are not really able it yeah so let's see the same unit test using their mock objects or somewhere in the case of mock object as a kind of test is this same as the previous 1 by but the unitized here because this line of code where we mark this at position metal and in this certain that test what we do is we got to expected position and after we verify that the said position method was called the we expect that the expected argument because once we know what the set position medical uh what happens is that the that when the method is called the argument he's recorded and not that we can uh checking the recorded argument is that exactly as we expected
the solution i u is about to summarize most so before I told you that In this set up a map of the component that is a call to the device position devices and other component of the interaction interaction with the and to the have using our stuff and protocol so in the In the agnostic it was shown on the tree if you write the other somewhere then we can execute too fast and flying both high-level and low-level this white because if we write about this incredible with the same API of theory of have the form functional test integration test the unit testing component and the FBI's looking exchange because in region of the change for all 4 of them that in itself is not need both texts are called the more colleges of complicated the best on the and the all tests were run in the same way in some way shown and in the have model and we can verify that the real or API hate as suspect what they mean when I mean that if you're calling right there on the outset of the area and to communicate we used to have them here and in you changed called be be caused at e you want to update the server if you want to be sure uh it doesn't feel she doesn't break the against you can run the integration test ideas that the server to be sure hairs tear it seemed Estee or walking and fine very it's still all
reacting we're all multiuser test then an integration more integration tests the functional tests a more functional tests and then manually many tests but this is not a good approach not for instance this is the opinion of the creator of our Robert arrays reveal rates soaring the current the experience leads to a primary focus on the unit test because those are the test people of the region the code design the original justification for best I don't think about the less emphasis on your test because we are no longer going to this process as a design work biased and more emphasis on yes it's system but there are also hoping to understand than this 1 for instance like you know there's the functional test don't tell you what is broken or where to look at the field in the code they just tell you something is broken up something could be could the test the browser forest conditions this is no way to do that because function functional test by the condition of being good and 20 test everything and that I agree with this opinion this is our recent story the Airbus A 3 5 0 or send you a written there by there must be considered this uh from the beginning of this year the I must the use of this thing approach called this thing beyond
yep Rochus this slack is
exactly our workflow my hobby airport mostly with unit tests using the vault on the shape of the unit test is bigger than the what they want every 5 dpi indicates behave as expected that person right integration tests ensure the user expectations so right functional tests where we our acceptance tests standard test-driven
development so will tell the lesson plan if you don't want to test your test will be useless and pattern for doing so British D before fiction about always right at this phase the point out the bog use integration tests to establish component in it yet company during this must be foster consecutive with on out the text if the external resources API stable were 1st in red those markers In the past 3 rented development issues the maximum test called age had to be reduced these or 1 approach the streets with salt content and and that's all beings want be
thank questions lived the huge how much time does it take to write that as compared to rise and go to I think we maybe the sequence but I don't know exactly but part of it is much time but I think it in in the long term of course you have a you a lot of time because in the 1st yes when they're reading have tradition tests and they're called the because in production worst it was reunited because for every you can't change also just 1 line of code and what you don't know what books in missions were perhaps you resolve your problem and you don't know if you don't break something that's user you break something else and that maybe you can realize that after 1 month and because it's a particular condition and so you have to spend a lot of time to realize where we use the to localize the problem is if you have functional test for instance it's the same thing you only function of this that and the 1 month the you know if you have a functional test but you you you see that this phase is this same the genes because you can localize the yeah you just can't conceive you the subproblem but you don't know why so the unit test I'll see you to localize the hair to quickly match your options
Vorlesung/Konferenz
Computeranimation
Physikalisches System
Software
Extrempunkt
Signifikanztest
Computeranimation
Vorlesung/Konferenz
Computeranimation
Besprechung/Interview
Besprechung/Interview
Vorlesung/Konferenz
Extrempunkt
Besprechung/Interview
Vorlesung/Konferenz
Computeranimation
Metropolitan area network
Vorlesung/Konferenz
Computeranimation
Vorlesung/Konferenz
Computeranimation
Computeranimation
Vorlesung/Konferenz
Fokalpunkt
Vorlesung/Konferenz
Computeranimation
Punkt
Interaktives Fernsehen
Signifikanztest
Computeranimation
Arithmetische Folge
Reelle Zahl
Punkt
Zusammenhängender Graph
Oktaeder
Konfigurationsraum
Figurierte Zahl
Gerade
Soundverarbeitung
Softwaretest
Signifikanztest
Kraftfahrzeugmechatroniker
Lineares Funktional
Sichtenkonzept
Physikalisches System
Ein-Ausgabe
Teilmenge
Menge
Flächeninhalt
Rechter Winkel
ATM
Mereologie
Ordnung <Mathematik>
Instantiierung
Signifikanztest
Softwaretest
Lineares Funktional
Abstrakter Syntaxbaum
Ausgleichsrechnung
Framework <Informatik>
Signifikanztest
Computeranimation
Task
Metropolitan area network
Programmbibliothek
Zusammenhängender Graph
GRASS <Programm>
Gravitationsgesetz
Personal Area Network
Gerade
Physikalisches System
Metropolitan area network
Prozess <Physik>
Desintegration <Mathematik>
Mereologie
Interaktives Fernsehen
Punkt
Zusammenhängender Graph
Physikalisches System
Extrempunkt
Signifikanztest
Computeranimation
Subtraktion
Punkt
Desintegration <Mathematik>
Implementierung
Extrempunkt
Zählen
Signifikanztest
Computeranimation
Task
Metropolitan area network
Task
Einheit <Mathematik>
Zusammenhängender Graph
Softwareentwickler
Große Vereinheitlichung
Implementierung
Gammafunktion
Softwaretest
Signifikanztest
Lineares Funktional
Prinzip der gleichmäßigen Beschränktheit
Sichtenkonzept
Kategorie <Mathematik>
Aussage <Mathematik>
Bitrate
Integral
Rechenschieber
Uniforme Struktur
Menge
Forcing
Instantiierung
Komponententest
Punkt
Mathematisierung
Interaktives Fernsehen
Signifikanztest
Code
Physikalische Theorie
Computeranimation
Netzwerktopologie
Metropolitan area network
Informationsmodellierung
Bildschirmmaske
Einheit <Mathematik>
Kontrollstruktur
Zusammenhängender Graph
Gerade
Gammafunktion
Implementierung
Signifikanztest
Softwaretest
Parametersystem
Kraftfahrzeugmechatroniker
Lineares Funktional
Protokoll <Datenverarbeitungssystem>
Datenmodell
Systemaufruf
Integral
Objekt <Kategorie>
Mapping <Computergraphik>
Uniforme Struktur
Menge
Flächeninhalt
Konditionszahl
Server
Simulation
Fehlermeldung
Signifikanztest
Softwaretest
Lineares Funktional
Prozess <Physik>
Wald <Graphentheorie>
Komponententest
Browser
Physikalisches System
Bitrate
Fokalpunkt
Signifikanztest
Code
Computeranimation
Integral
Uniforme Struktur
Datenfeld
Konditionszahl
Array <Informatik>
Instantiierung
Softwaretest
Signifikanztest
Shape <Informatik>
Punkt
Komponententest
Kategorie <Mathematik>
Desintegration <Mathematik>
Automatische Handlungsplanung
Single Sign-On
Signifikanztest
Computeranimation
Integral
Teilmenge
Metropolitan area network
Erwartungswert
Uniforme Struktur
Rechter Winkel
Mustersprache
Vorlesung/Konferenz
Zusammenhängender Graph
Inhalt <Mathematik>
Softwareentwickler
Phasenumwandlung
Standardabweichung
Softwaretest
Signifikanztest
Lineares Funktional
Folge <Mathematik>
Komponententest
Mathematisierung
Biprodukt
Term
Code
Computeranimation
Konfiguration <Informatik>
Metropolitan area network
Konditionszahl
Mereologie
Kontrollstruktur
Vorlesung/Konferenz
Phasenumwandlung
Gerade
Instantiierung
Lesen <Datenverarbeitung>

Metadaten

Formale Metadaten

Titel Lessons learned about testing and TDD
Serientitel EuroPython 2015
Teil 129
Anzahl der Teile 173
Autor Buttu, Marco
Lizenz CC-Namensnennung - keine kommerzielle Nutzung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben
DOI 10.5446/20158
Herausgeber EuroPython
Erscheinungsjahr 2015
Sprache Englisch
Produktionsort Bilbao, Euskadi, Spain

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Marco Buttu - Lessons learned about testing and TDD One day our software will go in production, and so shortly we will pay dearly for our youthful mistakes. Without regression tests, we will be in deep trouble. If we have regression tests, but we did not have performed TDD, we should probably increase the effort in bug fixing and maintenance, since we do not have enough code coverage and our tests come out complex. By retracing the author youthful mistakes, we will see a complete development workflow, from the user story to the low-level tests, in order to highlight the differences between functional, integration and unit tests, the best practices, and the lessons learned by the author during the development of the [Sardinia Radio Telescope] control software.
Schlagwörter EuroPython Conference
EP 2015
EuroPython 2015

Zugehöriges Material

Ähnliche Filme

Loading...