软件测试过程的质量控制
摘要:软件测试工作可以发现和解决软件存在的缺陷,实际工作中,软件测试工作是一个十分复杂的过程,必须合理规划才能保证质量控制效果。本文就研究软件测试过程中如何控制测试质量,明确测试工作重点,分析测试工作中需要使用的方法。
关键词:软件测试;过程;质量控制;策略
引言:软件开发后会存在一定的缺陷,影响软件的正常使用,不利于软件功能实现。为了保证软件的质量,就需要使用科学方法开展软件测试工作,有效控制软件测试的过程,满足对软件质量控制的需要,提升软件的稳定性。
1 软件测试概述
1.1 软件测试的目的
软件测试的目的在于保证软件产品质量,测试中发现软件的质量问题并予以解决,提升软件的可靠性。根据不同立场,软件测试有两种不同目的,从用户角度出发,软件测试的目标在于暴
露软件的缺陷和漏洞,通过解决软件的不足让软件可以被用户接受;软件的开发者角度出发,则希望通过测试证明软件中不存在错误,表面软件能满足用户的要求,给投资方、使用者带来对软件的信心,所以开发人员倾向于选择程序失效概率更小的测试用例,并回避容易暴露程序错误的用例,排除程序的副作用[1]。软件开发者的测试对于提升软件质量并没有太多意义,因为很多程序的使用问题都出现在特定的条件下,必须建立特殊的使用环境才能将程序中的问题暴露出来。而在用户的角度,就需要揭露程序运行和使用中可能出现的错误,并通过软件测试发现程序中存在的错误。软件测试项目流程
结合以上需求,软件测试的目的包括以下几个方面:程序的测试工作是一个过程,所以目的在于发现程序中错误,好的测试用例在于能发现至今没有发现的程序错误,成功的测试在于能发现至今没有发现的错误[2]。所以测试工作的目标就在于能用尽量少的时间到软件中的错误和缺陷,而测试附带的收获在于能够表面软件的功能和性能与实际需求相符合,以及利用测试收集到的数据结果确定软件的可靠性。
1.2 软件测试原则
1.2.1 程序员避免检查自己的程序
软件测试工作应坚持严谨、客观和冷静,但是任何人都有不愿否定自己工作的心理,导致程序测试的工作中如果出现问题十分不愉快,因此会倾向于在测试中回避可能出现的问题。所以软件测试时应该由其他人员编写测试程序,提升测试程序的客观性和有效性。
1.2.2 测试用例包括合理、不合理输入条件
合理的输入条件是能验证程序正确的输入条件,不合理输入条件是指可能导致程序异常的临界输入条件。程序测试过程中,多数人都倾向于使用合法、符合期望的输入条件,检查程序是否进行应该做的工作,并且会忽略不合法的预想和输入条件[3]。但是软件投入实际工作中,用户往往不会遵循事先约定会输入意外信息或者非法命令,如果软件针对这类意外情况不能做出适当反应,软件就容易产生故障。所以在测试过程中也需要使用不合理输入条件用例,测试软件在各种环境下的工作状态。
1.2.3 尽早开展测试工作
软件具有一定复杂性和抽象性,并且软件开发是一个具有多样性的工作,单个软件同时会有很多人员一同参与开发,人员之间的能力区别、配合关系,会导致在软件开发的不同阶段都
产生错误。为了能尽早发现错误,测试工作应该尽早开展,并且贯穿于软件开发环节的每个阶段,坚持在各个开发阶段的技术评审工作,预防开发过程中存在的错误。
1.3 软件测试分类
1.3.1 根据开发阶段划分
单元测试。单元测试也被称作模块测试,会将软件设计为最小单位,检验软件模块的正确性[4]。包括检测软件的接口是否规范、性能是否满足要求等等,并发现模块内可能出现的各种错误。所以单元测试要从程序内部结构出发设计测试用例,并且针对不同模块平行地进行独立测试。
集成测试。集成测试实在单元测试基础上对程序模块进行有序、递增的测试,集成测试能检验程序单元部件、接口的关系,使程序能集成为符合是合计要求的系统。
确认测试。确认测试主要确认软件是否满足特定预期用途和需求。
系统测试。系统测试分析系统是否达到了原始目标,可以对软件和硬件进行集成测试,可以检查系统配置是否正确,能否满足用户要求。
验收测试。验收测试会对整个文档和系统进行评审,决定是否接收系统。
2 软件缺陷分析
2.1 软件缺陷定义
软件缺陷包括:软件没有达到应有的功能;软件的表现和说明书中不一致;软件功能超出说明书范围;软件不符合客户的预期目标;测试人员或者用户认为软件的易用性不足。不是所有的软件缺陷都会修改,因为修改需要时间,但是软件需要面对市场压力,有些软件缺陷来自于操作错误,并且如果软件错误影响的模块较多,将会给修改带来比较大的风险,或者修改性价比低时也会进行修改。
2.2 软件缺陷生命周期
软件缺陷的生命周期是指软件缺陷从被发现、报告、到缺陷被修复的完成过程,在理想的状态下,软件缺陷的修复过程为测试人员发现缺陷报告给开发人员,开发人员根据缺陷进行修复,提交给测试人员验证,测试人员通过验证修复过的软件,关闭不存在的缺陷[5]。在实际过程中,由于软件的复杂性,所以软件缺陷修复工作很难完成,需要不断重复修改。
2.3 软件缺陷分类
2.3.1 软件缺陷属性
表1 缺陷属性
缺陷标识 | 缺陷标志是某个缺陷的符号,每个缺陷都要有缺陷标识。 |
缺陷类型 | 缺陷类型是根据缺陷自然属性划分的缺陷种类。 |
缺陷严重程度 | 缺陷存在对软件正常运行的影响。 |
缺陷状态 | 当前缺陷的修复进展。 |
缺陷来源 | 缺陷出现的原因。 |
缺陷根源 | 导致缺陷出现的根本因素。 |
2.3.2 软件缺陷类型
缺陷可能来自于语法错误、拼写错误导致程序的语句存在问题,这类缺陷比较容易解决。有些缺陷存在在程序的设计中,比如程序存在逻辑错误,导致程序不能运行和造成程序崩溃。有些缺陷实在需求、规格说明、文档中存在错误,不利于程序的使用。在软件测试时,需要分析缺陷的种类,然后使用对应方法控制程序缺陷。
3 软件测试过程质量控制
3.1 采取工程化质量管理方法
软件测试工作可以使用工程化瀑布模型,根据模型中对软件开发进行阶段划分,分析软件测试工作需求,做好软件测试各个阶段的划分,包括调研,分析和提取测试需求,测试设计阶段建立测试工作产品基线[6]。各个阶段的产品在通过评审之后,才能进入到下一阶段,确保测试覆盖的全面性,保证对质量控制的整体效果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论