测试基础
第1章 检查产品说明书
产品说明书通常是利用文字和图形描述产品的书面文档
1.1 黑盒测试和白盒测试
软件测试员用于描述测试方式的两个术语是黑盒测试(black-box testing)和白盒测试(white-box testing)
黑盒测试:软件测试员只需知道软件要做什么,不用关心内部如何运行,又称功能测试或行为测试
白盒测试:软件测试员可以访问程序代码,并通过检查代码的线索来协助测试-可以看到盒子里面
1.2 静态测试和动态测试
软件测试的另外两个术语是静态测试和动态测试
静态测试: 是指测试不运行的部分——只是检查和审查 。
动态测试: 是指通常意义上的测试——使用和运行软件 。
1.3 静态黑盒测试——测试产品说明书
测试产品说明书属于静态黑盒测试。产品说明书是书面文档,而不是可执行程序,因此是静态 。
测试产品说明书第一步不是马上招bug,而是站在一个高度上进行审查 :
1. 假装自己是客户 :站在客户的角度去查看
2. 研究现有的标准和规范 : 公司惯用语和约定、行业要求、政府标准等
3. 审查和测试类似软件 : 了解软件的最终结果的最佳方法是研究类似软件,如竞争对手的产品 。
1.4 产品说明书的底层次测试技术
完成产品说明书的高级审查之后,就可以很好的地了解产品以及影响其设计的外部因素。 有了这些信息, 就可以在更低的层次测试产品说明书 。
1. 产品说明书属性检查清单:
完整 :是否有遗漏和丢失? 完全吗?
准确 : 既定解决方案正确吗? 目标定义明确吗? 有没有错误?
精确、不含糊、清晰 :描述是否一清二楚? 是否有单独解释?
一致 :产品功能描述是否自相矛盾,与其他功能有无冲突?
贴切 :描述功能的陈述是否必要? 有没有多余信息?
合理 :在规定的预算和进度下,以现在的人力、工具和资源能否实现?
代码无关 :产品说明书是否坚持定义产品,而不是定位其软件设计、架构和代码?
可测试性 :功能能否测试? 给测试员提供的建立验证操作的信息是否足够?
2. 产品说明书用语检查清单
产品说明书后面可能会阐明或者掩饰,也可能含糊其词——无论哪一种情况,都可视为软件缺陷
总是、每一种、所有、没有、从不 :如果看到此类绝对或者肯定的描述,需要确认是这样的。软件测试员要考虑违反这些情况的用例。
当然、因此、明显、显然、必然 :这些话意图说服你接受假定情况,不要中了圈套。
某些、有时、常常、通常、惯常、经常、大多、几乎 :这些话太过模糊。
等等、诸如此类、以此类推、例如 : 以这样的词结束的功能清单无法测试。功能清单要绝对或者解释明确。
良好、迅速、廉价、高效、小、稳定 :这些事无法量化的用语,它们无法测试。
处理、进行、拒绝、跳过、排除 :这些用语可能会隐藏大量需要说明的功能。
如果......那么.......(没有否则) :找出有“如果——那么”,而缺少配套的“否则”结构。 如果没有发生会怎样。
第2章 带上眼罩测试软件
2.1 动态黑盒测试: 带上眼罩测试软件
动态黑盒测试:不深入代码细节测试软件的方法称为动态黑盒测试。 它是动态,因为在运行;同时,它是黑盒,因为检测不知道程序如何工作。
测试用例:是指进行软件测试时使用的特定的输入,以及测试软件的步骤。
2.2 通过性测试和实效性测试
测试软件有两种基本方法:通过性测试和实效性测试。
通过性测试:实际上是确认软件至少能做什么,而不会考验其能力。
失效性测试:纯粹为了破坏软件而设计和执行的测试用例。
2.3 等价类划分
选择测试用例是软件测试员最重要的任务。选择测试用例的方法是“等价类划分”。
等价类划分:是指分步骤地把海量的测试用例集缩减得很小,但过程同样有效。
如何寻找等价类划分?
在寻找等价划分时,考虑把软件中具有相似输入、相似输出、相似操作的分在一组。
2.4 边界条件
软件是很极端的——要么对要么不对。
1. 边界条件类型
边界条件是指软件运行在计划操作界限的边界的情况。
如果软件测试问题包含确定的边界,那么可以看看一下的数据类型:
数值 速度 字符 地点 位置 尺寸 数量
同时,考虑这些类型的下述特征:
第一个 | 最后一个 最小值 | 最大值 开始 | 完成 超过 | 在内
空 | 满 最短 | 最长 最慢 | 最快 最早 | 最迟
最大 | 最小 最高 | 最低 相邻 | 最远
2. 测试边界
如果建立两个等价类划分就可以找到更多软件缺陷:
第一个划分应该包含认为正确的数值——在边界内部最后一两个合法的数据点
第二个划分包含认为可能出现错误的数据——边界之外——一到两个非法的数据点
提出边界条件时,一定要测试靠近边界的有效数据,即测试最后一个可能有效的数据,同时测试刚超过边界的无效数据。
越界测试的做法通常是简单地对于最大值加一或者很小的数,例如:
第一个减1 | 最后一个加1, 开始减1 | 完成加1, 空了再减 | 满了再加 等
3. 默认、空白、空值、零值和无
在测试的时候,一定要考虑建立处理默认值、空白、空值、零值或者无输入等条件的等价划分。
2.5 状态测试
软件状态是指软件当前所处的条件或者模式。
状态测试要测哪些东西?
竞争条件和时序错落:
两个不同 的程序同时保存和打开同一个文档。
共享同一台打印机、通信端口或者其他外围设备
同时关闭或者启动软件的多个实例
......
重复、压迫和重负:
重复测试:不断执行同样的操作。主要查看内存泄露。
压迫测试:是软件在不够理想的条件下运行 ——内存小、磁盘空间小等
重负测试:是尽量提供条件任其发挥,让软件处理尽可能大的数据文件。
......
2.6 其他黑盒测试技术
像笨拙的用户那样做: 用户会做出各种不可思议的操作
在已经找到软件缺陷的地方再找找: 缺陷一般都会聚集在一块,因为一个错误,与它关联的也会有错误
向黑客一样考虑问题: 测试不要太绅士,黑客不会绅士。
凭借经验、直觉和预约: 经验是很宝贵的。
Last updated
Was this helpful?