摘要: We explore the tension between adding functionality to create resilient software and minimizing make it more feasible formally verify software. To illustrate effects of this trade-off, we examine a tiny example in detail. show how code written with good style may be hard verify, specifically that test condition is troublesome. also "improved" an attempt verification straight-forward worsens failure characteristics. demonstrate effect actual situation, secure web server, thttpd, its design principles security features. discuss features introduce redundancies making harder, but present some formal feasible. conclude should designed necessary temptation oversimplify order resisted.