测试理论06软件测试方法论

软件测试是一门需要需要不断学习补充新知识的学科,想要成为一名优秀的测试员就必须像成为一名武林高手一样不断研习武艺,博彩众家之长,消化吸收后为己所用,这样才能最终立于不败之地。
测试的各种理论知识就像武功种的内功心法,各种测试技巧和测试工具则像招式和兵器,如果忽略了内功心法的修炼,即使招式和兵器熟练使用,也只是花拳绣腿,没有很强的杀伤力。
测试理论对于一个测试人员来讲是必不可少的,就像前面讲的,她是内功心法,是基础。

按测试理论设计的领域,可以划分为以下类别:
测试方法类
项目管理类
开发心理类

测试方法类是最需要掌握也是最常接触的,包括如何进行各种类型测试,这是测试人员必须要修炼的硬气功。
项目管理类包括测试过程方法、质量管理、配置管理等关系到测试人员和开发人员一起工作的管理流程方面的理论,多看看CMM\MSF\RUP等软件过程管理的理论知识,可以让测试过程更好地进行,为测试争取更好地工作氛围多点掌握这些知识可能在适当地时候让项目组其他成员对自己刮目相看,这是测试人员需要修炼地正气心法。
开发心理类,包括软件过程心理、开发人员心理、用户心理等,平时多想想,尤其是换位思考,则会使它对自己地工作如虎添翼,这是测试人员需要修炼地静心法。

软件测试的五大流派

分析学派
分析学派热衷于计算代码覆盖率,提供了测试的客观度量方法。分析学派的测试需要精确和详细的规格说明书,测试人员验证软件是否符合规格说明书的要求。

标准学派
标准学派的核心理念是:测试必须被管理起来是可预见的、可重复的、计划好的。测试必须是高效的,测试对产品进行确认,利用测试对软件开发进度进行度量。标准学派的测试需要清晰的边界来界定测试和其他活动,例如进入测试和退出测试的标准,标准学派倾向于抵制计划的变更。

质量学派
质量学派强调制度,使用测试来判断开发的过程是否被严格遵循了。质量学派把测试看成是QA的角色,测试是过程改进的阶梯。

上下文驱动学派
上下文测试强调探索性测试,强调同时设计测试和执行测试,强调快速学习能力。上下文驱动测试拥抱变化,根据测试结果调整测试计划,测试策略的有效性只能通过实际的观察来判断。

敏捷学派
敏捷学派的核心是一个动态变化的过程,测试必须被自动化。敏捷学派强调单元测试。

微软公司软件测试的方法应用
从关于测试目的出发,大概可以把测试分为两大类:
    一类是为了验证程序能正常工作的测试,另一类是为了证明程序不能正常工作的测试。
第一类按照步骤进行,分别是需求和设计的评审、设计阶段的测试、系统全面的测试。
测试人员与开发人员一起参与到需求和设计的评审中,测试人从测试的角度出发对需求文档、设计文档进行可测试性、明确性、完整性、正确性等方面审查。
在开发人进行产品设计的过程中,测试人员开始依据需求文档编写测试计划、测试用例,编写出来的测试计划和测试用例需要与项目经理和开发人员一起评审,确保对项目和软件达成一种的认知,等到开发人员把设计做完,则需要根据设计文档适当补充和完善测试用例。
在进入正式的测试阶段之后,测试人员按照测试计划搭建测试环境,执行测试用例,编写自动化测试程序并重复运行。
测试采取的基本测试策略:
先执行简单测试用例,在执行复杂测试用例
先验证单一的基本功能,再验证组合的功能
先解决表面、影响大的Bug,再解决深层的、不易重现的Bug
Postmortem(事后剖析):完成一个阶段后,进行阶段回顾,找到这个版本的各种问题以便在下一个版本中解决。

IBM公司的软件测试方法
IBM的测试基于RUP过程模型。强调迭代开发、持续集成的软件开发过程的模型。
RUP测试度量
RUP测试方法比较关注测试的度量,采用测试覆盖率和质量来对测试进行度量。测试覆盖是对测试充分程度的评价,测试覆盖包括:
测试需求的覆盖
测试用例的覆盖
测试执行代码的覆盖
基于需求的测试覆盖在测试上生命周期中要评估多次,并在测试生命周期的里程碑处提供测试覆盖的标识。
基于代码的测试覆盖评估过程中已经执行代码的多少,与之相对的是要执行的剩余代码的多少。代码覆盖可以建立在控制流或者数据的基础上。控制流覆盖的目的是测试代码行、分支条件、代码中的路径或软件控制流的其他元素。数据流覆盖的目的是通过软件操作数据状态是否有效。
质量是对测试对象的可靠性、稳定性以及性能的评估。质量建立在对测试结果的评估和对测试过程中确定的变更分析的基础上。
RUP对软件测试的分类
可靠性:
完整性测试侧重于评估测试对象的健壮性,语言、语法的技术兼容性以及资源利用率的测试,该测试针对不同的测试对象实施和执行,包括单元和已集成单元。
结构性测试侧重于评估测试目标是否符合其设计的构造的测试。
功能性:
配置测试侧重于确保对象在不同的硬件和/或软件配置上按预期运行的测试。
功能测试侧重于核实测试对象按计划执行,提供需求的服务、方法或用例的测试。
安装测试侧重于确保测试对象在不同的硬件和/或软件配置上,以及在不同的条件下按预期安装的测试。
安全测试侧重于确保只有预期的主角才可以访问测试对象、数据的测试。
容量测试侧重于核实对象于大量数据的处理能力。
性能:
基准测试侧重于比较测试对象与已知的参照负载和系统的性能。
竞争测试侧重于核实测试对于多个主角对相同资源的请求处理是否可以接受的测试。
负载测试用于在测试的系统保持不变的情况下,核实和评估在不同负载下操作极限的可接受性
性能曲线测试检测测试对象的计时配置文件、包括执行流、数据访问、函数和系统调用,以确定并解决性能瓶颈和低效流程。
强度测试侧重于确保系统可在遇到异常条件时按预期运行。

RUP对测试阶段的划分
单元测试在迭代的早期实施,侧重于核实软件的最小可测元素,单元测试通常应用于实施模型中的构件,核实是否已覆盖控制流和数据流,以及构件是否可以按照预期工作。‘
执行集成测试是为了确保把实施模型中的构件集成起来执行用例时,这些构件能够正常运行。集成测试将揭示包接口规约中不够完全或错误 的地方。
当软件作为整体运行或实施明确定义的软件行为子集时,即可进行系统测试,这种情况下的目标是系统的整个实施模型。
验收测试是部署软件之前的最后一个测试操作,目的是确保软件准备就绪,并且可以供最终用户用于执行软件的既定功能和任务,
AEP自动错误预防方法
AEP 自动错误预防,美国Parasoft公司提倡的软件测试方法,旨在帮助软件企业从低效的错误检测转移到全面的自动化错误预防。
坚持的方法
识别错误
找出错误的原因
定位产品产生给错误的地方
修改现有的时间来确保相同的错误不再出现
坚持检查这个实践来监视实践是否被遵循

猜你喜欢

转载自blog.csdn.net/u013667895/article/details/80205940