测试方法是指解决问题的技术手段或工具的集合。
软件测试策略是指如何选择和运用方法来解决具体问题。
软件测试有很多方法等价类、边界值、语句覆盖、条件覆盖、路径覆盖、场景法、自顶向下&自底向上集成法等等。当你掌握和了解这些方法之后,怎么运用到实际项目中呢。就需要制定测试策略,在测试项目中什么时间、什么任务需要运用哪个或哪些方法或哪些工具、怎么组织起来去解决完成,这就是策略。
例如:一个测试项目中在单元测试阶段采用技术评审法(代码审查),在集成阶段采用三明治法,在系统测试阶段采用场景法,在针对功能进行测试时选用适当的黑盒测试方法设计测试用例;在进行单元、集成测试时选用适当的白盒方法设计测试用例;在进行性能相关测试时选用适当的测试工具进行等等,这就是测试策略。
它们的范围不是以大小而论,也不是包含关系。测试工作涉及的方法很多,策略是根据项目需要从方法集中选择适合的技术方法,把他们合理的组织起来完成测试任务;测试策略能够指导测试工作的顺利进行。
软件测试的原则与策略是什么?
软件测试原则:
1、尽早和不断的测试。
2、程序员应该避免检查自己的程序,软件测试应该由第三方构造。
3、设计测试用例时应该考虑到合法的输入和不合法的输入以 及各种边界条件。
4、注意测试中的错误集中发生现象。
5、对测试错误结果有确认过程。
6、制定严格的测试计划,并把测试时间安排的尽量宽松。
7、回归测试的关联性,原有功能过滤
8、进行版本控制,制定变更测试文档的流程。
测试策略,在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合,需在测试计划文档中体现。
软件测试策略和测试软件有哪些
策略很多,看你从什么角度了。比如按阶段分可以分单元测试,集成测试,系统测试;按可见度分可以分白盒,黑盒;其中白盒又能按方法分,比如不同的覆盖率:条件覆盖,路径覆盖等。还可以按动态和静态分,好比代码走读算静态,手动执行算动态。还能按流程分,比如数据流测试,业务流测试。各种不同的策略也不是单一存在的,是几种并存的。好比你用Nunit做单元测试,它就包含了几种策略,首先它是单元测试阶段,其次,它可以走数据流,第三,它可以做函数等的条件覆盖,再者,它是动态测试的一种等等。
建议你去读下软件工程的书,先做一个入门。
测试软件很多,看你做功能还是性能了。基本都是录制回放加验证,没什么大花头。
但如果要通过软件构件测试框架的话就需要你有扎实的基本功和很高的工具熟悉程度了。
软件测试策略包含哪些阶段,每个阶段不同点
策略很多,看你从什么角度了。比如按阶段分可以分单元测试,集成测试,系统测试;按可见度分可以分白盒,黑盒;其中白盒又能按方法分,比如不同的覆盖率:条件覆盖,路径覆盖等。还可以按动态和静态分,好比代码走读算静态,手动执行算动态。还能按流程分,比如数据流测试,业务流测试。各种不同的策略也不是单一存在的,是几种并存的。好比你用Nunit做单元测试,它就包含了几种策略,首先它是单元测试阶段,其次,它可以走数据流,第三,它可以做函数等的条件覆盖,再者,它是动态测试的一种等等.可以参考 http://blog.csdn.net/yangdaliang/article/details/5612357
什么是测试策略?
测试策略描述测试工程的总体方法和目标。描述目前在进行哪一阶段的测试(单元测试、集成测试、系统测试)以及每个阶段内在进行的测试种类(功能测试、性能测试、覆盖测试等)。
测试策略的制定主要包含三个方面的内容:
(1)确定测试过程要使用的测试技术和工具;
(2)制定测试启动、停止、完成标准;
(3)进行风险分析和应对方案。例如测试与外部接口或者模拟物理损坏、安全性威胁。测试计划最关键的一步就是将软件分解成单元,按照需求编写测试计划。
软件测试的策略?
希赛顾问——软件测试专刊(2006年第4期,总第4期)
主办:希赛网(www.csai.cn) 承办:希赛网软件测试频道(testing.csai.cn)
性能测试兵法
作者:陈绍英 来源:希赛网软件测试频道
在大多数的性能测试工作中,我们可以看出很多内容都是互相关联的。这就给我们提供了一思路:性能测试的很多内容可以经过一定的组织统一来进行。统一开展性能测试的巨大好处是可以由浅入深按照层次对系统进行测试,进而减少不必要的工作量,以实现节约测试成本的目的。为此,本文提出了“全面性能测试模型”的概念。 “全面性能测试模型”提出的主要依据就是一种类型的性能测试可以在某些条件下转化成为另外一种类型的性能测试,而这些类型的测试实施也是很类似的。例如:针对一个网站进行测试,模拟10到50个用户
就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。
1.全面性能测试模型在“全面性能测试模型”中,把Web性能测试分为八个类别。
下面首先介绍八个性能测试类别的主要内容。
(1)预期指标的性能测试 系统在需求分析和设计阶段都会提出一些性能指标,这些指标是性能测试要完成的首要工作之一,本模型把预先确定的一些性能指标的测试称为预期指标的性能测试。 这些指标主要是指诸如“系统可以支持并发用户1000”、“系统响应时间不得高于10秒”等在产品说明书等文档中中十分明确的内容,对这种预先承诺的性能要求,测试小组应该“首当其冲”完成这类测试。
(2)独立业务性能测试 独立业务主要是指一些核心业务模块,这些模块通常具有功能比较复杂、使用比较频繁、属于核心业务等特点。这类特殊的、功能比较独立的业务模块始终都是性能测试重点。我们通常不但要测试这类模块的一些和性能相关的算法,还要测试这类模块对并发用户的响应情况。 核心业务模块在需求阶段就可以确定,在系统测试阶段开始单独测试其性能。如果是系统类软件或者特殊应用的软件,通常从单元测试阶段就开始进行测试,在后继的集成测试、系统测试、验收测试中进一步进行测试,以保证核心业务模块的性能稳定。 用户并发测试是核心业务模块的重“并发”的主要内容是模拟一定数量的用户同时使用某一核心模块的“相同”或者“不同”的功能,并且持续一段时间。对“相同”的功
能进行并发测试分为两种类型,一类是在同一时刻进行完全一样的操作,例如打开同一条数据记录进行查看;另外一类是在同一时刻使用完全一样的功能,例如同时提交数据进行保存。可以看出后者是包含前前者的,后者是前者的特例,这种并发测试都要持续一定的时间。
从微观角度讲,同时使用某一核心模块“不同”的功能,也是一种组合业务性能测试,只不过这种组合的相关业务大分类是一致的。
(3)组合业务性能测试 通常不会所有的用户只使用一个或者几个核心业务模块,每个功能模块都可能被使用到,所以Web性能测试既要模拟多用户的“相同”操作(这里的“相同”
指很多用户使用同一功能),又要模拟多用户的“不同”操作(这里的“不同”指很多用户同时对一个或者多个模块的不同功能进行操作)对多个业务进行组合性能测试。组合业务测试是最接近用户实际使用情况的测试,因而是性能测试的核心内容。我们通常按照用户的实际使用情况来模拟使用各个模板的人数比例。 由于组合业务测试是最反映用户使用系统情况
的测试,因而组合测试往往和服务器(操作系统、Web服务器、数据库服务器)性能测试
结合起来,在通过工具模拟用户行为的同时,还通过测试工具的监控功能采集服务器的计数器信息,进而全面分析系统的瓶颈,为改进系统提供有利的依据。用户并发测试是组合业
务测试的核心内容。“组合”并发的突出特点是分成不同的用户组进行并发,每组的用户比例要根据实际情况来进行匹配。组合业务测试可以理解为包含了“核心业务模块并发”和“非核心业务模块并发”同时进行的并发用户测试。
(4)疲劳强度性能测试 疲劳强度测试是在系统稳定运行下模拟较大的用户数量、并长时间运行系统的测试,通过综合分析执行指标和资源监控来确定系统处理最大业务量时的性能,
主要目的是为了测试系统的稳定性。
(5)大数据量性能测试 大数据量测试分为两种:一种是针对某些系统存储、传输、统计查询等业务进行大数据量的测试,主要是测试数据增多时的性能情况,这类一般都是针对某些特殊的核心业务或者一些日常比较常用的组合业务的测试。 第二种是极限状态下的数据测试,主要是指系统数据量达到一定程度时,通过性能测试来评估系统的响应情况,测试的对象也是某些核心业务或者日常常用的组合业务。例如系统的数据每年只备份转移一次,可分别选择一个季度、半年、一年作为参考,模拟输入各个时间段的预计数据量,然后测试系统的性能,进而预估系统的性能走向。 由于大数据量仍然是为了测试系统的业务处理能力,
因此大数据量性能测试可以独立进行,也可以和前面的独立、组合业务测试结合起来进行,主要由性能测试策略来决定。由于大数据量测试一般在投产环境进行,因此本书把它单独独立出来,和疲劳强度测试放在一起,在整个性能测试的后期进行。大数据量测试可以理解为特定条件下的核心业务或者组合业务测试。
(6)网络性能测试 网络性能测试主要是为了准确展示带宽、延迟、负载和端口的变化是如何影响用户的响应时间的。在实际的软件项目中,主要是测试用户数目与网络带宽的关系。
网络性能测试一般有专门的工具,因此本书不研究网络测试,网络测试的任务通常由系统集成人员来完成。
(7)服务器性能测试 服务器性能测试(操作系统、Web服务器、数据库服务器)分为初级和高级两种形式。“初级服务器性能测试”主要是指在业务系统工作或者进行前面其它
种类性能测试的时候,监控服务器的一些计数器信息,通过这些数据对服务器进行综合性能分析,找出系统瓶颈,为调优或者提高性能提供依据。“高级服务器性能测试”一般不由测试人员进行,由专门的系统管理员来进行,例如数据库服务器由专门的DBA来进行测试和调优。本书主要讨论在测试中常用到的“初级服务器性能测试”,既通过工具对服务器资源进行监控的性能测试。
(8)一些特殊测试 主要是指配置测试、内存泄漏测试一些特殊的Web性能测试。这类性能测试或者和前面的测试结合起来进行,或者在一些特殊情况下会独立进行,本书重点来讨论前一种情况,因为后一种情况往往通过特有的工具、较大投入的进行,可以不作为性能测试的范畴来研究。
主办:希赛网(www.csai.cn) 承办:希赛网软件测试频道(testing.csai.cn)
软件测试专业调查,请各位朋友大力支持:
http://testing.csai.cn/edu/vote/VoteStepFirst.asp
测试策略和测试计划的区别?
区别在于:
测试策略相当于指导思想,测试计划相当于实践方法。
详细区别:
测试计划定义:
”一个叙述了预定的测试活动的范围、途径、资源及进度安排的文档。它确认了测试项、被测特征、测试任务、人员安排,以及任何偶发事件的风险。”内容:
产品概述、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等。
注意项:
1. 明确测试的目标,增强测试计划的实用性;
2. 坚持“5W”规则,明确内容与过程。利用“5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where);
3. 采用评审和更新机制,保证测试计划满足实际需求;
4. 分别创建测试计划与测试详细规格、测试用例。
测试策略定义:
在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。
内容:
实施的测试类型和测试的目标、实施测试的阶段、技术、用于评估测试结果和测试是否完成的评测和标准、对测试策略所述的测试工作存在影响的特殊事项等内容。
注意项:
a.基于测试技术的测试策略的要点:
著名测试专家给出了使用各种测试方法的综合策略:
任何情况下都必须使用边界值测试方法;
必要时使用等价类划分方法补充一定数量的测试用例;
对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,看是否达到了要求;
如果程序功能规格说明中含有输入条的组合情况,则已开始可以选择因果图方法。
b.基于测试方案的测试策略:
对于基于测试方法的测试策略,一般来说应该考虑如下方面:
根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级和测试重点;
认真研究,使用尽可能少的测试用例发现尽可能多的程序错误,避免测试过度和测试不足。
软件测试的方法一共有几种
1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
在系统测试中,对于具体的测试类型有:
(1)功能测试:对软件需求规格说明书中的功能需求逐项进行的测试,以验证功能是否满足要求。
(2)性能测试:对软件需求规格说明书的功能需求逐项进行的测试,以验证功能是否满足要求。
(3)接口测试:对软件需求规格说明中的接口需求逐项进行的测试。
(4)人机交互界面测试:对所有人机交互界面提供的操作和显示界面进行的测试,以检验是否满足用户的需求。
(5)强度测试:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),验证软件可以运行到何种程序的测试。
(6)余量测试:对软件是否达到规格说明中要求的余量的测试。
(7)安全性测试:检验软件中已存在的安全性、安全保密性措施是否有效的测试,
(8)可靠性测试:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能测试)
(9)恢复性测试:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的测试。
(10)边界测试:对软件处在边界或端点情况下运行状态的测试。
(11)数据处理测试:对完成专门数据处理功能所进行的测试。
(12)安装性测试:对安装过程是否符合安装规程的测试,以发现安装过程中的错误。
(13)容量测试:检验软件的能力最高能达到什么程度的测试。
(14)互操作性测试:为验证不同软件之间的互操作能力而进行的测试。
(15)敏感性测试:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的测试。
(16)标准符合性测试:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的测试。
(17)兼容性测试:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的测试。
(18)中文本地化测试:验证软件在不降低原有能力的条件下,处理中文能力的测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
扩展资料
软件测试的内容:
1 得到需求、功能设计、内部设计说书和其他必要的文档
2 得到预算和进度要求
3 确定与项目有关的人员和他们的责任、对报告的要求、所需的标准和过程 ( 例如发行过程、变更过程、等等 )
4 确定应用软件的高风险范围,建立优先级、确定测试所涉及的范围和限制
5 确定测试的步骤和方法 ── 部件、集成、功能、系统、负载、可用性等各种测试
6 确定对测试环境的要求 ( 硬件、软件、通信等 )
7 确定所需的测试用具 (testware) ,包括记录 / 回放工具、覆盖分析、测试跟踪、问题 / 错误跟踪、等等
8 确定对测试的输入数据的要求
9 分配任务和任务负责人,以及所需的劳动力
10 设立大致的时间表、期限、和里程碑
11 确定输入环境的类别、边界值分析、错误类别
12 准备测试计划文件和对计划进行必要的回顾
13 准备白盒测试案例
14 对测试案例进行必要的回顾 / 调查 / 计划
15 准备测试环境和测试用具,得到必需的用户手册 / 参考文件 / 结构指南 / 安装指南,建立测试跟踪过程,建立日志和档案、建立或得到测试输入数据
16 得到并安装软件版本
17 进行测试
18 评估和报告结果
19 跟踪问题 / 错误,并解决它
20 如果有必要,重新进行测试
21 在整个生命周期里维护和修改测试计划、测试案例、测试环境、和测试用具
参考资料:百度百科-软件测试
转载请注明出处51数据库 » 软件测试策略和方法 软件测试的方法与软件策略的区别
施主快躲开老衲要开枪了