软件测试与测试优先的编程

软件测试(Software testing)

什么是测试?

软件测试是提高软件质量的重要手段,来确认是否达到可用级别(满足用户需求),关注系统的某一侧面的质量特性。测试跟其他活动的目标相反,其目的是:破坏、证错。即使是最好的测试,也无法达到100%的无错误,有错误残留率的概念。

什么是好的测试?

A good test has a high probability of finding an error 能发现错误

A good test is not redundant 不冗余

 A good test should be “best of breed” 最佳特性

A good test should be neither too simple nor too complex 别太复杂也别太 简单

静态测试和动态测试

静态测试通常是隐式的,作为校对,以及编程时工具/文本编辑器检查源代码结构或编译器(预编译器) 检查语法和数据流作为静态程序分析。通俗来说就是用眼睛看。

动态测试可能会在程序执行过程中开始,测试代码的特定部分并应用于离散函数或模块。典型的技术是使用存根/驱动程序或执行 从调试器环境。

黑盒测试和白盒测试

白盒测试:对程序内部代码 结构的测试

黑盒测试:对程序外部表现出来的行为的测试

测试优先编程(Test-first Programming)

测试开始的时间应该尽量早,并且要频繁地测试。当你有一大堆未经验证的代码时,不要把测试工作留到最后。把测试工作留到最后只会让调试的时间更久并且调试过程更加痛苦,因为你的代码将会充斥着bug。反之,如果你在编码的过程中就进行测试,情况就会好的多。

在测试优先编程中,测试程序先于代码完成。编写一个函数应该按如下步骤进行:

  1. 为函数写一个规格说明。
  2. 为上一步的规格说明写一些测试用例。
  3. 编写实际代码。一旦你的代码通过了所有你写的测试用例,这个函数就算完成了。

规格说明描述了这个函数的输入输出行为。它确定了函数参数的类型和对它们的所有约束(例如sqrt函数的参数必须是非负的)。它还定义了函数的返回值类型以及返回值和输入之间的关系。你已经在这门课中对许多问题都查看并使用过规格说明。在代码中,规格说明包括了函数签名和一些描述函数功能的注释。我们将会在接下来的几节课里讨论更多关于规格说明的问题。

先完成测试用例的编写能够让你更好地理解规格说明。规格说明也可能存在问题——不正确、不完整、模棱两可、缺失边界情况。先尝试编写测试用例,可以在你浪费时间实现一个有问题的规格说明之前发现这些问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值