软件测试-按测试阶段/对象/测试手段分类

软件测试3

  • 1. 测试阶段
    • 1.1 单元测试
    • 1.2 冒烟测试
    • 1.3 集成测试---对接口进行测试
    • 1.4 系统测试---对完整软件的测试
    • 1.5 验收测试
  • 2. 按对象进行分类
  • 3. 按是否执行程序划分

1. 测试阶段

软件测试-按测试阶段/对象/测试手段分类_第1张图片

1.1 单元测试

单元测试是对软件中的最小可验证单元进行检查和验证。 比如对Java中的类和方法的测试。

测试原则:
1、尽可能保证测试用例相互独立(测试用例中不能直接调用其他类的方法,而应在测试用例中重写模拟方法);
例:
比如下面的这个testlogin中调用了getpassfromDB这个依赖的类,那么这条测试用例失败的时候,很难判断是testlogin出的错误还是getpassfromDB出的错。
正确的方法是:编写一个模拟的方法,来取代外部的依赖,对于这些必须验证的依赖的关系,可以放在后面的集成测试中去
软件测试-按测试阶段/对象/测试手段分类_第2张图片
2、此阶段一般由软件的开发人员来实施,用来自我测验。用以检验所开发的代码功能符合自己的设计要求。

单元测试的好处:
1、尽早的发现缺陷;(对需求设计的二次确认)
2、利于重构;
3、简化集成;(保证了最小单元模块的稳定性)
4、文档;(包括了对模块的基本理解,通过对单元测试代码阅读,就可以基本理解模块的功能特性,可以减少文档的阻碍)
5、用于设计。(设计思路体现在单元测试中,单元测试最大的优点是设计本身是可以验证设计的)

单元测试的不足:
1、不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误;
2、每行代码需要3~5行代码进行单元测试,存在投入与产出的平衡。
单元测试框架:
软件测试-按测试阶段/对象/测试手段分类_第3张图片

1.2 冒烟测试

冒烟测试:
比如测试app 先别直接测试, 先去测试一下这个app是否具有可测试性。如果这个app直接装上就崩溃,就不用测试了,白费劲儿。比如支付宝 的主要功能是转账,先看看能不能转账。
冒烟测试目的是确认软件基本功能正常,冒烟测试的执行者是版本编译人员。
现基本执行对象为测试人员,在正规测试一个新版本之前,投入较少的人力和时间验证基本功能,通过则测试准入。

1.3 集成测试—对接口进行测试

集成测试是在单元测试的基础上,把软件单元按照软件概要设计规格说明的规格要求,组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求。
对模块与模块之间进行测试
集成测试包括
BigBang、(把大部分的开发模块耦合起来形成一个完整的系统)
自顶向下、(从主程序开始,逐层向下的,沿控制层逐渐控制到所有的模块)
自底向上(从最底层开始逐层向上的,针对已经组装过得模块,能够比较好的锁定软件故障所在的位置)、
核心系统集成(先对核心部件进行测试,再逐渐扩展)、
高频集成(每隔一段时间开发团队就对代码进行一次测试)。

1.4 系统测试—对完整软件的测试

(更多使用真实的环境来做,而不是像集成,单元多用模拟的方式)

集成测试和系统测试之间的比较:
1、测试内容:集成测试是测试各个单元模块之间的接口,系统测试是测试整个系统的功能和性能;
2、测试角度:集成测试偏重于技术的角度进行测试,系统测试是偏重于业务的角度进行测试。
3.测试对象:
集成测试:由通过了单元测试的各个模块所集成起来的构件
系统测试:除了软件之外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统
4.测试时间:
集成测试介于单元和系统之间
系统测试在集成测试之后
一般先测功能,测完功能再继续测后面的
兼容性:
网站:同一个网站在不同的浏览器上能不能正常的使用
APP:app在不同手机型号上的表现(因为虽然都是安卓系统 但小米,华为等都对安卓系统做了一些改动)
易用性:
软件好不好用,用户体验如何
稳定性:
一个软件在一直使用的过程中会不会出问题,默认是72小时
UI测试:
检查软件的界面是否好看

1.5 验收测试

也称交付测试,是 针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。(就像卖房子房主去看看是否符合自己的要求)

验收测试包括alpha测试和beta测试,alpha测试是由开发者进行的软件测试,beta测试是由用户在脱离开发环境下进行的软件测试。

总结–生命周期各测试方法对比
软件测试-按测试阶段/对象/测试手段分类_第4张图片

2. 按对象进行分类

软件测试-按测试阶段/对象/测试手段分类_第5张图片
按对象:
App测试,Web测试,物联网测试,车联网测试,嵌入式测试,大数据测试(皆是软件测试)
嵌入式测试:
例如扫地机器人的程序就是嵌入式程序写进去的,针对嵌入式开发进行测试

3. 按是否执行程序划分

£ 静态测试(Static testing)
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。阿旺分析如下

检查项:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审手册。

静态质量:度量所依据的标准是ISO9126。在该标准中,软件的质量用以下几个方面来衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性(Maintainability)、可移植性(Portability)。

£ 动态测试(Dynamic testing)
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果

你可能感兴趣的:(软件测试,软件测试)