On Tue, Oct 22, 2019 at 8:39 PM Robert Ramey via Boost < boost@lists.boost.org> wrote:
On 10/22/19 3:42 PM, Emil Dotchevski via Boost wrote:
I get your point that it's easier to reason about correctness if you can trust the individual components. Right. This reflects a "white box testing" mentality. I have heard the term - but I never knew what it meant
It means, you approach testing with knowledge of how the program works. In this case, you reason about the correctness of a JSON parser based on the correctness of Spirit. For example, you might skip testing certain input sets because you'd reason that their impact is limited to Spirit, and you *know* it works. In contrast, "black box" testing specifically ignores such reasoning and focuses on testing the correct behavior not knowing how the program works. Ideally, whether or not you can rely on a component to be bug-free should have no impact on the thoroughness of the tests.
But if Spirit is bug-free, logically it does not follow that a library that uses it has better chance of being bug-free, compared to a library that does not.
on balance it is better if you don't depend on another library.
Also I disagree with this. All things being equal, I'd rather depend on someone else's work than my own. I want to focus on only those things that are unique to my situation. And I get no satisfaction from doing something that someone else has already done better.
What I mean is that your users would appreciate that your library has one fewer dependencies.