-
什么是软件测试?
早期定义:软件测试是对程序能够按预期运行建立起一种信心。
经典定义:测试是为了发现错误而执行程序的过程。
IEEE定义(ISO/IEC IEEE 29119):使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求。并找出与预期效果之间的差异。
软件测试的测试对象
软件测试的五大要素和两个目标
软件测试所遵循的原则:1、测试显示缺陷的存在,但不能证明系统不存在缺陷;2、穷尽测试是不可能的,应设定及时终止的条件;3、测试应该尽早进行;4、缺陷具备群集特性;5、测试的杀虫剂悖论;6、测试的二八原则;7、测试活动依赖于测试背景
查看全部 -
其他的一些测试类型概念
回归测试:软件功能修改后,对软件进行重新测试以确认修改没有引入新的错误或导致其他部分产生错误。回归测试的重心在关键模块和重点功能组件。软件研发周期中会进行多次回归测试,且尽量实现自动化。
Monkey测试:Monkey测试,也称搞怪测试。就使用一些随机、稀奇古怪的方式来操作软件,以测试系统的健壮性和稳定性。
冒烟测试:来自于硬件板卡验证术语。软件上则用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。(“每日构建”中用冒烟测试来确认合入的代码没有影响主要功能的正常。)
A/B测试:多用于互联网行业,通过为页面提供2个版本给用户使用并记录相关的用户行为数据,来确认更优化设计的一种测试方案。
A/B测试实施要点:多个方案并行;每次测试仅改动一个变量;按照某种规则进行优胜劣汰。
A/B测试工具:Google Analytics Content Experiments;Visual Website Optimizer
查看全部 -
文档测试:针对软件产品的交付品,配套的文档类部件的测试。如用户手册、使用说明、用户帮助文档等。
文档测试关注要点:完整性、正确性、一致性、易理解性、易浏览性
可靠性测试:软件可靠性、硬件可靠性
易用性测试:是指测试用户使用软件时是否感觉方便,是否能保证用户使用体验的测试类型。
本地化测试:针对软件的本地化版本实施的针对性测试(主要测试内容:语言、书写习惯;时区、日期格式、货币;当地风俗、法律法规;政治敏感内容)
部署测试:也称安装测试,主要验证系统部署过程,并确保软件经过安装测试后可以正常使用。(主要测试内容:在不同环境下的部署验证;参照部署文档执行,过程的合理性、正确性;基础数据)
无障碍测试:Accessibility Test.也成为可访问性测试。是指软件需要提供便于特殊人群使用的功能,包括视障、听障、老年人、身体残疾用户等,无障碍测试则是针对这部分功能的测试 。
查看全部 -
软件测试的分类:
按测试阶段分类:单元测试、集成测试、系统测试、验收测试。
单元测试,就是对软件中的最小可测试单元进行检查和验证。
单元就是人为规定的可测试的最小模块,一般针对代码。
单元测试的原则:1、尽可能保证各个测试用例是互相独立的。
2、一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。
单元测试的益处:1、能尽早发现缺陷;2、有利于重构;3、简化集成;4、减少文档的存在;5用于设计。
单元测试的限制:1、不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误;2、每一行代码,一般需要3~5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。
集成测试,是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。
系统测试,是将经过集成测试的软件,作为计算机系统的一部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。
验收测试,
查看全部 -
软件测试所遵循的原则
一、测试显示缺陷的存在,但不能证明系统不存在缺陷
二、穷尽测试是不可能的,应设定及时终止的条件
三、测试应该尽早进行
四、缺陷具备群集特性,越是问题多的模块越是应该重点关注
五、测试的杀虫剂悖论,用不同的方法多次测试系统的不同的部分从而发现更多的问题
六、测试的二八原则,把80%的测试时间或资源用在系统20%的重要模块上
七、测试活动依赖于测试背景
查看全部 -
什么是软件测试?
IEEE定义(ISO/IEC/IEEE 29119)
使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。
查看全部 -
敏捷测试
基于脚本的测试-SBT:
Script-based Testing
Scripted Testing(ST)
Exploratory Testing(ET)
探索式测试(ET):
完全抛开测试脚本的测试
它是一种测试风格、思维而不是一种测试技术
(ST与ET一般都是互补的
探索式测试的优点:
更能激发测试人员的创造性和工作乐趣
增加了发现新的或较深入的bug的可能性
在较短时间内找到更多bug以及对SUT做一个快速的评估
有利于更加有效的实施自动化
更加适用于敏捷项目
减少了在简单、繁复上用例的无谓编写时间
探索式测试的缺点:
测试管理上有局限性,较难协调和控制
对于BUG的重复利用和重现上作用有限
对测试人员的测试技能和业务知识深度依赖较大
只有在SUT已完全可用的前提下才更有作用
ET的生产率很难定义
ET本身较难进行自动化
局部探索式测试:
输入
状态
代码路径
用户数据
执行环境
全局探索式测试
漫游测试法
商业区:软件从启动到关闭,用户所使用到的一些功能
旅馆区:软件在没有实际运行时的一些功能,后台进程和定时任务
历史区:版本的遗留代码的和曾发生过许多问题的功能
旅游区:新用户会用到的一些功能
局部探索式测试 五大要素
输入:接受输入,产生输出,存储数据,进行运算
测试角度为输入顺序,输出内容,输出异常
状态:临时状态(运行时有效,阶段有效),永久状态(数据库保存,文件保存)
代码路径:对代码的覆盖
用户数据:尽量真实
查看全部 -
敏捷测试
Agile Testing--遵循敏捷宣言的一种测试实践
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
响应变化 重于 遵循计划 在每对的比较中,后者并非全无价值,但我们更看重前者
特点:
1、强调从客户角度进行测试
2、重点关注迭代测试新功能,不再强调测试阶段
3、尽早测试,不间断测试,具备条件即测试
4、强调持续反馈
5、预防缺陷重于发现缺陷
敏捷测试VS传统测试1
传统测试:
1、测试是质量的最后保护者
2、严格的变更管理
3、预先的计划和细节的准备
4、重量级文档
敏捷测试:
1、开发和测试人员是紧密合作,大家都有责任对软件负责
2、变更是可接受的,拥抱变更
3、计划随着进展时常调整
4、只需要绝对的必要的文档
敏捷测试VS传统测试2
传统测试
1、各阶段测试严格的入口和出口标准
2、更多在回归测试时进行重量级的自动化测试
3、严格依赖流程执行
4、测试团队的开发团队是相互独立的
敏捷测试:
1、各迭代之间已经没有明显的入口和出口标准
2、所有阶段都需要自动测试,每个人都需要做,是项目集成的一部分
3、流程不再需要严格执行
4、团队合作是无缝隙合作
查看全部 -
软件测试定义:
使用人工或者自动的手段来运行或测量软件系统的过程,以检验系统是否满足规定的要求,并找出与预期的结果之间的差异。
测试五大要素 质量 人员 资源 流程 技术
两大目标 测试覆盖率 测试效率
遵循原则 :
1.软件显示缺陷不能证明系统没有缺陷
2.穷尽的测试是没有的,要及设定终止条件
3.缺陷具有群集性
4.测试具有杀虫剂悖论
5.测试二八原则
6.测试活动要依赖与测试背景
7.测试要尽早进行
查看全部 -
按测试模式来分类:
瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等
查看全部 -
按测试手段来分类:
黑盒测试、白盒测试(对象可见度) 静态测试、动态测试(状态) 手工测试、自动化测试(执行方式)
查看全部 -
系统测试:是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行
系统测试关注点:关注系统本身的使用、关注系统与其他相关系统间的连通、关注系统在不同使用压力下的表现、关注系统在真实使用环境下的表现
验收测试:也称交付测试。针对用户需求、业务流程的正式测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统
查看全部 -
软件测试按测试阶段分类:单元测试、集成测试、系统测试、验收测试
单元测试:1.概念:对软件中的最小可测试单元进行检查和验证
2.原则:尽可能保证各个测试用例是相互独立的
一般由代码的开发人员来实施,用以检验所开发的代 码功能符合自己的设计要求
集成测试:1.定义:是在单元测试的基础上,测试在将所有的软件单元按 照概要设计规格说明的要求组装成模块、子系统或系 统的过程中各个部分工作是否达到或实现相应技术指 标及要求的活动
2.主要方案:Big Bang 自顶向下 自底向上
核心系统集成 高频集成
查看全部 -
软件测试定义:使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异
软件测试五大要素:质量(核心)、人员、资源、流程、技术
软件测试两个目标:测试覆盖率、测试效率
软件测试所遵循的原则:
测试显示缺陷存在,但不能证明系统不存在缺陷
穷尽测试是不可能的,应设定及时终止的条件
软件测试应尽早进行
缺陷具备群集特性
测试的杀虫剂悖论
测试的二八原则
测试活动依赖于测试背景
查看全部 -
A/B测试多用于互联网行业,通过为页面提供2个版本给用户使用并记录相关的用户行为数据,来确定更优化设计的一种测试方案。
查看全部
举报