软件构造笔记2

即使是最好的测试,也无法达到100%的无错误
残留缺陷率每kloc(1000行代码):
1-10个缺陷:典型的行业软件。
0.1-1个缺陷:高质量的验证。Java库可能会实现这一级别的正确性。
0.01-0.1缺陷/kloc:最好的安全关键性验证。NASA和像实践者这样的公司都可以达到这一水平
再好的测试也无法证明系统里不存在错误
单元测试:指验证特定代码部分功能的测试,通常在功能级别。
集成测试:由多个程序员或编程团队创建的两个或多个类、包、组件、子系统的组合执行。
系统测试:测试完全集成的系统,验证系统满足其要求,在最终配置中执行软件。
测试:发现是否存在错误
调试:识别错误根源,消除错误
白盒测试:对程序内部代码结构的测试
黑盒测试:对程序外部表现出来的行为的测试
测试用例:输入+执行条件+期望结果
测试驱动开发(TDD)是一个依赖于重复非常短开发周期的开发过程:需求转化为非常具体的测试用例,然后软件被改进以通过新的测试。
JUnit单元测试被编写为注释@Test的方法。
单元测试方法通常包含对被测试模块的一个或多个调用,然后使用断言检查结果
黑盒测试尝试查找以下类型中的错误:-不正确或缺少功能、接口错误、数据结构或外部数据库访问中的错误、行为或性能错误、初始化和终止错误
等价类划分
基于等价类划分的测试:将被测函数的输入域划分为等价类, 从等价类中导出测试用例
每个等价类代表着对输入约束加以满足/违反的有效 /无效数据的集合
大量的错误发生在输入域的“边界”而非中央
边界值分析(BVA)已被开发为一种测试技术,从而导致选择了关于边界值的测试用例
黑盒测试完全从函数spec导出测试用例,不考虑函数内部实现
白盒测试要考虑内部实现细节,根据程序执行路径设计测试用例
独立/基本路径测试:对程序所有执行路径进行等价类划
分,找出有代表性的最简单的路径(例如循环只需执行1次),设计测试
用例使每一条基本路径被至少覆盖1次。
代码覆盖度:已有的测试用例有多大程度覆盖了被测程序
测试效果:路径覆盖>分支覆盖>语句覆盖
测试难度:路径覆盖>分支覆
盖>语句覆盖
自动测试和回归测试
自动测试:
自动调用被测函数、自动判定测试结果、自动计算覆盖度
只是“测试用例的自动执行”,并非“自动生成测试用例”
回归测试:一旦程序被修改,重新执行之前的所有测试
自动回归测试是现代软件工程的最佳实践
测试策略(根据什么来选择测试用例)非常重要,需要在程序中显式记录下来
目的:在代码评审过程中,其他人可以理解你的测试,并评判你的测试是否足够充分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值