软件测试

臧艳辉

目录

  • 1 走近软件测试
    • 1.1 走近软件测试
    • 1.2 一个软件测试工程师必备的专业技能和素质
    • 1.3 章节测验
  • 2 软件测试技术
    • 2.1 正确认识软件测试
    • 2.2 软件测试遵循的基本原则
    • 2.3 软件测试的分类
    • 2.4 软件测试的过程模型
    • 2.5 章节测验
  • 3 测试中缺陷的识别与描述
    • 3.1 初识软件缺陷
    • 3.2 全面解析软件缺陷
    • 3.3 有效的记录缺陷
    • 3.4 缺陷报告实例
    • 3.5 缺陷报告模板
  • 4 项目测试计划的制定
    • 4.1 一个项目完整的测试流程
    • 4.2 初识测试计划
    • 4.3 测试计划的基本机构和内容
    • 4.4 测试计划模板和案例
  • 5 初识软件测试用例
    • 5.1 什么是测试用例
    • 5.2 项目测试中设计测试用例的作用
    • 5.3 如何设计一个项目的测试用例
    • 5.4 在测试过程中测试用例怎样进行更新和维护
  • 6 使用等价类划分方法设计测试用例
    • 6.1 等价类划分法的基本思想
    • 6.2 进行等价类划分法的原则
    • 6.3 使用等价类划分法设计测试用例实例
  • 7 使用边界值分析法设计测试用例
    • 7.1 边界值分析法的基本思想
    • 7.2 如何确定边界
    • 7.3 测试知识储备
    • 7.4 使用边界值分析法设计测试用例实例
    • 7.5 项目中如何进行健壮性边界值测试
    • 7.6 等价类+边界值
    • 7.7 章节测试
  • 8 使用大纲法设计测试用例
    • 8.1 什么是大纲法
    • 8.2 项目中如何使用大纲法设计测试用例
  • 9 使用场景法设计测试用例
    • 9.1 什么是场景法
    • 9.2 项目中如何使用场景法设计测试用例
  • 10 因果图和决策表结合设计测试用例
    • 10.1 因果图法的介绍
    • 10.2 决策表的介绍
    • 10.3 项目中选用因果图法和决策表设计测试用例需考虑的问题
    • 10.4 使用因果图法和决策表设计测试用例
  • 11 功能测试
    • 11.1 什么是功能测试
    • 11.2 功能测试的主要内容及测试策略
    • 11.3 功能测试的方法汇总
    • 11.4 功能测试的经验及注意事项
  • 12 界面测试
    • 12.1 界面检查的通用原则
    • 12.2 具体的界面检查的举例
    • 12.3 设计界面测试用例
    • 12.4 界面测试标准总结
  • 13 软件的安装卸载测试
    • 13.1 软件的安装卸载测试
    • 13.2 软件的安装测试
    • 13.3 软件的运行测试
    • 13.4 软件的卸载的测试
  • 14 项目中如何使用进行有效的缺陷管理
    • 14.1 进行缺陷管理的目标是什么
    • 14.2 项目中缺陷管理的流程是怎样的
    • 14.3 缺陷的跟踪方法有哪些
  • 15 测试报告该如何撰写
    • 15.1 软件质量评估
    • 15.2 如何撰写测试报告
    • 15.3 如何写项目总结
    • 15.4 如何写个人测试总结
  • 16 集成测试
    • 16.1 初识集成测试
    • 16.2 集成测试方法
  • 17 白盒测试
    • 17.1 初识白盒测试
    • 17.2 白盒测试技术——逻辑驱动测试
    • 17.3 白盒测试技术——循环覆盖测试
    • 17.4 白盒测试技术——基本路径测
  • 18 软件测试技术及岗位需求介绍
    • 18.1 软件测试岗位需求
    • 18.2 软件测试技术介绍
    • 18.3 软件测试比赛内容
    • 18.4 软件测试岗位应聘简历撰写
测试知识储备
  • 1 电子教材
  • 2 PPT

