软件测试基本概念

it2022-05-05  113

软件测试理论基础

软件测试定义

使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

什么是软件测试

为了发现错误而执行软件测试的过程;应关心程序的效率和鲁棒性(指系统在一定条件下维持某些性能的特性,简单地说,就是适应各种各样的变化的能力。鲁棒性越强,系统精确度就愈高,性能越好)等原因;检验软件是否满足相应的需求; 弄清实际与预期结果的差别。

软件测试生命周期

软件测试流程

测试计划—>测试设计和开发—>测试实施—>测试评估

软件生产流程图

需求阶段

编码开发阶段

软件集成、测试、验收阶段


软件测试分类

按测试阶段分类

单元测试:是对软件组成进行的测试。其目的是检验软件基本组成单位的正确性。测试对象是软件设计的最小单元——模块,又称为模块测试。 集成测试:也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求组装成为子系统或系统,进行集成测试。 系统测试:是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。 验收测试:是部署软件之前的最后一个测试操作,它是技术测试室的最后一个阶段,也叫做交付测试,验收测试的目的是保证软件的准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件的购买者展示该软件的原始的需求。

按技术分类

静态测试与动态测试

静态测试:静态测试不必动态运行程序,也不必进行测试用例设计和结果判断等工作;可以由人工进行,充分发挥人的逻辑思维优势;静态测试的实施不需要特别的条件,容易开展。动态测试:指通过运行被测程序,检查运行结果与预期结果的差异,分析运行效率和健壮性等性能。这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

黑、白、灰盒测试

黑盒测试:也称为功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,指关心软件的输入数据和输出数据。白盒测试:又称为结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的是打开的盒子,去研究里面的源代码和程序结果。接口测试也是一种白盒测试。灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,主要用于集成测试阶段。不仅观念朱输入输出的正确性。同时也关注程序内部的情况。

手工测试与自动化测试

手工测试:是由人一个一个的输入测试用例,然后观察结果、和机器测试相对应,属于比较原始,大事需要一个一个步骤进行测试。优点是自动化无法替代探索性测试、发散思维类无既定结果的测试;缺点是执行的效率比较慢。量大易错。自动化测试:在预设条件下运行系统或应用程序,评估运行结果、预先条件应该包括正常的条件和异常条件,简单的说自动化测试是把人为驱动的测试行为转化为机器执行的一种过程。自动化测试可以节约大量时间,可以处理精确的事务、大数据量事务、并发事务;但是,开发、维护脚本工作量大、费用高。

冒烟测试与回归测试

冒烟测试:在每日build(构建版本)建立后,对系统的基本功能进行简单的测试。这种测试强调程序的主要功能进行的验证,也叫版本验证测试。冒烟测试的对象都是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,可以进行后续的测试工作,冒烟测试的执行者是版本编译人员。冒烟测试一般是开发人员开发完毕之后送给测试人员进行测试时,测试人员要先进行冒烟,用以保证基本功能是正确的,不会阻碍后续的测试。回归测试:在修改了旧代码之后。重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,自动回归测试将大幅降低系统测试、维护升级等阶段的成本。回归测试在整个软件的过程中占有很大的工作量比重,软件开发的各个阶段都会运行多次回归测试。

按测试方法分类

功能测试:就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。性能测试:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。压力测试:通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。负载测试:确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。易用性测试:是指用户使用软件时是否感觉方便,比如是否最多点击鼠标三次就可以达到用户的目的。安装测试:确保该软件在正常情况和异常情况的不同条件下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。通常情况测试伴随安装的整个过程。界面测试:也称为UI测试,测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性,界面中文字是否正确,命名是否统一,页面是否美观,文字、图片组合是否完美等。配置测试:一般是指电脑硬件测试,由于普通用户对电脑硬件并不会很了解,因此需要借助专用的电脑硬件检测工具来实时监测,避免被无良商家欺骗而花冤枉钱。配置测试方法是指通过对被测系统软硬件环境的调整,了解各种不同环境对系统性能影响的程度,从而找到系统各项资源的最优分配原则。文档测试:检验样品用户文档的完整性、正确性、一致性、易理解性、易浏览性。测试文档通常情况下指软件测试文档,测试文档是提供测试信息的一组文档,而并非单纯地指文档测试。兼容性测试:是指检查软件之间能否正确地进行交互和共享信息。随着用户对来自各种类型软件之间共享数据能力和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越来越重要。软件兼容性测试工作的目标是保证软件按照用户期望的方式进行交互。安全性测试:在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。恢复测试:主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。

测试用例

什么是测试用例

测试用例是执行测试之前由测试人员编写的指导测试的文档。主要来解决测什么,怎么测,如何衡量的问题。

测试用例设计方法

等价类划分
有效类:输入满足程序输入的要求,也就是正确的输入无效类:输入不满足程序输入的要求,也就是异常输入

例:针对国内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 且与根据公式计算出来的校验码相符与根据公式计算出的校验码不相符
边界值分析
对输入数据的有效的边界点及其两边的数据进行测试。 控件名称有效等价类无效等价类边界值姓名1-20个字符,不包含数字为空1个字符姓名全部为数字1 - 20 个字符姓名部分为数字2 - 20 个字符姓名大于 20 个字符20 个字符、21 个字符年龄18 - 60之间的整数小于 18 的整数17、18、19年龄大于 60 的整数59、60、61年龄为空年龄小数18.1、60.1年龄字母1a年龄符号1/年龄汉字1顶
因果图

分析软件输入条件或输入条件的等价类,判断哪些是输出条件,并给每个原因和结果赋予一个标识符 找出输入与输出、输入与输入之间对应的关系,画出因果图。 由于语法或者环境的限制,有些组合不可能出现,为了表示这些特殊的情况,把因果图上用一些记号表明约束或限制条件。 因果图的实例网上有很多,请自行搜索。

判定表

也称为决策表,能表示输入条件的组合,以及与每一输入组合对应的动作组合。与因果图法相似判定表法主要侧重输入条件之间的逻辑关系。 判定表通常由因果图生成,请自行搜索实例。

正交排列方法
从大量的数据中挑选适量的、有代表性的点进行测试。

一般的正交表记为: L n ( m k ) . L_n(m^k) . Ln(mk). 其中,n是表的行数,也就是测试组合的次数;k是表的列数,表示控件的个数(因素的个数,或因子个数);m表示每个控件包含的取值。 正交表设计步骤

分析需求—有多少个控件组合,每个控件的取值列出表格。选择正确的正交表: 1)根据控件的个数,确定列数K; 2)根据每个控件的取值个数,确定m; 3)确定m、k后,可以查表,确定n,以及这个表。把控件名称和控件的取值映射到正交表中。把正交表的列名分别用控件名称替代。把正交表的内容替换为控件的取值。设计编写用例,把正交表的每一行转换成1条用例。

缺陷记录

缺陷的识别

通过参考文档(需求、设计、测试用例)来确认缺陷;通过了解软件产品的行业背景(或参考同类典型软件)来发现缺陷;通过沟通来确认和识别缺陷。

缺陷记录标准

保证重现缺陷;对缺陷进行分析,使用最少的步骤重现缺陷;包含所有重现缺陷的必要步骤;要方便阅读尽量附加截图说明;一个缺陷一个报告,一类缺陷可以一个报告。

最新回复(0)