使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
测试计划—>测试设计和开发—>测试实施—>测试评估
单元测试:是对软件组成进行的测试。其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元——模块,又称为模块测试。 集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。 系统测试:是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。 验收测试:是部署软件之前的最后一个测试操作,它是技术测试室的最后一个阶段,也叫做交付测试,验收测试的目的是保证软件的准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求。
静态测试与动态测试
静态测试:静态测试不必动态运行程序,也不必进行测试用例设计和结果判断等工作;可以由人工进行,充分发挥人的逻辑思维优势;静态测试的实施不需要特别的条件,容易开展。动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,分析运行效率和健壮性等性能。这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。黑、白、灰盒测试
黑盒测试:也称为功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,指关心软件的输入数据和输出数据。白盒测试:又称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的是打开的盒子,去研究里面的源代码和程序结果。接口测试也是一种白盒测试。灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,主要用于集成测试阶段。不仅观念朱输入输出的正确性。同时也关注程序内部的情况。手工测试与自动化测试
手工测试:是由人一个一个的输入测试用例,然后观察结果、和机器测试相对应,属于比较原始,大事需要一个一个步骤进行测试。优点是自动化无法替代探索性测试、发散思维类无既定结果的测试;缺点是执行的效率比较慢。量大易错。自动化测试:在预设条件下运行系统或应用程序,评估运行结果、预先条件应该包括正常的条件和异常条件,简单的说自动化测试是把人为驱动的测试行为转化为机器执行的一种过程。自动化测试可以节约大量时间,可以处理精确的事务、大数据量事务、并发事务;但是,开发、维护脚本工作量大、费用高。冒烟测试与回归测试
冒烟测试:在每日build(构建版本)建立后,对系统的基本功能进行简单的测试。这种测试强调程序的主要功能进行的验证,也叫版本验证测试。冒烟测试的对象都是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,可以进行后续的测试工作,冒烟测试的执行者是版本编译人员。冒烟测试一般是开发人员开发完毕之后送给测试人员进行测试时,测试人员要先进行冒烟,用以保证基本功能是正确的,不会阻碍后续的测试。回归测试:在修改了旧代码之后。重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试在整个软件的过程中占有很大的工作量比重,软件开发的各个阶段都会运行多次回归测试。测试用例是执行测试之前由测试人员编写的指导测试的文档。主要来解决测什么,怎么测,如何衡量的问题。
例:针对国内18位身份证号码验证,通过等价类划分法设计测试用例。 其中前两位表示所在省,34位标识所在地级市,56位表示所在县级市,7-14位表示出生年月日,15-17表示为顺序码,最后一位表示对前17进行加权求和并mod11,如果结果为10,用‘X’表示。
输入有效等价类无效等价类18 位的身份证号18 位数字字符或前 17 位为数字字符且最后一位为 ‘X’大于 18 位18 位的身份证号小于 18 位或为空18 位的身份证号除了最后一位为 X,其他存在非数字字符18 位的身份证号最后一位不是 X,而是其他的数字字符第1位数字字符数字为 1 - 8数字 0 或者数字 9第 2 - 6 位每一位数字都是0-9出生年月日 7 - 14 位11-12 位范围 01 - 1211 - 12 位为 00 或者大于 12出生年月日 7 - 14 位13-14 位范围 01 - 3113 - 14 位为 00 或者大于 3115 - 17 位每一位都是数字 0 - 9第 18 位数字 0 - 9 或者非数字字符 X 且与根据公式计算出来的校验码相符与根据公式计算出的校验码不相符分析软件输入条件或输入条件的等价类,判断哪些是输出条件,并给每个原因和结果赋予一个标识符 找出输入与输出、输入与输入之间对应的关系,画出因果图。 由于语法或者环境的限制,有些组合不可能出现,为了表示这些特殊的情况,把因果图上用一些记号表明约束或限制条件。 因果图的实例网上有很多,请自行搜索。
也称为决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。与因果图法相似判定表法主要侧重输入条件之间的逻辑关系。 判定表通常由因果图生成,请自行搜索实例。
一般的正交表记为: L n ( m k ) . L_n(m^k) . Ln(mk). 其中,n是表的行数,也就是测试组合的次数;k是表的列数,表示控件的个数(因素的个数,或因子个数);m表示每个控件包含的取值。 正交表设计步骤
分析需求—有多少个控件组合,每个控件的取值列出表格。选择正确的正交表: 1)根据控件的个数,确定列数K; 2)根据每个控件的取值个数,确定m; 3)确定m、k后,可以查表,确定n,以及这个表。把控件名称和控件的取值映射到正交表中。把正交表的列名分别用控件名称替代。把正交表的内容替换为控件的取值。设计编写用例,把正交表的每一行转换成1条用例。