软件测试基础:软件测试的公理和术语

以下内容大部分来自 ron-patton-software-testing第3章
重点:
• Why software can never be perfect
• Why software testing isn’t just a technical problem

Testing Axioms

It’s Impossible to Test a Program Completely

原因:
• The number of possible inputs is very large.
• The number of possible outputs is very large.
• The number of paths through the software is very large.
• The software specification is subjective. You might say that a bug is in the eye of the beholder

Software Testing Is a Risk-Based Exercise

If you decide not to test every possible test scenario, you’ve chosen to take on risk. 如果你决定不测试每一个可能的测试场景,你已经选择承担风险。

The goal is to hit that optimal amount of testing so that you don’t test too much or too little. 目标是达到最佳的测试量,这样你就不会测试太多或太少。

Testing Can’t Show That Bugs Don’t Exist

The More Bugs You Find, the More Bugs There Are

原因:
Programmers have bad days. Like all of us, programmers can have off days. Code written one day may be perfect; code written another may be sloppy. One bug can be a tell-tale sign that there are more nearby.
Programmers often make the same mistake. Everyone has habits. A programmer who is prone to a certain error will often repeat it.
Some bugs are really just the tip of the iceberg. Very often the software’s design or architecture has a fundamental problem. A tester will find several bugs that at first may seem unrelated but eventually are discovered to have one primary serious cause.

The Pesticide Paradox

the phenomenon that the more you test software, the more immune it becomes to your tests.

To overcome the pesticide paradox, software testers must continually write new and different tests to exercise different parts of the program and find more bugs.

Not All the Bugs You Find Will Be Fixed

You and your team will need to make trade-offs,risk-based decisions for each and every bug, deciding which ones will be fixed and which ones won’t. 您和您的团队将需要为每个错误做出权衡,基于风险的决策,确定哪些错误将得到解决,哪些错误将不会得到解决。

不修复bug的可能理由

There’s not enough time. In every project there are always too many software features, too few people to code and test them, and not enough room left in the schedule to finish. If you’re working on a tax preparation program, April 15 isn’t going to move—you must have your software ready in time.

It’s really not a bug. Maybe you’ve heard the phrase, “It’s not a bug, it’s a feature!” It’s not uncommon for misunderstandings, test errors, or spec changes to result in would-be bugs being dismissed as features.

It’s too risky to fix. Unfortunately, this is all too often true. Software is fragile, intertwined, and sometimes like spaghetti. (软件脆弱,纠缠在一起,有时像意大利面条一样。)You might make a bug fix that causes other bugs to appear. Under the pressure to release a product under a tight schedule, it might be too risky to change the software. It may be better to leave in the known bug to avoid the risk of creating new, unknown ones.

It’s just not worth it. Bugs that would occur infrequently or bugs that appear in little-used features may be dismissed. Bugs that have work-arounds, ways that a user can prevent or avoid the bug, are often not fixed. It all comes down to a business decision based on risk

When a Bug’s a Bug Is Difficult to Say

被发现的bug才叫bug
a bug is a bug only if it’s observed

Product Specifications Are Never Final

As a software tester, you must assume that the spec will change.

Software Testers Aren’t the Most Popular Members of a Project Team

The goal of a software tester is to find bugs, find them as early as possible, and make sure they get fixed

和队友和平相处的建议

Find bugs early. That’s your job, of course, but work hard at doing this. It’s much less of an impact and much more appreciated if you find a serious bug three months before, rather than one day before, a product’s scheduled release.
Temper your enthusiasm. Okay, you really love your job. You get really excited when you find a terrible bug. But, if you bounce into a programmer’s cubicle with a huge grin on your face and tell her that you just found the nastiest bug of your career and it’s in her code, she won’t be happy.
Don’t always report bad news. If you find a piece of code surprisingly bug free, tell the world. Pop into a programmer’s cubicle occasionally just to chat. If all you ever do is report bad news, people will see you coming and will run and hide.

Software Testing Is a Disciplined Technical Profession 软件测试是一个严格的技术专业

Software Testing Terms and Definitions

Precision and Accuracy

Verification and Validation

Quality and Reliability

Testing and Quality Assurance (QA)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值