James Bach writes about software testing, exploratory testing and context-driven methods, and argues against "best practices."
HN commenters cite his pairwise testing article and exploratory testing definitions, and share his skepticism of dogmatic "best practices."
OP here. Ordinarily, I would agree with you, because PageObjects themselves are not composable, in languages belonging to the "Kingdom Of Nouns".
However, the following design, thanks to Clojure's language design, helped address a rather nasty situation.
A tightly scoped Domain Specific Language, over some Types of PageObjects, all of which compose arbitrarily (without breaking value semantics). So, if you wanted the `value` of a Modal box having all sorts of switches, form fields etc., you'd call `value` on it, and it would call `value` on all of its constituents, and return the immutable hash-map snapshot of whatever state it found.
Cross-cutting concerns | v PageObject / DSL -> | open | close | open? | select | deselect | ... | |-----------------------+------+-------+-------+--------+----------+-----| | Dropdown | | | | | | | | Checkbox | | | | | | | | Switch | | | | | | | | Modal | | | | | | | | SearchList | | | | | | | | ... | | | | | | | Concrete example (in the deck and demo linked below):
(defprotocol IPageObject "Each PageObject MUST implement the IPageObject protocol." (page-object [this]) (exists? [this]) (visible?…
Has anyone tried combining fuzzing with 'all-pairs'/'pairwise' test case generation?
The idea of pairwise testing is that individual features in a program are commonly tested, but combinations of them are often poorly tested. However, trying to test all features with each other soon becomes a combinatorial nightmare. To deal with this, you use an algorithm (e.g. see the code for 'allpairs' at http://www.satisfice.com/tools.shtml ) to pick a minimal set of test cases that cover all possible pairs of configuration settings.
These test cases could then be used as starting points for fuzzing, to provide a greater code coverage faster.
...showing just how useful "best practices" actually are.
I associate that phrase with dogmatic cargo-cult "don't think just follow" and the horrible results thereof. Lots of self-proclaimed "experts" love to say "do X and Y and Z and you will be successful because these are best practices", but it's all a bunch of snake oil.
https://agilepainrelief.com/notesfromatooluser/2010/03/there-are-no-best-practices.html
http://www.satisfice.com/blog/archives/27
http://www.satisfice.com/presentations/nobest.pdf
"Best practices are best not practiced."
You started with a goal and you took notes so the only thing different between your experience and Exploratory Testing is the debrief session. Oh, but you've started that here already, too.
If all manual testers played games like you, there would be more respect for that profession. Likewise, if more game testers did . . . anywho . . .
What, may I ask, did you play?
As if I'll look back here again! Seriously, I'll try to remember. That sounds like the kind of exercise James (not the seagull son) Bach would do. ;-)
https://www.satisfice.com
James Bach turned QA into an independent gig. There are a few others who have significant public personae. I haven't checked in on his blog, lately; it's here:
http://www.satisfice.com/blog/
http://www.satisfice.com/recommends.shtml
I don't know whether this will be any use to you. Hope it helps, though.
"The lesson I took away from that day is that when I’m stuck I ask an outsider."
Interesting, there's a very similar lesson in this post from James Bach's blog yesterday about programmer pairing with a tester:
http://www.satisfice.com/blog/archives/852