测试基础9
什么事UML?
Unifid Modeing Language 他是一种用于描述,构造软件系统以及商业建模的语言,简单的理解就是它可以以一种直观的方式表示出一个系统的各项内容
什么是CMM?
CMM:Capability Maturity Model 既能力成熟度模型。他是一个分5级的,可以描述结构完善程度的模型,用它来说明软件的效能。
什么是兼容性?兼容性侧重哪些方面?
兼容性主要是检查软件在不容的硬件平台、软件平台上是否可以正常的运行,既是通常说的软件的可迁移性。
兼容的类型,如果细分的话,有平台的兼容,网络兼容、数据库兼容、以及数据库格式的兼容。
兼容的重点是对兼容环境的分析,通常是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据软件的需求文档,一般都能得出用户在什么环境下使用该软件,把这些环境整理成表单,就会得出兼容测试的兼容环境了
兼容会配置测试的区别在于,做配置测试通常不是clean OS下做测试,而兼容性多是在CleanOS的环境下做的
我现在有个程序,发现在windows上运行的很慢,怎么判断是程序存在问题还是软硬件存在问题?
1、检查系统是否有中毒的特性
2、检查软件/硬件的配置是否符合软件的推荐标准
3、确认当前的系统是否是独立,既没有对完提供什么消耗CPU资源的服务
4、如果是C/S或B/S的结构的软件,需要检查是不是因为与服务器的连接有问题或者访问有问题造成的。
5、在系统没有任何负载的情况下,查看性能监视器。确认应用程序对CPU/内存的访问情况。
正交表测试用例设计方法的特点是什么?
用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂。
对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷、更复杂缺陷,还是无能为力的。
具体的情况下,正交表一般很难做的,大多数,只是在系统测试的时候使用此方法。
单元测试的逻辑有哪些?
逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、静态数据流分析
单元测试的主要内容是什么?
单元测试大多数由开发人员来完成,测试人员技术背景较好或者开发系统软件时间可能会安排测试人员进行单元测试。
1、模块接口测试
接口测试正确与否应该考虑下列因素
-输入的实际参数与形式参数的个数是否相同
-输入的实际参数与形式参数的个数是否匹配
-输入的实际参数与形式参数的量纲是否一致
-调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同。
-调用其他模块时所给实际参数的个数是否与被调模块的形参属性匹配。
-调用其他模块时所给实际参数的个数是否与被调模块的形参量纲一致。
-调用预定义函数时所用的参数的个数、属性、和次序是否正确
-是否存在与当前入口点无关的参数引用
-是否修改了只读型参数
-对全程变量的定义,各模块是否一致
-是否把某些约束作为参数传递
如果模块功能包括外部输入输出,还应该考虑下列因素
-文件属性是否正确
-OPEN/CLOSE语句是否正确
-格式说明,与输入输出语句是否匹配
-缓冲区大小与记录长度是否匹配
-文件使用前是否已经打开
-是否处理了文件尾
-是否处理的输入输出错误
-输出信息中是否有文字性错误
-局部数据结构测试
-边界条件测试
-模块中所有独立执行通路测试
(2)局部数据结构测试:检查局部数据结构是为了保证临时在模块内的数据在程序执行过程中完整、正确。局部功能是整个功能运行的基础。重点是一些函数是否正确执行,内部是否运行正确,局部数据结构往往是错误的根源,应仔细设计用例,力求发现下面几类错误
-不合适或不相融的类型说明
-变量无初值
-变量初始化,或者省缺值有错
-不正确的变量名(拼错或者不正当的截断)
-出现上溢、下溢和地址异常
(3)边界条件测试:边界条件测试是单元测试中最重要的一项任务。众所周知,软件经常在边界上失效,采用边界值分析技术,针对边界值及其左右设计测试用例,很有可能发现新的错误,边界条件测试是一项基础测试,也是后面系统测试中的功能测试的重点。边界测试执行的较好,可以大大的提高程序的健壮性。
(4)模块中所有独立路径测试,在模块中应对每一条独立执行路径进行测试,单元测试的基本任务是保证模块中每条语句至少执行一次。测试目的主要是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。具体做法就是程序员逐条调试语句,常见错误包括;
-误解或者用错可算符优先级
-混合类型运算
-变量初值错
-精度不够
-表达式符号错
比较判断常常与控制流测试时候注意下列错误:
-不同数据类型的对象之间的比较
-错误的使用逻辑运算符的优先级
-因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等
-比较运算或变量出错
-循环终止条件或不可能出现
-迭代发散时不能退出
-错误的修改了循环变量
-模块的各条错误处理通路测试:程序在遇到各种异常情况时,不应该退出,好的程序应该能遇见各种出错条件,并预设各种出错处理通路。如果用户不按照正常操作,程序就退出或者停止工作,实际上也是一种缺陷,因此单元测试要测试各种错误的处理路径。一般这种测试注重检查下列问题。
-输出的出错信息,难易理解
-记录错误与实际遇到的错误不相符
-在程序自定义的出错处理阶段运行之前,系统已介入
-异常处理不当;
-错误陈列中未能提供足够的定位出错信息。