Testing Method - 读书笔记 ( 二 )

来源:互联网 发布:炒外汇交易软件 编辑:程序博客网 时间:2024/05/01 21:07

看到 Wikipedia 上面有一篇对于软件测试的综述,挺有总结性,做下读书笔记。

Wikipedia 的这篇文章,可以通过下面的 URL 访问:
http://en.wikipedia.org/wiki/Software_testing

Testing Method: White-box testing VS Black-box testing VS Grey-box testing

White-box testing: 白盒测试
也有很多其他叫法:clear box testing, glass box testing, transparent box testing and structural testing

就是深入代码内部做测试: 测试者可以访问代码,自定义输入与输出,对代码可以进行添加测试用例,是 dynamic 的测试。(当然在代码中进行添加测试用例的 code 不能影响其他 dev 的阅读与理解)。
这一类的测试技术有:
1) API, 通过调用 API 来传参,验证结果
2) Code Coverage: 针对每个控制流,每个代码路径都需要产生对应的测试用例。如果有 N 个路径,就需要有 2^n 个测试用例了。每个路径都有可能走或者不走的两个方案
3) Fault injection: 可以设计能顺利通过测试的案例,也要设计有不能通过测试的案例
4) Mutation testing:暂时不懂
5) Static Testing:只能说起到很好的梳理测试用例的作用

白盒测试可以用在单元测试,集成测试,系统测试层面,但是普遍用在单元测试上,单元测试总是可以在其他相关功能完成之前先设计起来,而集成测试,系统测试需要全部单元代码都已经 ready.

Black-box tesing: 黑盒测试
与白盒测试相对,黑盒测试完全不能看到代码,仅仅凭测试功能需求来定测试用例进行测试
这一类的测试技术有:
equivalence partitioning, boundary value analysis, all-pairs testing, state transition tables, decision table testing, fuzz testing, model-based testing, use case testing, exploratory testing and specification-based testing.

Grey-box testing: 灰盒测试:
简单理解就是白盒与黑盒的综合。 比如测试者需要在单独的测试环境里, 在数据库里预设计一些测试用例,更改一些中间状态,然后运行代码,并记录测试结果

0 0