September 16, 2010
Autocomplete static imports in eclipse
Here's a recipe on how to get autocomplete on assertEquals, and have eclipse automatically add the static import for you.
September 10, 2010
On Lean And Agile (Gil Broza from Agile 2010 panel)
Gil Broza Article: Lean And Agile — Roommates, Married Or Twins?
Our panelists were all experienced Agilists who incorporate deep Lean thinking: Mary Poppendieck, Jim Shore, Alan Shalloway and Jean Tabaka.
....
Mary led with a quick definition: “Lean is delivering constantly increasing customer value for continually decreasing effort, leveraging energy and creativity”. The panelists all agreed that Agile is really a subset of Lean.
....
While Lean thinking can certainly improve the value flowing out an Agile team, its strong suit is in wider-scale application to the business and the whole value chain, “from concept to cash”. We have to pay attention to metrics that traditionally sat on the business side, as Agile lacks discipline around business methods. Teams must understand the business justification — and focus on delivering its promise.
Some people claim that “you can't improve what you can't measure”. But we manage things that we can't measure all the time. .... Lean will help us improve stuff even if it's not measurable.
Lean has us pay attention to throughput and value flow; it encourages having mechanisms for flow control. Agile's mechanism is the iteration ... Kanban's mechanism is the work-in-progress (WIP) limit
....
[the most common mistakes when implementing Lean?] Emphasizing practices over principles and culture; taking Scrum roles as gospel; not realizing the true nature of change (believing the only thing that needs to change are the programmers).
I was surprised by the panel's answers to the question, “What should teams be trained in?” Jean answered: “Reflection” — so the team can even take in the rest of the training, and apply continuous improvement. The other three all said, “Writing testable code!” They all emphasized the point of having great technical skill and writing acceptance-driven, defect-free code.
September 4, 2010
Script Junkie | How to Debug Your jQuery Code
todo: checkout firequery, firefinder...
- Firebug—Although many developers have used Firebug, I don't think that many understand the true potential of its debugging capabilities. If you know your tools inside out, you can become a more productive and efficient programmer. Note: If you aren't using Firefox, the Firebug Lite bookmarklet can come in handy to provide many of the nice debugging features of its Firefox add-on counterpart. I tend to use this bookmarklet primarily with Google Chrome.
- FireQuery—This Firefox Firebug add-on provides some nice features to Firebug, such as letting you see which jQuery events are attached to what DOM elements, displaying any data elements that are attached to a DOM element, and providing the ability to inject jQuery into Web pages that don't have it already loaded.
- FireFinder—This Firefox Firebug add-on can help you find the selector you are looking for. You can test the selector you have, and it will highlight all those items on your Web page.
Defect Driven Testing: Your Ticket Out the Door at Five O'Clock
are you not doing TDD yet? start with DDT...
Test automation is not a controversial topic in most circles. Even developers who don't write automated tests agree it's a great idea. They just don't have time to work on it very often.
....
DDT is a fairly simple concept. When you find a bug, add a test.
Why take this approach?
First, no one can dispute the need for the test. If an issue was found, then it had been missed earlier. Perhaps the developer missed it and QA spotted it. Maybe it slipped past everyone and it was reported by your customer. Whenever it's reported, it needs to be fixed in a way that will prevent it from reappearing.
....
DDT is a gradual approach.
....
Over time you'll find that DDT creates an extremely effective test suite that targets the most problematic parts of your code base. Run your defect driven tests inside of a continuous integration system and you'll find your code running more cleanly every day.
August 27, 2010
tapestry 5 custom validation error message
in our system/ configuration, in order to customize T5 validation messages using the T5 validation message language key conventions, i had to use the following language keys:
Apache Tapestry - Form Input and Validation:
http://tapestry.1045711.n5.nabble.com/T5-Overriding-integer-validation-message-td2436931.html#a2436931:
- "required" as language key for a required field
- f.ex. when i use t:validate="required" in a .tml file
- "number-format-exception" for a number field, and integer-format-exception for an integer field
- when an input field attached to an integer property gets a letter, f.ex.
Apache Tapestry - Form Input and Validation:
Customizing Validation Messages
Each validator (such as "required" or "minlength") has a default message used (on the client side and the server side) when the constraint is violated; that is, when the user input is not valid.
The message can be customized by adding an entry to the page's message catalog (or the containing component's message catalog). As with any localized property, this can also go into the application's message catalog.
The first key checked is formId-fieldId-validatorName-message.
If there is not message for that key, a second check is made, for fieldId-validatorName-message.
- formId: the local component id of the Form component
- fieldId: the local component id of the field (TextField, etc.)
- validatorName: the name of the validator, i.e., "required" or "minlength"
If that does not match a message, then the built-in default validation message is used.
http://tapestry.1045711.n5.nabble.com/T5-Overriding-integer-validation-message-td2436931.html#a2436931:
(from the answers)
You should add a prefix consisting of the field id (and optionally the form
id). (Igor)
To generalize messages overrides for all form, you can contribute to ValidationMessagesSource service in your AppModule class with your own
property file. (Christophe)
Trial and error have yielded: [field id]-integer-message (xfile80303)
You should add a prefix consisting of the field id (and optionally the form
id). (Igor)
To generalize messages overrides for all form, you can contribute to ValidationMessagesSource service in your AppModule class with your own
property file. (Christophe)
Trial and error have yielded: [field id]-integer-message (xfile80303)
Blogged with the Flock Browser
Dennis Stevens: We are Doing QA All Wrong
A few interesting things from an article by Dennis Stevens, very loosely quoted...
From the comments:
Dennis Stevens » Blog Archive » We are Doing QA All Wrong
- We Don’t Understand Quality Assurance
- We Don’t Understand the Cost of Rework
- Rework from failed QA tests are extremely expensive to flow. Sending work back into development interrupts work in process. This has a dramatic effect on cycle time across the system – which results in increased cost of every item in the system.
- the cost of setting up testing environments is much lower
- Quality Assurance needs to be part of the development team and process. We need to change our thinking around this. So we need to integrate Quality Assurance very early in the process.
- We have the Wrong Expectations
- We Expect Perfection - Not Improved Value
- We Expect Local Optimization - Not Flow
- Enable value, flow, and ongoing improvement
From the comments:
- One thing: No one can assure quality. Can I convince you to change the reference to “Quality Assistance?” (Jon Bach)
- I prefer ‘testing’ and ‘tester’ to ‘quality assurance’ and ‘QA engineer’ or whatever. But these are nits. The message of Dennis’s post is the point – focus on value, improvement, delivering a better product. (Lisa Crispin)
- I introduce myself to teams as the “public health nurse” for their project, and then subtly place ‘quality assistance’ in my email signature. (Adam Geras)
- testing is a complex, organic, cognitive activity, rather than a rote, bureaucratic, clerical one. (Michael Bolton)
Blogged with the Flock Browser
Subscribe to:
Posts (Atom)