-
按照测试手段分类:黑盒测试、白盒测试;静态测试、动态测试;手工测试、自动化测试
一、黑盒测试
不考虑程序内部结构和特性下,通过相关暴露出的接口,对程序进行测试
只检查程序的功能是否按照需求规格说明的规定正常使用
程序是否能正常的接收输入数据并产生输出数据
一般针对软件界面或可见的功能
从用户的视角,通过不同的数据驱动系统,通过输出来判断
优缺点:
优点:容易实施,不需要关注内部的实现;更贴近用户的使用角度
缺点:测试覆盖率较低,一般只能覆盖到代码量的不到40%
针对黑盒的自动化测试,复用率较低,维护成本较高(关注功能,变化多的也是功能 自动化测试代码维护成本高)
黑盒测试主要测试什么:
1)是否有不正确或遗漏的功能;
2)在接口上,输入是否能正确的接受,能否输出正确的结果;
3)数据结构错误或外部信息(文件数据)访问错误;
4)性能是否满足要求
设计方法:
1)等价类划分法:输入条件等价的归为一类,形成几组代表性的输入
2)边界值分析法:关注边界条件
3)错误推测法:基于经验或直觉来判断程序中可能出现错误,针对性的设计测试用例(文件超大或文件不存在;界面输入时考虑特殊字符)
4)因果图法:对多种输入条件组合的测试方法
5)正交试验分析法:筛选代表性的输入数据
6)状态迁移图法:梳理软件功能点中的状态关系,画出状态变迁图设计测试用例
7)流程分析法:梳理程序的逻辑执行的路径来设计测试用例
二、白盒测试(结构化测试 透明盒测试)
1、根据程序的逻辑结构来设计测试用例,用逻辑的覆盖率来衡量测试的完整性,强调逻辑
2、逻辑的单位:
语句 :语句覆盖指的是用例设计出来保证每一条语句至少执行一次
条件 :保证每一个条件表达式执行一次
条件组合: 覆盖所有不同条件的组合成果
分支 :每个分支执行一次
路径:每一个可能的路径至少执行一次
优点:迫使测试人员去仔细思考软件的实现,理解原理;可以检测代码中的每条分支和路径;揭露隐藏在代码中的错误;对代码的测试比较彻底
缺点:追求高覆盖率导致成本高;无法检测代码中遗漏的路径和数据敏感性(数据处理的有问题)的错误;不能直接验证需求的正确性
测试方法:
代码检测法:多面检查 走查
静态结构分析法:测试工具分析源代码的内部逻辑结构
静态质量度量法
逻辑覆盖法
基本路径测试法
三、灰盒测试
介于黑白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现
四、静态测试
不运行被测程序,直接看文档或代码,来发现程序的不足
互审 走查 会议
五、动态测试
动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等
六、手工测试
由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用于针对深度的测试和强调主观判断的测试(探索性测试)
七、自动化测试
使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查(单元测试 接口测试 性能测试)
八、手动测试与自动化测试区别
1、手工测试的优缺点
易发现缺陷(创造性 主观性)
容易实施(只要环境具备 人员到位)
创造性、灵活性
覆盖量化难(人对测试做到什么程度很难量化、覆盖率能达到多少不好量化)
重复测试效率低
不一致性、可靠性低
人力资源依赖(依赖人能力的高低)
2、自动化测试
高效率、速度快
高复用性
覆盖率容易度量
准确、可靠
不知疲劳
机械、发现缺陷率低
一次性投入大(从测试工具的选型、框架的设计、脚本的编写与维护投入大)
查看全部 -
其他测试
回归测试
Monkey测试
冒烟测试
AB测试
查看全部 -
文档测试
可靠性测试
易用性测试
本地化测试
部署测试
无障碍测试
查看全部 -
兼容性测试
查看全部 -
安全测试
渗透测试
查看全部 -
性能测试
查看全部 -
软件测试类型
查看全部 -
敏捷测试(Agile Testing)
遵循敏捷宣言的一种测试实践
探索式测试的优点:
更能激发测试人员的创造性和工作乐趣
增加了发现新的或较深入Bug的可能性
在较短的时间内找到更多Bug以及对SUT做一个快速的评估
有利于更加有效地实施自动化
更加适用于敏捷项目
减少了在简单、繁复上用例的无谓编写时间
探索式测试的缺点:
测试管理上有局限性,较难协调和控制
对于Bug的重复利用和重现上作用有限
对测试人员的测试技能和业务知识深度依赖较大
只有在SUT已完全可用的前提下才更有作用
ET的生产率很难定义
ET本身较难进行自动化
查看全部 -
软件测试的分类
按阶段分类:单元测试、集成测试、系统测试、验收测试
单元测试
定义:对软件中的最小可测试单元进行检查和验证
原则1:尽可能保证各个测试用例时互相独立的
原则2:一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求
益处:能尽早发现缺陷、有利于重构、简化集成、文档、用于设计
集成测试
定义:是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装城模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动
主要实施方案:Big bang、自顶向下、自底向上、核心系统集成、高频集成
与单元测试对比:测试的对象、依据、方法不同
系统测试
定义:是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行
关注点:系统本身的使用、与其他相关系统的连通、在不同使用压力下的表现、在真实使用环境下的表现
与集成测试的对比:
验收测试
定义:也称交付测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
细分:用户验收测试、运行验收测试、合同和规范验收测试、alpha测试、Beta测试
查看全部 -
软件测试的分类
软件测试模式
查看全部 -
讲的特别好,点赞。
查看全部 -
测试分为:单元测试、集成测试、系统测试、验收测试
单元测试:对软件中最小可测试单元进行检测与验证。
单元测试益处:尽早发现缺陷、有利于重构、简化集成、减少文档、用于设计
单元测试限制:不可覆盖所有执行路径,不可保证捕捉到所有路径,每一行代码,一般需要3-5行测试代码才可完成
集成测试:在单元测试基础上测试,测试是否可达到或实现相应技术指标要求的活动、
验收测试分为:用户验收测试、运行验收测试、合同与规范验收、alpha测试,Beta测试
查看全部 -
2-软件测试手段
根据测试对象的可见度:黑盒测试、 白盒测试
根据状态:静态测试、动态测试
执行方式:手工测试、自动化测试
黑盒测试:
不考虑程序内部结构和内部特性下,通过相关暴露出的接口,对程序进行测试。
只检查程序的功能是否按照需求规定,正常使用;
程序是否能适当的输入输出数据,并产生正确的输出信息;
一般针对软件外面的界面,可见的功能;
从用户的视角,通过不同数据事件,通过输出结果进行判断;
优点:
1.容易实施,不需要关注内部的实现
2.更贴近用户的使用角度
缺点:
1.测试覆盖率较低,一般只能覆盖到代码量的不到40%
2.针对黑盒的自动化测试,复用率较低,维护成本较高。因:产品活动增/删(更新)
黑盒测试主要测试什么
1.是否有不正确或遗漏的功能?
2.在接口上,输入是否能正确的接受?能否输出正确的结果?
3.是否有数据结构错误或外部信息(例如数据文件)访问错误?
4.性能上是否能够满足要求?
黑盒测试的主要设计方法
等价类划分法:针对程序的输入条件进行分类,输入典型的数据
边界值分析法:特殊的边界数据,测试代码的边界状态
错误推测法:基于经验,直觉,判断错误的地方;特殊字符,文件不存在
因果图法:根据输入输出看做原因和结果,形成因果图。(因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。)
正交试验分析法:选出代表性的数据,作为输入数据
状态迁移图法:软件审批的过程,各种状态迁移关系图来设计
流程分析法:处理程序逻辑执行的路径
白盒测试:逻辑覆盖率
主要的逻辑单位:
语句覆盖:保证每条语句执行一次
分支(判定):保证每条分支至少执行一次
条件:条件表达式,至少计算一次
条件组合:所以不同条件下的组合情况
路径:程序中,每个可能的路径至少执行一次
优点
1.迫使测试人员去仔细思考软件的实现,理解原理。
2.可以检测代码中的每条分支和路径。
3.揭示隐藏在代码中的错误。
4.对代码的测试比较彻底。
缺点
1.昂贵。
2.无法检测代码中遗漏的路径和数据敏感性错误
3.不能直接验证需求的正确性白盒主要测试方法:
代码检测法:多面 代码审查
静态结构分析法:测试工具,内部结构分析
静态质量度量法:标准的度量模型
逻辑覆盖法:6种逻辑,语句 ,分支,条件,条件组合,路径,判定
基本路径测试法:通过分析复杂度,选出基本可执行路径的集合。程序控制流图,描述程序控制流
灰盒测试
介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现
静态测试
定义:静态测试是指无须执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率;
动态测试
定义:动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。
手工测试
由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。众包测试,探索式测试
自动化测试
使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
单元测试、接口测试、性能测试等查看全部 -
很不错很不错很不错
查看全部 -
性能测试:验证软件的系统性能,可以满足需求规格,验证我们的系统可以满足需求所要求的性能
a·负载测试:在测试过程中,逐步的增加负载,来观察系统的表现,最终确定出系统在正常的指标范围下的最大负载。
b·压力测试:测试系统在极限情况下的压力情况,最终系统在什么样的压力环境下会导致失效,不能正常运行,确定出我们这个系统所能承受的最大极限。
c·稳定性测试:一般是以稍大于正常业务量的负载进行持续的、长时间的测试,比如:24*5,连续5天的对这个系统进行24小时的施加压力,以确定系统在较长时间的运行情况下,我们这个系统地稳定性情况。
性能指标:(WAB应用)
并发用户数VU,同时访问系统的用户数量;
每秒事务数TPS,每秒系统处理业务的数量;
系统响应时间;
设备性能,CPU等内存使用情况
性能测试工具:LoadRunner(国内普及高) ,Silkperformer , Jmeter(java开源的有效的测试工具) ,WebLoad , Apache Bench, LoadUI(专门针对http接口的性能测试)
静态性能评估:开发Web应用时,基于一系列Web应用页面性能的最佳实践队Web应用的页面进行静态分析,并给出评估结果的性能分析方法。
评估的标准/工具(YSlow,PageSpeed)
下面博主以chrome浏览器为例,演示了这两个插件。
应用性能管理(APM):
提供对系统的实时监控以实现性能管理、故障管理的解决方案。
下面博主演示了听云公司的官网上的产品——听云server的使用。
查看全部
举报