How SQLite is tested

(sqlite.org)

122 points | by whatisabcdefgh 2 hours ago

10 comments

  • bastardoperator 1 hour ago
    Over a decade ago, the maintainer of SQLite gave a talk at OSCON about their testing practices. One concept that stood out to me was the power of checklists, the same tool pilots rely on before every flight.

    He also mentioned Doctors Without Borders, who weren't seeing the outcomes they expected when it came to saving lives. One surprising reason? The medical teams often didn't speak the same language or even know each other's names.

    The solution was simple: a pre-surgery checklist. Before any procedure, team members would state their name and role. This small ritual dramatically improved their success rates, not through better technique, but through better communication.

    https://sqlite.org/src/ext/checklist/3070700/index

  • piker 1 hour ago
    Always makes me a bit envious as well as awestruck. What a joy it must be in a lot of ways to be able to grind and perfect a piece of software like this. Truly a work of craftsmanship.
    • stouset 7 minutes ago
      You can literally just do this. I’ve never gotten fired from a software engineering job for moving slower and building things that work well, work predictably, and are built to last.

      Over a career of doing this, you get dramatically better at higher levels of quality even in earlier passes, so the same level of added effort provides increasing levels of reward as you gain experience.

  • Seattle3503 1 hour ago
    I love sqlite, it's a great piece of software. The website is full of useful information, rather than the slick marketing we are used to, even on open source projects.

    With that said, I find it strange how the official website seems to be making its way through the HN front page piecemeal.

    • 1986 54 minutes ago
      This one is probably popping today because of the simonw post yesterday about using an LLM to basically one-shot port a lib across languages with the help of an extremely robust test suite
  • montroser 1 hour ago
    This looks so very cool, and so then all the more thought provoking that the tests themselves are closed-source, unlike the rest of the codebase. In this evolving world of rapidly improving llm coding agent productivity, the idea that the tests are more important than the implementation starts to ring true.

    I was thinking about sqlite's test landscape as described here, in relation to simonw's recent writing about porting/recreating the justHTML engine from python to js via codex, nearly "automatically" with just a prompt and light steering.

    • Lorkki 2 minutes ago
      It's made a lot of sense in general if you think about the business models around open source products. An extensive test suite gives you the ability to engineer changes effectively and efficiently, meaning that you can also add additional value on top of released versions better than everyone else.
  • BinaryIgor 2 hours ago
    No less impressive than the SQLite project itself; especially 100% branch coverage! That's really hard to pull off and especially to maintain as the development continues.
  • realityfactchex 52 minutes ago
    I was pleasantly surprised recently when planning to "upgrade" a light web app to be portable between SQLite and DuckDB, and the LLM I was working with really made the case that SQLite is better if concurrent operations were to occur.
  • tigranbs 1 hour ago
    Based on the stability track record, I was more curious about how SQLite has done the anomaly testing. Sadly, the article has just a few words about it.

    Truly one of the best software products! It is used on every single device, and it is just pure rock-solid.

    • 6SixTy 1 hour ago
      Considering that the support tier where you get access to the testing suite is 150K/year, I don't think they will be spilling any beans soon.
  • Trung0246 6 minutes ago
    Interesting, TH3 is proprietary.
  • dev_l1x_be 19 minutes ago
    What is the story with Fossil? Is it used outside of Sqlite?
  • twelvechess 2 hours ago
    [dead]