Testing event driven software
Oh boy…AM starts talking about different states of event driven systems and is referring to state S-0 but he’s not saying zero. He is saying naught. S-naught…otherwise known as Snot. I can’t decide which is better. Snot or THUD.
Ok…back to testing. His problem domain is for testing event driven systems in all of their various states. He’s using a tool in Windows XP called computer management. He gives it a large number that’s obviously invalid and watches it fail. Then he goes to another dialog and it fails. He seems mainly concerned with generating all possible combinations of events for a web app. Elfriede Dustin mentoned a tool for this yesterday.
He’s about to crash united airlines site but too many people (including me) on the wifi. Tip: always use slides for demos.
1st part of this talk is a basic summary of the current state of web testing. He talks about creating lots of tests through the UI although yesterday, this strategy was somewhat debunked in the session by Markus Clermont. MC pointed out that building up lots of these end to end tests running through a gui can take a really long time to run if you have too many.
He wants to see some type of zoom in for these tests which would be really cool. This implies a hierarchical structure within these event driven tests.
GUI Model Based Testing
Event Flow Graph: He uses paint as an example to show how event interactions are diagrammed. Fellow blogger, David Burns has done a tutorial on this type of testing using graphs.
His app will rip the gui, generate an event flow graph and use this to generate test cases. Has a demo.
After test cases are run his app will analyze the run time to track the interactions. This is all done on desktop gui apps and he’s working on the web app side of it. He’s expecting some audience feed back for this.
His student is also making a presentation of an independant study she did. She put together a basic page with typical webapp inputs which would generate different states. She’s generated a state machine model of this basic web page. Her final state is getting to the next page. She took as test cases event sequences + expected state. Once she has possible states she creates a table. Most of her work was centered around getting the webripping and generation of test cases to work.
He’s asking for ideas on how to test this type
Q: Oh this is what I wanted to hear, they are asking about the test case explosion problem I mentioned.
A: He’s expecting large state machines that can be executed in a distributed manner. They don’t expect testers to use this and automate their process, they want them to generate the graph so that they can find more interesting test cases.
Q: (Really this is a suggestion) Have a best practice for a web app to generate a graph from which a more testable webapp can be created.
Q: They aren’t considering data dependant states. How do you get data into test cases?
A: We use partitioning method and come up with constraints between field elements. This problem however isn’t solved.