# 测试基础理论小笔记

# 名词解释

TDD:测试驱动开发,test driver development

C/S架构:C——client 客户端 S ——server 服务器

SVN:版本管理工具

# 测试基础

(测试只能证明缺陷存在,不能证明缺陷不存在)

# 测试小名词(自己理解的)

头脑风暴:时间充足,加深测试,发现bug

80-20原则:80%的缺陷聚集在20%的模块中(经常出错的地方改错后还会经常出错)

敏捷测试:边开发,边测试,一个功能一个测试

软件:由文档(需求文档、用户手册)、数据(环境、输出数据等)、程序服务组成

α测试:用户在开发环境下进行的测试(受控环境下) 目的:评价软件产品的FURPS(功能,可使用性,可靠性,性能,支持)可以从软件产品编码结束时或模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

β测试:用户在实际使用环境下进行的测试(无法控制的环境)产品的所有手册也应该在此阶段完成

探索式测试:天马行空的测试(破坏性测试等)

杀虫剂现象:反复使用相同的测试用例和方法测试软件,最后会使软件具有抵抗力

# 基础知识点

测试启动准则

1、 测试计划已经制定并通过审批

2、 测试用例已经设计并通过审批

3、 被测试对象已经完成并等待测试

测试结束准则

1、 基于测试用例的规则

2、 基于‘测试期缺陷密度’的规则:收敛状态

3、 基于‘运行期缺陷密度’

静态测试:评审需求文档、测试用例等文档

包括:1、代码走查(开发阶段)->单元测试 单一模块

2、文档评审(各个阶段)->测试计划不用评审

动态测试:通过人工、半自动化、自动化检查;

白盒、黑盒、灰盒都是动态测试

黑盒测试:通过软件的外部表现发现缺陷和错误;

设计方法:等价类划分法、边界值分析法、错误推测法、错误因果图法、场景分析法

灰盒测试:介于白盒测试和黑盒测试

接口测试(数据-格式-认证)、集成测试

白盒测试:日常的一些覆盖标准向:

1、语句覆盖:足够的测试用例,是每句语句都执行一次

2、判定覆盖

3、条件覆盖

4、判定条件覆盖

5、条件组合覆盖

6、路径覆盖

单元测试->白盒测试

集成测试->灰盒测试

系统测试->黑盒测试

系统测试:目的:验证系统是否满足需求规格的定义

是将已经确认的软件、计算机硬件、外设、网络等元素结合在一起,进行信息系统的各种组装测试和确认测试

可靠性测试:使用该系统,记录每一次发生故障的时刻,计算出相邻故障的时间间隔

因果图法的使用:原因是输入条件,结果是输出条件

因果图最终生成判定表,适合于程序输入条件的各种组合情况;如果有N个条件,每一个条件有2个取值,那么将产生2的N次方条路径,适用于各种测试用例的组合

报告软件缺陷的原则

尽快报告软件缺陷

有效描述软件缺陷

在报告软件却显示不要做评价

对软件缺陷报告跟踪到底

每一个报告只针对一个软件缺陷

Client特点:必须在本机安装需要测试的软件,然后进行测试

测试:界面,兼容性,功能

注意:重复安装时重复安装的提示

升级测试注意:1、为什么升级;2、升级后老功能能不能用

异常情况:磁盘空间不足,缺少目录创建权限,安装路径中有中文字符等

卸载:注意注册表:运行(regedit)

UI测试

1、在不同的操作系统里验证UI的显示;2、调整机器的分辨率,验证UI在不同分辨率下面的显示

ToolTip:鼠标放在空间上面的文字显示

日志:程序运行的Trace为日志,一般放在Log/Logs文件夹内(问开发文员日志级别)

软件缺陷管理流程

提出疑问->确认是否是问题->定位问题->提交bug报告->跟踪报告->验证bug->经验总结

软件缺陷的生命周期

1、 识别缺陷

2、 提交缺陷

3、 分析和定位缺陷

4、 修改相应的程序

5、 验证修改

6、 关闭缺陷

7、 通过分析缺陷的共性,防止缺陷再次发生

回归测试:在软件错误修正、设计修改已经软件升级后,主要针对软件修改影响部分进行有效性测试和系统测试

软件测试流程

在这里插入图片描述

测试用例内容包含:ID、标题、优先级、模块、前提、步骤、预置条件、预期结果、测试结果、备注

# 问题解答

为什么缺件缺陷无法消除?

1、 软件运行环境多种多样

2、 逻辑关系复杂

3、 多种多样数据结构

4、 开发过程中每个环节都可能把缺陷引入系统

如何发现软件缺陷?

1、 查找时间依赖和竞争条件的问题

2、 查找边界条件软件缺陷、内存泄漏和数据溢出缺陷

3、 查找状态转换时出现的缺陷

4、 查找资源的依赖性:内存、网络、硬件等方面的缺陷

5、 查找和硬件相关方面的缺陷,比如硬件兼容性方面的缺陷

测试的六条基本法则是什么?

1功(功能)2可(可靠性)3效(效率)4易(易用性)5维(可维护性)6移(可移植性)

编写测试用例的原则是什么?

百分百的覆盖需求

缺陷严重程度分别是什么,并将每个严重程度进行简单的描述?

致命:导致系统崩溃,宕机,报500、404,内部接口错误,使整个软件无法使用

严重:阻碍测试,并且下一个页面无法跳转,导致接下来测试无法进行

一般:等价类,UI,边界值等错误,不阻碍测试

轻微:错别字,语法之类

建议:需求没有说明,测试认为不合理,可以提

缺陷报告的准则规范是?

简洁、清晰、一致、完整、准确

什么是软件测试?软件测试的目的与原则

软件测试就是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试的目的:

  • 测试是程序的执行过程,目的在于发现错误
  • 一个成功的测试用例在于发现至今未发现的错误
  • 一个成功的测试是发现了至今未发现的错误的测试
  • 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
  • 确保产品满足性能和效率的要求
  • 确保产品是健壮的和适应用户环境的

软件测试的原则:站在用户的角度,对产品进行全面测试,尽早、尽可能多地发现bug,并负责跟踪和分析产品中的问题,对不足之处提出质疑和改进意见。