Bestand wählen
Merken

Say More

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
and this this the fact that
that is to but they had ourselves thank you
I so I and J I work on the human space for acute and I've been an amber aficionado fall how long since 2012 also and I care about the things I'm going to talk about in this talk because I think has had a fundamental an outsized impact on raising the bar for what Web applications can be and I think the way the communities change that is by making our values and standards to which we hold ourselves intellectuals and repeating over the years so this is kind of to you take that whole and think about where else it could be applied to your idea what kind of talk this is It's not taken its toll you want most of you can practically straightaway It's not deep dive into how things work today and is not really any kind of grand vision of the future it's more of the what pulling some friends and saying when and the focus use you I tested it's perfect but I'm going on after all the things that so we just want to introduce I think most testing tool kit is incredible and on the I think there are few STK frameworks that provide as much out of the box incentive you why testing them the does that said we have great so this it's even more important to ask questions of them not to take it for granted to keep on pushing and see what they might go so as well would you ask questions if you like testing what else we can get it to say about applications and I've got to high-level sources of inspiration to drive its question the 1st is Apple's you testing toolkit which actually only arise in 2015 book when it did it had a really interesting characteristic don't play you collect from the WWDC announcement from that year so
that I wanna talk a little bit about accessibility inuit so I mentioned earlier the accessibility data is what makes you a test possible so given
that it's not hard to see how the quality quality of the accessibility data really impacts you test in fact the better the accessibility date of your application the easier it is to write test and more reliable those tests or over time so you get a double benefit when you improve the accessibility in your application you not only made it easier for urine testing we've improved experience for all of our disabled users so it really encourage you to keep that in mind when you're working with you I tested accessible when I 1st saw this tool on the internet this idea way it's it's so elegant a reciprocal forcing function that gives you a double benefit of making your apps more accessible and the thing is I think Apple probably arises out of necessity if you've ever installed an act on you map and how they ask you to enable access assisted devices what is really asking for is give me scripting access and it so happens that the accessibility tree is the most consistent performers scripting access you can find on the part for no on the way we have we always have access to everything we want to touch and we can simulate any event we wanted when it comes to thinking what if we did have that same constraints what if we could somehow in homes access to the
accessibility upon our own want tests could we be so of course down the same virtuous half that has developers of so that's the inspiration the 2nd is very much of the Web itself It's
not to notice leads Hairer Computer it's the room at least power which sense
expressing constraints relationships and processing instructions in less powerful languages increases the flexibility with which information can be reused the less powerful the language the more you can do with the data stored in that language but which again got me to thinking this always been validated over the course of the winds systems and it's been validated it in our microcosm as well this templating language has become in some sense simpler as questions of scope of been resolved over the years while the underlying engine has become orders of magnitude more powerful maybe we can trace how you I test in the same way if we could we use a less powerful language we can't we interpret what has to mean over time and more to them as time passes and that meaning come not just from our own apps what from community solutions for adults and again the user that we already have a really constrained language in tests essentially from most kind of behaviors that we want to talk about is these for birds I think we can still push it further so that's what again don't doing this so we're going to say this UI test this acceptance test and we're going to ask questions of it can we impose access the accessibility can we use a less powerful language it can we get this test to say more about application so let's begin by looking at filling so the 1st argument filling in space select which I would describe as as a kind of maximally powerful language for this context at least not Turing-complete language I don't think but you can reach as far as the Domus he wants you can be arbitrarily precise about what you all what your grab and that thinking about the role of these powers the more precisely what today the less you couldn't reinterpret what that means in the future so can be made that 1st argument can we define it in a less powerful language and if you want to impose access the accessibility then the answer what we put in that place is quite obvious we put the semantic label the thing we're trying to interact with the Varela test like this what benefits will get I think Rivest in the room probably recognize this as being basically what we borrow looks like and it might freeze capybara works quite well so do we have at this useful set aside the fact that it's more readable we could find the thing is like this thing is it was a little bit more about how Apple's misbehaving this test failed because I could not find form controlled labeled boarding so I looked at my temple hastily implemented some play and I find indeed I miss the label off of the body text area and it might seem contrived but I can't imagine myself on the lazy they looking in the design of expected and going out you know this this you iPad everyone recognizes everyone knows what that big text area in the middle is full and needs for label on this but of course for screen reader user the screen readers simply going to announce text field but not tell them what it's for what value is meant to be contained which is a broken you want it's a broken confuse experience which you need not deliver because it's so easy to fix so that will change of test would be green again so this isn't how filling works today so how might we implement a feeling that does work like this so rather than importing fill in from test helpless let's say that we import some also version of fill the racks and was the vision it might look like this rather this lectures at 1st argument it takes a label and then it goes in search of a form control that is labeled with that text for some definition of labeled by some definition that matches the accessibility mechanics of the browser and then a delegates to you it's a finding the phone control will have more way to do it would be to find a label that contains that text and then use the adult controlled API to find the associated control for that label if we can't find things that way we can go and look for a control that is labeled some other way and then if we can't find anything that is labeled by definition of labeled we can throw errors we a more specific errors depending on circumstances finding a label is simply finding whole all labels in the dominant finding the 1 that contains a text were interested in and finding a control all this this is an incomplete idea of what it would look like to you find a control labeled in another way but you can imagine it might be it input ports exterior or select whose title aria label all placeholder again contains the text were interested so now we've got readable test but they're not so says something more it so says the halftone controls are semantically labeled I didn't warn us if we break that contract to the user so let's turn our attention to click analysts do exactly the same substitution any less powerful language as the argument now might get failure like this I could not find button containing submit we have a look of submit button and indeed I really wanted an animated GIF in of bit so I wrote this the the marker and now I realize it's a terrible idea with that least broken experience so was replace it with a text to be understood by everyone I noticed a green what might this optimistically helper look like what then is the same kind of idea we're going to we interpret what that argument means going certain element that matches up criteria and through an error if it can't find anything and then delegates a test of this place the finding element again it's not a complete definition of what it means for an element to be applicable like that to find a clickable thing but you can buy them for the beauty is if the exact definition is not included in the text it can change over time it can become more spec so there will be 4 above on a within a draft or something with the about role that's matches this text of passing when matching could mean it contains a text sorry its title is that text or it's label includes text against adjusted flavor not strictly an implementation but tissue it's to demonstrate the same could be relatively easy to write OK so now we've taken steps in the direction of applying rule-based power and imposing of the accessibility now is ask more Morgan this test site how about getting between elements you say something about that so now I look this text and it's almost like a kind of script he would give to human test this page I can imagine muscle sitting down filling in the title example instincts have suddenly in this place you tap type that site that returns in the form what test could a so that we are again using that contract for what time does what moving focused what if they could fail like this these would have to tap backwards to reach the bottom containing submit again on my lazy Adobe days I can imagine myself like looking at a design and thinking OK so it's like a title MIT Parliament secondary feels a bit here with my rudimentary CSS skills I would be OK so I think that but the states that have to put the submit button the above EM stuff to get the land of 1 because this is this is weird you didn't have to submit an and have again using it the secondary fields and then have to sort rewind to get back even worse screen readies away you might get that submit button and quite rightly really that there is nothing beyond it and never discover the secondary fields so as we move that's where it belongs and that has to be so what might help that that that says this property of you your you I look like so take our foot by label ranking helpless and a bit more to it we all use some kind of help a function calculate tabs to the target element and the specific error message will say that if times is less than 0 by even have the time at which to get to the target it will start there calculates to me again this is a naive implementation but it's not as hard as it might seem you we want a gallery the active elements and then got hold of all the table elements in the UI that is all of those with this happen next rates that are equal to 0 and then will say where is the active element in this array of Tamils where's the target element in this way it a target element is needed so we can throw error
saying you couldn't reach this fear tabs that for your shipping broken you I otherwise will return the difference between these 2 positions I'm not then I mean you can imagine maybe sending this to say and not only should you not have to tab backwards to get between elements but you shouldn't have to tab woman 3 or 4 times to get between elements and again like this might seem like a contrived thing by we've probably all used government websites where that's have ordering is just crazy and again I know personally online lazy and a few days I I make steep and things like this it be nice if the tools can illustrate error so what more can we say and I see Melanie king of beautifully for this fall when is it like not click right here where I think all of us expect to hit Return to submit the form rather than the clicking on on it with the mouse so what kind of social failures might we have here this to some extent templating thinking keepers away from this kind of problems the less think so imagine if the test failed in this way what this is saying is the the overall behavior failed be you'll notice and the title of the tested got with keyboarding friends of the VN so 1 imagining here is kind of like a a variance of the test this keyboard clicking rather mouse-clicking is you want more you want to support both ultimately of it fails because in indeed used on click on our which is only going to work with the mouse who even knows what is in there with the keyboard this really wacky we wanna use this instead which has all the functionality and come to expect from a formation of that will make a test screen that was still left for this question of if of sorry for slides and all site firstly what my keyboard click look quite as a as a sibling to the click so is mostly the same passing extra assertions in that they sent down here rather than using modern delegating the click helper certainly we can use some of em but test all those other functions 1st focusing on were interested in an entry given sequence the various key events I I think I'm right in saying that the on submit behavior doesn't get triggered when you new synthetic events like this may be a is weighted show bites you can imagine adding some heuristic which does trigger in the right circumstances the substitution we want to perform is swapping out click the keyboard click and adding with people to the title against like 1 wing imagine doing this and this might strike you like lot that seems like a lot of bookkeeping in overheads that have to write duplicate test to ensure that this and not to mention keeping obsessed insane by having a play with writing a meeting with my rudimentary skills writing about a plug-in to generate that sibling test automatically and it's doable is doable in about 100 lines of public audience so we now have a text that says something about the U I read interesting weeping semantically labels it says something about how we can move focus between elements and it says something about it being near supporting what interaction we have a saying something about how it treats the network it might be interesting to ask what's network up to this point imagine if and have a year like this the application made 3 requests after clicking submit it Post-its issues that seems right and then it got got the labels the issue it is created but then it facts the issue again this time with the labels included that seems wrong in all sorts of different ways arguably action and the need to make any more than 1 request but like this this when I put this example together I was surprised by how many things it's pointing out the and again like you might say that a care you could encode the request expectations after the acceptance test level with the more you say explicitly in your test the less you can say as time passes so what went wrong in this case and this is the tasks for submitting this form we do they want to look up the related labels we created reference still we weights on save and then we transitions of the roof for the new issue and here with passing the I. ID which means it's gonna go via the model that you can make another look up for an issue that we already have loaded the most is issue instead of quite possible that as contentious as you may find the but we still we still making this request from labels which doesn't seem quite right because we selected the labels sweetly all the dating theories come from the user in this case why we making its extra requests which as I am a data is doing exactly the right thing in the payload that came back from the post we're told that there's that there's a relationship the labels making lots of accessing it's your L 2 and the date is saying I can't guarantee that I've got a full picture here at best make another request when labels is accessed to complete the object graph so this is kind of interesting this tells us something actually holistically about the system it tells us that way that we create an issue with so the we're kind of leaving some things unsaid so it's exactly where you what you might want to fix this but in this case I could just in my Morales you realize that so of mandate in the contracts decreasing initiate that the labels that go with that it should come back included and I would have obsessed green with like warm atomic request going on now obviously it's not a super practicals to say that every key interaction should only trigger 1 request but I think that this example demonstrates that your task and start quite interesting things if you're exposing the states and how might it implements it well we've got our again our wrapping QuickHelp that here this is a light the bits are not interested in we will switch 603 it's been sinc function and went the other upsetting and then let's imagine that we had a track with requests for help of functions saying about somewhere and at what it does is to wrap up some operations and catch any request that went over the wire when those operations were performed and then we can make assertions about we can say OK so if a number of requests that happened during this click is greater than 1 we can construct some kind of error message that tells us what's going on track requests it turns out by integrating with morality is pretty easy to write we get hold of pretend that the thing that's driving around and we keep track of how many requests have been handled prior to executing the ball and then we await execution of the ball and then we get everything everything the following the return and then see that constructs that so pretty output whatever you want to use request objects and we get something like this and I think I guess I am surprised by how useful this the going to thinking kind of how many more things could you say that you start at the track so to conclude and which at this test and we also Shouldn't we often it can we impose access the accessibility can we use a less powerful language and can we get this test to say more and Garrison that we can continue to say more abiding by those 1st 2 principles and we ended up with this test which is not only more readable but also tells us that our application to the behavior that were describing in this test is semantically labeled Tavel support people interaction and uses the network sparingly I can imagine thinking about test helpless in this way of looking at what we had to do in those wrapping helpless what starts to emerge our hooks in the helpers actions you can take before you trigger the behavior actions you take to maybe that you wrap around the behavior in question and again there is precedent for this there's precedent for in capybara and a lot of the testing frameworks so the big idea but then treated as a big idea it is treated as a what's it and you may be thinking to yourself why didn't Cheney mention all of the great panels around there that help to do this kind of thing to make test same or something to mention now my testing embassy page object exists electors all wonderful tools to help makes us more readable make tests same more and more maintainable and it will be in the Council
without a slight thinking this person but I want to treat this slide is representing Roman Jackson plus the pile of wonderful people who made his RFCs a reality and I would like to thank all of you for taking the time to listen to me this and
this this of to could you
do a I'm the 1
who did this you
Signifikanztest
Quader
Web-Applikation
Kartesische Koordinaten
Quellcode
Fokalpunkt
Signifikanztest
Framework <Informatik>
Software Development Kit
Videokonferenz
Binder <Informatik>
Charakteristisches Polynom
Maschinelles Sehen
Standardabweichung
Signifikanztest
Netzwerktopologie
Softwaretest
Lineares Funktional
App <Programm>
Nebenbedingung
Bit
Mereologie
Kartesische Koordinaten
Signifikanztest
Ereignishorizont
Internetworking
Algorithmische Zahlentheorie
Signifikanztest
Benutzerbeteiligung
Softwareentwickler
Leistung <Physik>
Browser
Nebenbedingung
Ranking
Information
Raum-Zeit
Homepage
Richtung
Softwaretest
Skript <Programm>
Substitution
Gerade
Signifikanztest
Softwaretest
Kraftfahrzeugmechatroniker
App <Programm>
Schlüsselverwaltung
Datennetz
Kategorie <Mathematik>
Wurm <Informatik>
Bitrate
Kontextbezogenes System
Ereignishorizont
Menge
Verbandstheorie
Rechter Winkel
Ein-Ausgabe
Tabelle <Informatik>
Fehlermeldung
Subtraktion
Folge <Mathematik>
Electronic Government
Kontrollstruktur
Signifikanztest
Homepage
Bildschirmmaske
Erwartungswert
Weg <Topologie>
Informationsmodellierung
Datennetz
Datentyp
Maßerweiterung
Varianz
Tropfen
sinc-Funktion
Default
Indexberechnung
Schnelltaste
Gamecontroller
Größenordnung
Bit
Konfiguration <Informatik>
Punkt
Element <Mathematik>
Weg <Topologie>
Formale Sprache
Versionsverwaltung
Kartesische Koordinaten
Element <Mathematik>
Übergang
Freier Parameter
Mapping <Computergraphik>
Multitasking
Flächeninhalt
Maschinelles Sehen
Funktion <Mathematik>
Umwandlungsenthalpie
Lineares Funktional
Parametersystem
Schnelltaste
Konstruktor <Informatik>
Nichtlinearer Operator
Freier Parameter
Synchronisierung
Machsches Prinzip
Ein-Ausgabe
Teilmenge
Rechenschieber
Datenfeld
Funktion <Mathematik>
Verschlingung
Dateiformat
Information
Overhead <Kommunikationstechnik>
Message-Passing
Aggregatzustand
Nebenbedingung
Web Site
Gruppenoperation
Gefrieren
Implementierung
Interaktives Fernsehen
Zahlenbereich
Physikalische Theorie
Task
Fokalpunkt
Hilfesystem
Touchscreen
Leistung <Physik>
Fehlermeldung
Elektronische Publikation
Graph
ABEL <Programmiersprache>
Physikalisches System
Fokalpunkt
Quick-Sort
Design by Contract
Objekt <Kategorie>
Flächeninhalt
Beamer
Formale Sprache
Innerer Punkt
Rechenschieber
Binder <Informatik>
Mittelwert
RSA-Verschlüsselung
Datentyp
p-Block

Metadaten

Formale Metadaten

Titel Say More
Serientitel EmberConf 2018
Autor White, Jamie
Lizenz CC-Namensnennung - 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/35698
Herausgeber Confreaks, LLC
Erscheinungsjahr 2018
Sprache Englisch
Produzent Confreaks, LLC
Produktionsjahr 2018

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Acceptance tests are a wonderful way to describe how our apps behave at a high level, but what if they could say more? What if they could also say that our apps are intuitive, accessible, localised, and fast? What if they could say all this without any extra code? In this talk we’ll imagine a set of hooks which allow us to build new layers of meaning into the test helpers we know and love. Then we’ll set about actually building them.

Ähnliche Filme

Loading...
Feedback