Upload
nakajima-shigeru
View
265
Download
0
Embed Size (px)
Citation preview
Attributes
• Programmer • JavaScript for browsers
• MVC
•忍者式テスト(Ninja Test)
• The second practitioner in the world
Products
• text annotation editorhttp://textae.pubannotation.org/
• graph editorhttp://lodqa.org/
• furiosahttps://github.com/ledsun/furiosa
Short introduction of furiosa• furiosa's targets are JavaScript applications working in browsers.
• furiosa is a helper tool to user acceptance test. It finds changes of behaviors of an application.
• furiosa is a static analysis tool. The target is made with a specific MVC framework of the “aciton-stream”.
• action-stream is a framework to split the controller of MVC into streams. Stream transmit “action”s that is abstractions of user events. Each streams are described declaratively what “action”s are care.
Stream Example
this.bindActions(target.MODEL_NODE, [ [actionType.CREATE, (action, push) => createNode(nodes, action, push)], [actionType.CREATE, (action, push) => autoEdgeCreation(action, nodes, push)], [actionType.FOCUS, (action, push) => setFocus(nodes, action, push)], [actionType.DELETE, (action, push) => deleteNode(nodes, action, push)], [actionType.HOVER, (action, push) => push(target.VIEW_NODE)], [actionType.UNHOVER, (action, push) => push(target.VIEW_NODE)], [actionType.UPDATE_LABEL, (action, push) => updateNodeLabel(nodes, action, push)], [actionType.UPDATE_TERM, (action, push) => updateNodeTerm(nodes, action, push)], [actionType.VALIDATE, (action, push) => validateNode(nodes, action, push)]])
target to action
type of action handler
furiosa result
{ "filename": "DataModelNodeStream.js", "actions": [ { "target": "target.MODEL_NODE", "types": [ { "type": "actionType.CREATE", "handler": "--- ArrowFunction --->" }, { "type": "actionType.CREATE", "handler": "--- ArrowFunction --->" }, { "type": "actionType.FOCUS", "handler": "--- ArrowFunction --->" }, { "type": "actionType.DELETE", "handler": "--- ArrowFunction --->" }, { "type": "actionType.HOVER", "handler": "--- ArrowFunction --->" }, { "type": "actionType.UNHOVER", "handler": "--- ArrowFunction --->" }, { "type": "actionType.UPDATE_LABEL", "handler": "--- ArrowFunction --->" }, { "type": "actionType.UPDATE_TERM", "handler": "--- ArrowFunction --->" }, { "type": "actionType.VALIDATE", "handler": "--- ArrowFunction --->" } ] } ]}