第一章 introduction to software testing

本文介绍了软件测试的基本概念,包括验证与确认的区别,输入域与输出域的概念,确定性与非确定性程序的特性,以及测试的目的和流程。探讨了测试中的错误类型,如故障、失败和错误,以及测试三要素:输入、预期输出和执行测试。此外,还讨论了白盒和黑盒测试的优缺点,强调了测试用例设计的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念

validation / verification

  • validation: 是否构建了正确的系统
  • verification: 是否以正确的方式构建系统
    在这里插入图片描述

input domain / output domain

  • input domain & input domain
    在这里插入图片描述
    • 输入类型中的值集称为输入域,
    • 输出类型中的值集称为输出域。
      在这里插入图片描述
  • 上述例子中,输入的类型是 stringchar,因此根据输入域的定义,输入域应该是所有 string 和 char 的组合;可以表示成 (s,c) 的集合,其中 s 是字符串,c 是字符
  • 输出类型是隐式的,因为squeeze的参数是按引用传递的。如果非说 ouput domain,那么 squeeze 函数的 output domain 是所有的 string

在这里插入图片描述

  • fibonacci 的输入域是所有的 unsigned int,而输出域也是所有的 unsigned int
  • 输入域的 value 可能违反 specification,例如如果一个 input 导致了 divided by 0 问题(这是一个规范),那么也是有可能的
  • 输入域在不同的系统上可能是不同的
    在这里插入图片描述
  • 有效地选择输入和输出域是非常重要的,但是并不像上面说的这么容易

deterministic / non-deterministic

  • deterministic / non-deterministic: 如果对于一个 input,输入 function 之后结果总是相同的,那么这个 function 是 deterministic,否则是 non-deterministic 的。

terminate / not-terminate

  • terminate / not terminate:一个程序是否能够正常终止。以下程序是 not-terminate 的
    • 无限循环
    • 等待事件的程序(例如等待用户输入)
  • 上述的 squeezefibonacci 都是 termiate 的程序,也就是他们最终都会终止,只不过对于 fibonacci 有返回值,因此测试程序可以直接用这个返回值来做判断,而 squeeze 没有返回值,因此必须重新查看 input 进去的数组来确定是否正确地执行操作
  • 对于那些 not-terminate 的程序,由于我们无法得到最后的结果(没有 return)因此,有些 not-terminate 可以通过查看其中间的 observable outputs 来查看,或者有些干脆就对外不可见

Testing

概念

在这里插入图片描述

  • testing 的目的是找 failure,找不到 failur
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暖仔会飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值