J

James Bach

satisfice.com · Personal blog · on HN since 2008

James Bach writes about software testing, exploratory testing and context-driven methods, and argues against "best practices."

What HN saysHN commenters cite his pairwise testing article and exploratory testing definitions, and share his skepticism of dogmatic "best practices."
30HN people shared it
11linked it in comments
28stories submitted
61story points
4 months agolast shared
2008people per year2026

Most-shared posts

  1. 1
    No Best Practices (2005)
    5 people · 6 points · first shared 2009 · discussion on HN
  2. 2
    A Context-Driven Approach to Automation in Testing [pdf]
    2 people · 6 points · first shared 2016 · discussion on HN
  3. 3
    WebGreeter Fails Turing Test
    2 people · 4 points · first shared 2009 · discussion on HN
  4. 4
    Exploratory Testing 3.0
    2 people · 1 points · first shared 2015 · discussion on HN
  5. 5
    Homepage
    2 people · first shared 2022
  6. 6
    Blog
    2 people · first shared 2009
  7. 7
    Archives 487881
    2 people · first shared 2025
  8. 8
    Advice to Lawyers Suing Toyota
    1 people · 7 points · first shared 2010 · 1 comments on HN
  9. 9
    Quality is Dead #2: The Quality Creation Myth
    1 people · 4 points · first shared 2009 · 1 comments on HN
  10. 10
    My Personal Source Code: Books to Learn Analysis
    1 people · 4 points · first shared 2018 · discussion on HN
  11. 11
    James Bach – Enough About Process (1995) [pdf]
    1 people · 3 points · first shared 2014 · discussion on HN
  12. 12
    34 Years in Testing
    1 people · 3 points · first shared 2021 · discussion on HN
  13. 13
    No Best Practices (2006)
    1 people · 3 points · first shared 2025 · discussion on HN
  14. 14
  15. 15
    A Good Example of a Stupid Idea: Testers Shouldn't Test
    1 people · 2 points · first shared 2023 · discussion on HN

What HN people wrote when they linked it

adityaathalye · 2025-09-15
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?…
drewcoo · 2022-05-04
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
bklaasen · 2022-01-31
"All pairs" is the approach to take. There is a good amount of quality writing on this; I suggest starting here: https://www.satisfice.com/download/pairwise-testing-a-best-practice-th…
userbinator · 2018-10-07
...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-be… http://www.satisfice.com/blog/archives/27 http://www.satisfice.com/presentations/nobest.pdf "Best practices are best not practiced."
joosters · 2016-07-12
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.
rsanheim · 2012-01-18
Agile is not best practices. http://www.satisfice.com/blog/archives/27 Sorry, just one of my pet peeves, and describing agile as == best practice doesn't help anyone.
pasbesoin · 2009-04-26
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.
ideamonk · 2009-04-25
"Don't listen to me. Just do it your own way. Coz that's what you'll do anyway. It's never possible to follow suggestions/rules, like a sworn monk. And that's how you'll enjoy learning :P" That's true :) http://www.satisfice.com/blog/archives/27
cratermoon · 2025-05-24
Perhaps this one from James Bach. "Is There Something in Your “I”?" https://www.satisfice.com/blog/archives/487881
satisfice · 2025-05-04
I blogged about this just yesterday. The problem of disguised authorship ruins your reputation as a thinker, worker, and writer. https://www.satisfice.com/blog/archives/487881
meej · 2013-02-21
"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

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close