一:简述软件系统中用户文档的测试要点?
-
读者群:文档面对的读者定位要明确。对于初级用户、中级用户以及高级用户应该有不同的定位
-
术语:文档中用到的术语要适应与定位的读者群,用法一致,标准定义与业界规范相吻合
-
正确性:测试中需要检查所有信息是否真实正确,查找由于过期产品说明书和销售人员夸大事实而导致的错误。检查所有的目录、索引和章节引用是否已经更新,尝试链接是否准确,产品支持电话、地址邮编是否正确
-
完整性:对照软件界面检查是否有重大的分支没有描述到,甚至是否有整个大模块没有描述到。
-
一致性:按照文档描述的操作执行后,检查软件返回是否与文档描述的相同。
-
易用性:对关键步骤以粗体或者背景色给用户以提示,合理的页面布局、适量的图表都可以给用户更高的易用性。需要注意的是文档要有助于用户排除错误。不但描述正确的操作,也要描述错误处理办法。文档对于用户看到的错误信息应当有更详细的文档解释
-
图表与界面截图:检查所有的图表与界面截图是否与方向版本相同。
-
样例与示例:向用户一样载入和使用样例。如果是一段程序,就输入数据并执行它。以每一个模块制作文件,确认他们的正确性
-
语言:不出现错别字,不要出现有二义性的说法,特别要注意是屏幕截屏或者绘制的文字
-
印刷与包装:检查印刷质量,手册厚度与开本是否合适,包装盒的大小是否合适;有没有零碎易丢失的小部件等等
二:单元测试的主要内容是什么?
单元测试大多数是由开发人员来完成的,测试人员技术背景较好或者开发系统软件时可能会安排测试人员进行单元测试,大多数进行单元测试的都是开发人员调试程序或者开发组系统联调过程。单元测试一般包括五个方面进行测试
《1》模块接口测试:模块接口测试是单元测试的基础,只有在数据能正确流入、流出的前提条件下,其他的测试才有意义。模块接口测试也是集成测试的重点,这里进行的测试主要是为后面打好基础。测试接口正确与否应该考虑以下因素:
-
输入的实际参数与形式参数的个数是否相同
-
输入的实际参数与形式参数的属性是否匹配
-
输入的实际参数与形式参数的量纲是否一致
-
调用其他模块时所给的实际参数的个数是否与被调用模块的形参个数相同
-
调用其他模块时所给的实际参数的属于是否与被调用模块的形参属性匹配
-
调用其他模块时所给的实际参数的量纲是否与被调用模块的形参量纲一致
-
调用预定义函数时所用的参数个数、属性和次序是否正确
-
是否存在与当前入口点无关的参数引用
-
是否修改了只读型参数
-
对全程变量的定义各个模块是否一致
-
是否把某些约束作为参数传递
如果模块功能包括外部输入输出,应该考虑下列因素:
-
文件属性是否正确
-
Open/Close语句是否正确
-
格式说明与输入输出语句是否匹配
-
缓冲区大小与记录长度是否匹配
-
文件使用前是否已经打开
-
是否处理了文件尾
-
是否处理了输入/输出错误
-
局部数据结构测试
-
边界条件测试
-
模块中所有独立执行通路测试
《2》局部数据结构测试:检查局部数据结构是为了保证临时存储在模块内的数据在程序执行过程中完整、正确、局部功能是整个功能运行的基础。重点是是一些函数是否正确执行,内部是否运行正确,局部数据结构往往是错误的根源,应仔细设计测试用例,力求发现下面几类错误:
-
不适合或不相容的类型说明
-
变量无初始值
-
不正确的变量名字
-
出现上溢,下溢和地址异常。
《3》边界条件测试:边界条件测试是单元测试中最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左、右设计测试用例,很有可能发现新的错误。边界测试执行的较好,可以大大提高程序的健壮性。
《4》模块中有所独立路径测试:在模块中应对应每一条独立的执行进行测试,单元测试的基本任务是保证模块中的每条语句执行一次。测试目的主要是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。具体做法就是程序员逐条调式语句。常见的错误包括:
-
误解或用错了算符优先级
-
混合类型运算
-
变量初始值
-
精度不够
-
表达式符号错
比较判断与控制流常常紧密相关,测试时注意下列错误:
-
不同数据类型的对象之间进行比较
-
错误地使用逻辑运算符或优先级
-
因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等。
-
比较运算或变量出错
-
循环终止条件或不可出现;
-
迭代发散时不能退出
-
错误地修改了循环变量
-
模块的各条件处理通路测试:程序在遇到异常情况时不应该退出,好的程序应能遇见各种出错条件,并预设各种出差处理通路。如果用户不按照正常操作,程序就退出或者停止工作,实际上也是一种缺陷,因此单元测试要测试各种错误处理路径。一般这种测试着重检查下列问题:
-
输出的出错信息难以理解
-
记录的错误与实际遇到的错误不相符
-
在程序自定义的出错处理段运行之前,系统已介入
-
异常处理不当
-
错误陈述中未能提供足够的定位出错信息
三:如何理解强度测试?
强度测试是为了确定系统在最差的工作环境的工作能力,也可能时用于检验在标准工作压力下的各种资源的最下限指标。
它和压力测试的目标是不同的,压力测试是在标准测试工作环境下,不断增加系统负荷,最终测试出该系统能力到达最大负荷,而强度测试测试则是在非标准工作环境下,甚至不断人为降低系统工作环境所需要的资源,如网络带宽,系统内存,数据锁等已测试系统在资源不足的情况下的工作状态,通过强度测试可以确定本系统正常工作的最差环境。
强度测试和压力测试的测试指标相近,大多数都是时间相关的指标,如并发量\延迟\最小\平均\以及顺序指标等
强度测试需要对系统的结构熟悉,针对系统的特征设计强度测试的方法
四:如何理解压力测试、负载测试、性能测试?
性能测试:是一个较大的范围,实际上性能测试本身包含了性能、强度、压力、负载等多方面的测试内容
压力测试:对服务器的稳定以及负载能力等方面的测试,是一种很平常的测试。增大访问系统的用户数量、或者几个用户进行大数据量操作都是压力测试。而负载测试是压力相对较大的测试,主要是测试系统在一种或者集中极限条件下的响应能力,是性能测试的中重要部分。100个用户对系统进行连续半个小时访问可以看作压力测试,那么连续访问8个小时就可以认为负载测试。1000个用户连续访问系统1个小时也可以看作是负载测试。
实际上压力测试和负载测试没有明显的区别。测试人员应该站在关注整体性能的高度上来对系统进行测试。