-
集成测试
定义:是在单元测试的基础上,测试再将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。
主要的实施方案:
Big Bang
自顶向下
自低向上
核心系统集成
高频集成
查看全部 -
第一个单元测试用例操作(JUnit):
打开EClipse,新建Java Project,Finish完成一个java工程的创建
把JUnit相关的依赖部导入项目中:在该项目上右键Properties,Libraries下Add Libraries中添加Junit,完成之后项目中就会出现JUnit4。
导入java项目
使用JUnit框架的话,在该java文件上new一个JUnit Test Case,选择默认的要测试的方法
在生成的单元脚本上,右键Run as一下,就可以看到单元测试的脚本执行情况
查看全部 -
单元测试的益处:
能尽早发现缺陷
有利于重构
简化集成
文档
用于设计
局限性:
不可能覆盖所有的执行路径
投入和产出的一个平衡
单元测试的框架:
Xunit:nunit,JUnit,CppUnit,PHPUnit
查看全部 -
软件测试最新的定义:
使用人工或者自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
——IEEE定义(ISO/IEC/IEEE 29119)
测试原则:
测试显示缺陷的存在,但不能证明系统不存在缺陷
穷尽测试是不可能的,应设定及时终止的条件
测试应该尽早进行
缺陷具备群集特性
测试的杀虫剂悖论
测试的二八原则
测试活动依赖于测试背景
查看全部 -
aaadsafsa
查看全部 -
4-1 其他测试分类
软件测试的分类
其他的一些测试分类概念
回归测试、冒烟测试、Monkey测试、AB测试
现在互联网非常重视的一个测试:A/B测试
查看全部 -
兼容性测试
查看全部 -
软件测试
对软件产品进行测试以确保其符合产品安全需求和质量标准
渗透测试
通过模拟对软件系统的恶意攻击行为来评估系统安全性的一种测试。
查看全部 -
软件测试的分类
按测试类型来分类
功能测试 性能测试 兼容性测试
部署测试 易用性测试
文档测试 本地化测试
安全测试 无障碍测试 可靠性测试
功能测试
定义:根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
针对的问题:功能错误或遗漏、界面问题、数据及访问错误初始化及终止错误
查看全部 -
敏捷测试
Agile Testing--遵循敏捷宣言的一种测试实践
敏捷测试强调从客户角度进行测试
重点关注迭代测试新功能,不在强调测试阶段
尽早测试,不间断测试,具备条件既测试
强调持续反馈
预防缺陷重于发现缺陷
基于脚本的测试-SBT
Script-based Testing
Scripted Testing(ST)
Exploratory Testing(ET) 逐渐开始非常流行的方式
探索式测试(ET)
完全抛开测试脚本的测试
它是一种测试风格、思维而不是一种测试技术
ST和ET是互补的
探索式测试的优点:
更能激发测试人员的创造性和工作乐趣
增加了发现新的或较深入Bug的可能性
在较短的时间内找到更多Bug以及对SUT做一个快速的评估
有利于更加有效地实施自动化
更加适用于敏捷项目
减少了在简单、繁复上用例的无谓编写时间
探索式测试的缺点:
测试管理上有局限性,较难协调和控制
对于Bug的重复利用和重现上作用有限
对测试人员的测试技能和业务知识深度依赖较大
只有在SUT已完全可用的前提下才更有作用
ET的生产率很难定义
ET本身较难进行自动化
局部探索式测试
输入、状态、代码路径、用户数据、执行环境(被测系统的五大要素)
基于风险的测试-RBT
Risk-based Testing
一种基于对软件失效的风险评估并以此指导测试计划、设计、执行、结果评价的软件测试类型
那些是风险?
质量风险
管理风险
风险级别=风险可能性*风险严重度
分析要素分=Sum(单项权重*得分)
基于模型的测试-MBT
查看全部 -
按测试模式来分类
瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等
现在使用最广泛的用模型:
查看全部 -
按测试手段分类
黑盒测试、白盒测试
静态测试、动态测试
手工测试、自动化测试
黑盒测试覆盖率低,一般只能覆盖到代码量的不到40%,复用率低,维护成本高
白盒测试(结构法测试/透明测试)
主要的逻辑单位:语句、条件、条件组合、分支、路径
白盒测试的主要测试方法:
代码检测法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法
灰盒测试
介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现
静态测试
静态测试是指无须执行被测程序
动态测试:
动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等。
手工测试:
由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。更适用针对深度的测试和强调主观判断的测试。
众包测试、探索式测试
自动化测试:
使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
单元测试、接口测试、性能测试等
查看全部 -
软件测试的分类
按测试手段:一黑一白、一静一动、手工自动。
可见度{黑盒测试和白盒测试
状态{静态测试和动态测试
方式{手工测试和自动测试
黑盒测试:
又称功能测试、数据驱动测试或基于规格
说明的测试。是通过使用整个软件或某种软件功能来
严格测试,而并没有通过检查程序的源代码或者很清
楚地了解该软件的源代码程序具体是怎么设计的。测
试人员通过输入他们的数据然后看输出的结果从而了
解软件怎么工作。
测试时,把程序看作一个不能打开的盒子,
在完全不考虑程序内部结构和内部特性的情况下,测
试者在程序接口进行测试,它只检查程序功能是否按
照需求规格说明书的规定正常使用,程序是否能适当
地接受和正确的输出。
从用户角度出发,根据产品应该实现的实际
功能和已定义好的产品规格来验证产品应该具有的功
能是否实现,每个功能是否正常使用,满足用户需求
。
区别:黑盒测试着重测试软件功能
优点:1容易实施不需要关注内部的实现
2贴近用户的使用角度
缺点:1测试覆盖率低
2针对黑盒测试的自动化测试,复用率低,维
护成本高
测试什么:1是否有不正常或遗漏的功能
2在接口上,输入是否能正常的接受,能
否输出正确的结果
3是否有数据结构错误或外部信息访问错
误
4性能是否满足需求
方法:
等价类划分法
边界值分析法
错误推测法
因果图法
正交试验分析法
状态迁移法
流程分析法
(以上待了解)
白盒测试:
白盒测试又称结构测试、透明盒测试、逻
辑驱动测试或基于代码的测试。白盒测试是一种测试
用例设计方法,盒子指的是被测试的软件,白盒指的
是盒子是可视的,你清楚盒子内部的东西以及里面是
如何运作的。"白盒"法全面了解程序内部逻辑结构、
对所有逻辑路径进行测试。"白盒"法是穷举路径测试
。在使用这一方案时,测试者必须检查程序的内部结
构,从检查程序的逻辑着手,得出测试数据。
常用的软件测试方法有两大类:静态测试方法和动态
测试方法。其中软件的静态测试不要求在计算机上实
际执行所测程序,主要以一些人工的模拟技术对软件
进行分析和测试;而软件的动态测试是通过输入一组
预先按照一定的测试准则构造的实例数据来动态运行
程序,而达到发现程序错误的过程。在动态分析技术
中,最重要的技术是路径和分支测试。下面要介绍的
六种覆盖测试方法属于动态分析方法。
(以上来自百度百科)
主要的逻辑单位:语句 条件 条件组合 分支 路径
优点:1迫使测试人员去仔细思考软件的实现,理解
原理
2可以检测代码中的每条分支和路径
3揭示隐藏在代码中的错误
4对代码的测试比较彻底
缺点:
1昂贵、工作量大
2无法检测代码中遗漏的路径和数据敏感性错
误
3不能直接验证需求的正确性
方法:
代码检测法
静态结构分析法
静态质量度量法
逻辑覆盖法
基本路径测试法
(以上待了解)
静态测试:
指无须执行被测程序,而是通过评审软件
文档或代码度量程序、静态复杂度检查软件是否符合
编程标准,借以发现编写的程序的不足之处外,减少
错误出现的概率。
方式:互审-走查-会议
动态测试:
通过运行被测程序,检查运行结果与预期
结果的差异,并分析运行效率正确性和健壮性。
手工测试:
由专门的测试人员从用户视角验证软件是
否满足设计要求的行为。更适用针对深度的测试和强
调主观判断的测试。
自动测试:
使用单独的测试工具软件控制测试的自动
化执行以及对预期和结果进行自动检查。
查看全部 -
测试所遵循的原则
测试显示缺陷的存在,但不能证明系统不存在缺陷。
穷尽测试是不可能的,应设定及时终止的条件。
测试应该尽早进行。
缺陷具备群集特性。
测试的杀虫剂悖论(在测试过程中使用同样的测试用例,测试方法多次重复的测试某一模块,我们就无法发现新的缺陷,所以测试用例和测试方法应该不定期的评审修改。)
测试的二八原则。
查看全部 -
什么是软件测试
IEEE定义(ISO/IEC/IEEE 29119)
使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
查看全部
举报