Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    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."

    Visit blogRSSHN submissions
    ProgrammingCareer & Work
    What HN says

    HN commenters cite his pairwise testing article and exploratory testing definitions, and share his skepticism of dogmatic "best practices."

    Stats for nerds
    30HN people shared it
    28linked in comments
    61story points
    Sep 2025last shared
    2009people per year2025

    Top posts on HN

    1. 1
      Advice to Lawyers Suing Toyota
      1 person · 7 points · first shared 2010 · 1 comments on HN
    2. 2
      No Best Practices (2005)
      5 people · 6 points · first shared 2009 · Discussion on HN
    3. 3
      A Context-Driven Approach to Automation in Testing [pdf]
      2 people · 6 points · first shared 2016 · Discussion on HN
    4. 4
      WebGreeter Fails Turing Test
      2 people · 4 points · first shared 2009 · Discussion on HN
    5. 5
      My Personal Source Code: Books to Learn Analysis
      1 person · 4 points · first shared 2018 · Discussion on HN
    6. 6
      Quality is Dead #2: The Quality Creation Myth
      1 person · 4 points · first shared 2009 · 1 comments on HN
    7. 7
      34 Years in Testing
      1 person · 3 points · first shared 2021 · Discussion on HN
    8. 8
      James Bach – Enough About Process (1995) [pdf]
      1 person · 3 points · first shared 2014 · Discussion on HN
    9. 9
      No Best Practices (2006)
      1 person · 3 points · first shared 2025 · Discussion on HN
    10. 10
      Jerry Weinberg’s Last Worry
      1 person · 2 points · first shared 2018 · Discussion on HN

    What HN people wrote when they linked it

    • adityaathalyeSep 2025

      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?…

    • joostersJul 2016

      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.

    • userbinatorOct 2018

      ...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."

    • drewcooMay 2022

      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

    • pasbesoinApr 2009

      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.

    • meejFeb 2013

      "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

    Related

    James Shorejamesshore.com56 people

    A useful productivity measure?

    James Shore
    Personal · last shared 2026
    Jim Nielsenblog.jim-nielsen.com142 people

    Sanding UI

    Jim Nielsen
    Personal · last shared 2026
    Never Work in Theoryneverworkintheory.org73 people

    “Extremely angry with the state of academic CS research right now”

    Never Work in Theory
    Publication · last shared 2026
    Jonathan Somersjsomers.net151 people

    I should have loved biology

    Jonathan Somers
    Personal · last shared 2026
    Jessitronblog.jessitron.com64 people

    Hitting OKRs vs. Doing Your Job

    Jessitron
    Personal · last shared 2026
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Statistical Modeling, Causal Inference, and Social Sciencestatmodeling.stat.columbia.edu350 people

    Suspicious data pattern in recent Venezuelan election

    Statistical Modeling, Causal Inference, and Social Science
    Publication · last shared 2026
    The Code Whispererblog.thecodewhisperer.com31 people

    The Eternal Struggle Between Business and Programmers

    The Code Whisperer
    Personal · last shared 2024