-
单元测试:是对项目中最小单元进行测试。
单元测试框架:Xunit、Junit-java、PHPUnit-PHP、CPPUnit-C++、nunit-.net
集成测试
系统测试
验收测试(α、β测试)
查看全部 -
软件测试所遵循的原则:
1、测试显示缺陷的存在,但不能证明系统不存在缺陷。
2、穷尽测试是不可能的,应设定及时终止的条件。
3、测试应该尽早进行。
4、缺陷具备群集特性。越是发现问题多的模块,就是我们重点关注的对象。
5、测试的杀虫剂悖论。在测试当中,我们采用同样的测试用例、同样的测试方法,多次、重复的来测试某一个模块,那最后我们就不能够再发现新的缺陷。所以我们的测试用例和测试方法应该不定期的评审和修改,并增加不同的测试方法或测试用例来测试软件或系统的不同部分,从而发现更多的缺陷。
6、测试的二八原则。就是我们应该把80%的时间或资源用在20%的重点模块上,重点测试这款软件中20%的重要模块,来达到我们测试的效率和资源配置最佳的比例。
7、测试活动依赖于测试背景。
查看全部 -
集成测试
定义:是在单元测试的基础上,测试再将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。
主要的实施方案:
Big Bang
自顶向下
自低向上
核心系统集成
高频集成
查看全部 -
按测试模式来分类
瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等
现在使用最广泛的用模型:
查看全部 -
单元测试:
一原则:
1.尽可能保证各个测试用例是相互独立的。
2.一般由代码的开发人员来实施用以检验所开发的代码功能符合自己的设计要求。
二好处:
1.能尽早发现缺陷
2.利于重构
3.简化集成(为以后集成测试作铺垫)
4.文档
5.用于设计
三限制:
1.不可能覆盖所有的执行路径,不可能保证捕捉到所有的错误。
2.每一行代码一般需要3-5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。
框架:
1.xunit:
2.Junit:
3.nunit:
4.PHPunit:
5.cppunit:
(以上待理解)
四定义:
又称模块测试。是针对软件设计设的最小单位---程序模块进行正确性的测试工作。
五测试对象:
类、文件、窗口、函数、菜单等。
六测试依据:详细设计说明书。
七测试目的:在于检查每个程序单元能否正确实现详 细说明书中的模块功能、性能等要求, 发现各模块内部可能存在的各种错误 。
测试方法:黑盒测试为主,重点模块结合白盒测试
其他:多个模块可以并行地独立进行单元测试。
重要概念:
1.驱动模块:模拟被测模块的上级模块。
2.桩模块:模拟被测模块工作过程中所调 用的模块。
如图示例:
集成测试:
也叫组装测试。通常在单元测试的基础上 ,将所有的程序模块进行有序的、递增的 测试。
软件集成的过程是一个持续的过程,会形 成很多个临时版本,在每个版本提交时, 都需要进行冒烟测试,既对程序主要功能 进行验证。
在单元测试的基础上,测试在将所有的软 件单元按照概要设计规格说明的要求组装 成模快、子系统或系统的过程中各部分功 能是否达成或实现相应技术指示及要求的 活动。
测试方法:
1.非增式:对所有模块进行单元测试后, 按程序结构图将各个模块连接 起来,把连接后的程序当作一 个整体进行测试。如图示例:
2.增式:
①自顶向下测试:按结构图自上而 下进行测试,即模块集成的顺序是 首先集成主控模块,然后按照控制 层次结构向下集成。从属于主控模 块的模块按深度优先或广度优先方 式集成到结构中。如图:
步骤:⑴主控模块作为测试驱动(A) ,所有与主控模块直接相 连 的模块作为桩模块。
⑵根据集成方式(深度/广度) ,下层的桩模块一次一个的被替 换为真正的模块。(现实中会有 多个桩模块)
⑶在每个单元被集成时都必须进 行了单元测试。
②自底向上:从最底层模块开始,按照结 构图,从下而上地逐层将各 模块组装起来,需要对未经 集成测试的模块开发驱动模 块。如图;
重要概念:1.冒烟测试:
2.回归测试:
方案:
1.big bang
2.自顶向下
3.自底向上
4.核心系统集成
5.高频集成
(以上待理解)
单元&集成的区别:
①对象不同
②依据不同
③方法不同
系统测试:
是经过集成测试的软件作为计算系统的一部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现潜在问题,保证系统的正常运行。
关注点:
1.系统本身的使用
2.软件与其他相关系统间的连通
3.软件在不同使用压力下的表现
4.软件在真实环境下的表现
系统测试&集成测试的区别:
集成:由通过了单元测试的各个模块所集成起来的构件。
系统:除了软件外,还包括了计算机硬件及相关的外围设备数据采集和传输机构,支持软件,系统操作人员等整个系统。
测试时间:单元测试→集成测试→系统测试→交付测试
内容:
集成:各个单元模块之间的接口
系统:整个系统的功能和性能
角度:
集成:偏向于技术角度的验证
系统:偏向于业务角度的验证
验收测试:
也叫交付测试。针对用户需求业务流程的正式的测试,确定系统是否满足验收标准,由用户或其他授权机构决定是否接受系统。
1用户验收测试
2运行验收测试
3合同和规范验收测试
4alpha测试
5beta测试
查看全部 -
测试手段:
黑盒测试
a.优点:容易实施,不需要关注内部实现;更贴近用户的使用角度
b.缺点:测试覆盖率较低,一般只能覆盖到代码量的不到40%;针对黑色的自动化测试,复用效率较低,维护成本较高
是否有不正确或遗落的功能
在接口上,输入是否能正确的接受?能否输出正确的结果
是否有数据结构错误或外部信息(例如数据文件)访问错误
性能上是否能够满足要求
(等价类划分法,边界值分析法,错误推测法,因果图法,正交试验分析法,转态迁移图法,流程分析法(场景法),功能图法)
2.白盒测试
a.优点:理解原理;可以检测代码中的每条分支路径;揭示隐藏在代码中的错误;对代码的测试比较彻底
b.缺点:昂贵,无法检测代码中遗漏的路径和敏感性错误;不能直接验证需求的正确性
(代码检测法,静态结构分析法,静态质量度量法,逻辑覆盖法,基本路径测试法)
静态测试,动态测试
手工测试,自动化测试
查看全部 -
单元测试:对软件中的最小可测试单元进行检查和验证
单元测试的原则:
1.尽可能保证各个测试用例是相互独立的
2.一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求
查看全部 -
文档测试
针对软件产品的交付品,配套的文档类部件的测试。如用户手册、使用说明、用户帮助文档等。
文档测试关注要点
完整性、正确性、一致性、易理解性、易浏览性
可靠性测试
可分为软件可靠性、硬件可靠性,但一般指的是硬件、环境方面的可靠性。
易用性测试
易用性测试是指测试用户使用软件时是否感觉方便,是否能保证用户使用体验的测试类型。针对用户的交互界面,比如说业务流程的逻辑是否过于复杂、有没有误导用户的指引、包括网站的布局和样式。
本地化测试
针对软件的本地化版本实施的针对性测试
主要测试内容:语言、书写习惯,时区、日期规格、货币的转换,当地风俗、法律法规,政治敏感内容
部署测试
也称安装测试,主要验证系统部署过程,并确保软件经过安装测试后可以正常使用。
主要测试内容:
在不同环境下的部署验证,产品会有跨平台的特性,需在不同的环境下验证程序的编译是否有误。
参照部署文档执行,过程的合理、正确性。考虑一些在安装过程中出现的一些常见问题,比如网络中断,突然重启。
基础资料的准备非常重要,可用客户的线上资料
无障碍测试
Accessibility Test 也称可访问性测试。是指软件需要提供便于特殊人群使用的功能,包括视障、听障、老年人、身体残疾用户等,无障碍测试则是针对这部分功能的测试,虽然不是主流的测试方法,但是会越来越重视这一部分人的用户体验。
查看全部 -
笔记如下图:
查看全部 -
什么是软件测试?
早期定义:软件测试时对程序能够按预期运行建立起的一种信心。
经典定义:测试时为发现错误而执行程序的过程。
IEEE定义(IOS/IEC/IEEE 29119):使用人工或自动的手段来运行或者测量软件系统的过程,以检验软件系统是否满足规定的要求,病找出与预期结果之间的差异。
软件的测试对象:软件的概要设计、软件详细设计、软件运行环境、可运行程序、软件源代码、软件需求。
五大要素和两个目标:质量(核心)、人员、资源、流程、技术要素;测试覆盖率、测试效率目标。
ISTQB
软件测试所遵循的原则:
测试显示缺陷的存在,但是不能证明系统不存在缺陷。
穷尽测试是不可能的,应设定及时终止的条件。
测试应该尽早进行。
缺陷具备群集特性。
测试的杀虫剂悖论。
测试的二八原则。
测试活动依赖于测试背景。
查看全部 -
按测试模式分类:瀑布模型、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试等。
(传统的)瀑布模型:项目计划(项目计划书)->需求分析(需求说明书)->软件设计(概要设计、详细设计等)->程序开发(产品)->软件测试(测试文档)->集成维护
优点:强调需求;前一阶段完成后只需关注后续阶段;提供按阶段划分的检查点;文档规范
缺点:难以适应需求的频繁变化;项目周期后段才可看到成果;较关注时间节点;文档工作量较大;测试在项目的后期,补救,工作量大
V模型(最广泛) 需求分析->概要设计->详细设计->软件编码->单元测试->集成测试->系统测试->验收测试
缺点:也没能体现出测试需要尽早进行的原则
W模型(双V模型) 开发与测试并行,可以尽早发现问题
局限性:需求、设计、编码仍然是串行进行的,上一个阶段完成之后才能进行下一个阶段
X模型:解决交接和频繁集成周期的问题
H模型:把软件测试看成一个独立的流程,与其他流程并发进行,比如设计流程,编码?流程,甚至是测试流程
查看全部 -
软件测试按测试阶段来分类:单元测试、集成测试、系统测试、验收测试。
单元测试
是各个阶段测试的基础,是对软件中的最小可测试单元进行检查和验证。单元是人为规定的可测试的最小的模块。(java面向对象语言来说,最小可测试单元是每一个类)
原则:
1、尽可能的保证各个测试用例是互相独立的。尽量避免使用依赖的方法。编写一个模拟的方法来取代使用外部依赖。
2、一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。
益处:
1、能尽早发现缺陷。
2、有利于重构。
3、简化集成。
4、文档。简化文档作用
5、用于设计。
限制:
1、不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误。
2、每一行代码,一般需要3~5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。
集成测试
是在单元测试完成的基础上针对已经完成单元测试的那些模块,把他们组成更高一级的模块和子系统,来针对这些子系统进行的集成。各个最小单元模块之间的接口和子系统的集成。
主要实施方案:
1、Big Bang。也叫一次性集成。就是把所有的东西组装好,然后再一起进行测试。
2、自顶向下。是一个递增的组装软件结构的方法。
3、自底向上
4、核心系统集成。
5、高频集成。高频次的不断地进行集成。
集成测试与单元测试的区别是:1.测试对象的不同;2.测试的依据不同;3.测试的方法不同;
系统测试
把整个系统组装以后置于真实的运行环境对这个系统进行全面的测试。主要做功能测试、性能测试、稳定性测试等多种测试。是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效的测试,以发现软件潜在的问题,保证系统的正常运行。
验收测试
从用户的角度对系统软件的认可验收。也称交互测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权结构决定是否接受系统。
查看全部 -
文档测试:
完整性:
正确性:
一致性:
易理解性:
易浏览性:
查看全部 -
功能测试工具:1、QTP、selenium(开源)、Watir,是web应用类的自动化测试
2、winrunner
3、Sikuli基于屏幕截图的,简单的功能验证
查看全部 -
软测定义:使用人工或自动的手段来运行或测量软件系统的过程,以检测软件系统是否满足规定的要求,并找出与预期定义之间的差异。 软测对象:软件需求,概要设计,详细设计,源代码,可运行程序,可运行环境。 软测的五大要素及两大目标: 质量(最为核心),人员(决定因素),技术(实现手段)【测试技术,方法,测试工具】,资源【测试所需的硬件,网络环境,测试生命周期,测试时间】,流程(测试标准)【测试计划,测试执行,报告】 目标:提升测试覆盖率及测试效率 软测的遵循原则: 1.测试是为了发现错误而不是证明没错误 2.穷尽测试是不可能的,应设定终止条件(无穷无尽的测试是不可能的,需很大代价;无论怎样测试,我们不可能发现软件的所有缺陷) 3.测试尽早进行 4.缺陷具有群集性(发现好多缺陷的模块,说明该模块存在没有被发现的缺陷) 5.测试的杀虫剂悖论(应对测试用例,测试方法不定期的评审,添加新的测试用例或测试方法发现新的缺陷) 6.测试的二八原则(80%的时间测试20%的重要模块) 7.测试活动依赖于测试背景(如电信这块主要性能测试,银行啥的主要安全测试)
查看全部
举报