7.3  测试知识储备

寻找这样的边界不要求软件测试员成为程序员或者具有阅读源代码的能力,但是确实要求大体了解软件的工作方式。2的乘方和ASCII表是这样的两个例子。

Ø  2的乘方

计算机和软件的基础是二进制数——用位来表示01,一个字节由8位组成,一个汉字由2个字节组成,lKB等于1024字节,1MB等于1024KB等。这些范围和值也是作为边界条件的重要数据。除非软件向用户提出这些范围,否则在需求文档中不会指明。

然而,它们通常由软件内部使用,外部是看不见的,是隐含在程序内部的边界值情况。

例如在一个两位数加法的程序中,计算结果的范围是从-198198,如果程序员以一个字节来存储计算结果,要想能够存储负数,一个字节所能表示的数据的范围只能从-128127,这时程序在处理大于127的计算结果时就会出错。所以有时候也有必要在建立等价区间时考虑是否需要包含2的乘方的边界条件。这样就可以添加测试用例为表7-3所示的例子。

7-3 等价类表补充边界值测试用例

 

测试用例编号

 
 

输入数值

 
 

被测边界

 
 

预期输出

 
 

1

 

2

 

3

 
 

-100

 

-99+ (-99)

 

-98+ (-98)

 
 

-99

 
 

错误信息

 

正确输出: -198

 

正确输出: -196

 
 

4

 

5

 

6

 
 

98+98

 

99+99

 

100

 
 

99

 
 

正确输出: 196

 

正确输出: 198

 

错误信息

 
 

7

 

8

 

9

 
 

-64+ (-64)

 

-64+ (-63)

 

-63+ (-63)

 
 

-127

 
 

正确输出: -128

 

正确输出: -127

 

正确输出: -126

 
 

10

 

11

 

12

 
 

64+64

 

64+63

 

63+63

 
 

127

 
 

正确输出: 128

 

正确输出: 127

 

正确输出: 126

 

Ø  ASCII

另一个常见次边界条件是ASCII字符表(表7-4)。

7-4 ASCII字符表

 

字符

 
 

ASCII

 
 

字符

 
 

ASCII

 
 

null

 
 

0

 
 

B

 
 

66

 
 

space

 
 

32

 
 

Y

 
 

89

 
 

/

 
 

47

 
 

Z

 
 

90

 
 

0

 
 

48

 
 

[

 
 

91

 
 

1

 
 

49

 
 

 
 

96

 
 

2

 
 

50

 
 

a

 
 

97

 
 

9

 
 

57

 
 

b

 
 

98

 
 

 
 

58

 
 

y

 
 

121

 
 

@

 
 

64

 
 

z

 
 

122

 
 

A

 
 

65

 
 

{

 
 

123

 

注意:上表不是连续表。0-9的后面ASCII值是48-57。斜杠字符(/)在数字0的前面,而冒号字符()在数字9的后面,大写字母A~Z对应65~90,小写字母对应97~122。这些情况都代表次边界条件。

如果测试进行文本输入或文本转换的软件,在定义数据区间包含哪些值时,最好参考一下ASCII表。例如,如果测试的文本框只接受用户输入字符A-Za-z,就应该在非法区间中包含ASCII表中这些字符前后的值——@[、‘和{ 。又如,在两位数加法程序中,输入只能是数字而不能为其他字符。如果程序对用户输入的字符是根据字符的ASCII码来进行处理的,此时,测试人员就需要对这些判断条件的临界值(47485758)进行测试,以确定程序员没有写错判断条件。尽管ASCII码仍然是软件表示字符数据非常流行的方式,但是它已经被称为统一编码(Unicode)的新标准取代了。Unicode1991年由统一编码联合会开发,以解决ASCII无法表示所有书写语言字符的问题。ASCII只有8位,能表示256种不同的字符。Unicode使用16位,可以表示65536种字符。目前已经为39000多种字符指定了数值,其中21000多种用于表示中国象形符号。