From: Brian Marick Date: 2008-03-26T02:04:10+09:00 Subject: Flexible, template-freeable web framework? I have this idea of answering the question "What would happen if I added unprecedented amounts of built-in support for exploratory testing to a web app?" For the reasons, see , but the reasons aren't important for this note. Adding such support would (I suspect) require that the app make some things real (into objects) that we ordinarily leave implicit. Examples: 1. Rather than substituting a bunch of values into a template, stuffing the resulting string into an HTTP Response, and then forgetting everything that went into the response, I see a controller action creating a page object. That page object can be told to render itself the normal way, but it can also be told to render itself in ways a tester might prefer. 2. If I'm going to put a link on a page, and it's a link to a particular model object, I don't want to lose that fact. I want a tester to be able to say "oh, so you're an edit link to a Certification, eh? Show me the Certification you link to as HTML - no, wait, show it in some raw form." 3. I bet it would be nice if the GoF Command pattern were used for controller actions so that a tester could easily replay what she just did. (And snapshot workflow state so that she can "back up" and restart along another path: think Prevayler, journaling file systems, and version control systems applied to app state.) I don't think Rails would be a good choice for this work because it's built around assumptions that I would have to violate, meaning potentially substantial changes to a big and complex code base. Further, if the ideas turn out to be worthwhile, I'd want them to end up in trunk, and that's pretty unlikely of a mature product that oughtn't disrupt its user base this much. So ideal would be a smaller, newer framework that's looking to distinguish itself from Rails. I've been looking around at the different frameworks, but I thought it'd also be good to ask if people have frameworks to recommend. (Best would be a note from a framework author saying, "What a coincidence - I'm already working on something very like that!") ----- Brian Marick, independent consultant Mostly on agile methods with a testing slant www.exampler.com, www.exampler.com/blog, www.twitter.com/marick