浅析软件测试技术与测试管理

(整期优先)网络出版时间:2018-07-17
/ 2

浅析软件测试技术与测试管理

杨振鸿

关键字:软件测试技术管理

1引言

1.1软件测试概述

当今互联网的发展,软件工程对科学技术和实际应用有重要作用,无论是科学方案的验证、平台搭建,或者满足人们需求的网页、app的开发都需要软件工程的支持。而软件测试技术是保障代码程序质量的重要环节。软件测试是软件开发过程中的一个环节,一般位于软件功能模块代码开发完成后,通过编程技术对开发的程序和需求进行对比,保证程序的完整性、准确性,提高程序的质量。软件测试可以采取先行做法,根据程序文档形成测试用例,在程序开发过程中以测代写,降低出现无效代码的概率。

1.2软件测试技术的必要性

软件测试具备三个功能,具体为:(1)正确性,软件测试的首要目标是保障程序是正确的,程序脱离正确性后就没有测试的意义。(2)完整性,考虑代码应实现的功能,测试代码是否实现了所需的功能,并测试代码的覆盖范围。(3)质量性,主要对软件运行的可靠性进行测试。通过测试可以发现代码的错误、覆盖率和功能的缺陷等问题,针对问题提升代码,保障交付给用户程序的质量。但是如果软件测试技术的不成熟将直接影响软件工程质量。因此,有必要对软件测试技术及测试管理进行探讨,提升软件测试的质量。

2软件测试技术

软件测试技术种类很多,根据不同关注点,可以对其进行分类,具体包括:

2.1软件说明书测试

软件说明书是软件开发的整体说明,因此测试软件说明书应当首先在整体上把握和审视代码开发的情况,发现根本性问题。说明书测试是软件测试的重要一环,整体把握测试的主要目的并非快速找到问题,主要为后续测试环节做准备。因此一般采用高级检查和属性检查结合方式。除此之外,还应关注软件说明书的规范性和标准性。一般从国家、行业和公司几个角度检查软件说明书是否符合标准,检查软件的研发过程是否符合质量标准,对软件的规模、复杂性和可靠性进行评估,进而控制软件代码的质量[2]。

2.2等价类划分

一般要测试软件的功能,要采取具有代表性的案例。常用的软件测试方法之一即等价类划分。通过划分等价类明确用于代表整体数据集的数据子集,从而降低测试数量。但是由于数据子集可以代表整体集合,可以用更少的数量覆盖更多数据。该方法可以对软件应实现的功能以及代码的性能进行测试,根据软件输入域分布情况,可以选择一个或者多个具有代表性的数据作为测试用例[2]。一般这些被选择的数据子集形成了输入域集合。

2.3数据测试

一般软件包含两个部分,即程序与数据。其中程序是软件流程、转换和逻辑运算,而数据则是输入到程序中用于分析处理,数据包括键盘输入、鼠标输入和硬盘文件等[2]。对数据分析主要是通过输入数据和得到结果与实际应得结果进行比较,保障计算过程和结果的正确性。为了发泄一下隐藏的问题,常常采用非法数据探索边界条件,该方法为边界条件测试。而采用输入错误信息、空白信息、垃圾数据等方法也可以对软件进行测试。避免某些条件未考虑,降低软件质量或输出错误结果。因此,通过数据测试可以提高软件测试的效率。

2.4软件状态测试

该测试技术是对软件的逻辑性进行检查,在不同状态、流程下展开测试。首先,应当保证软件在变换到新状态时的稳定性和逻辑性,通过软件的反应和结果检查软件的性能;其次,当状态快速转换后,程序是否能及时应对,做出相应的反应;最后,要明确软件开启和退出的条件,以及软件输出结果的准确性[2]。

2.5白盒测试和黑盒测试

白盒测试是软件各个部分是透明的,偏向于细节的测试。主要对具体结果和流程进行测试,明确各个检测点,根据检测点展开具体的测试[2,3]。该过程的测试用例是在明确软件具体的功能情况下,针对不同测试点展开设计的。和白盒测试不同,黑盒测试倾向于对整体性的测试,在软件接口展开。可将软件内部的结构和逻辑流程看为一个黑盒子,测试人员无需了解盒子内的内容,只需要对软件部分整体进行测试,明确软件是不是符合软件说明书的要求,是否有遗漏,功能实现是否完备,访问权限是否符合规定等。黑盒测试的测试用例,应当科学规范,设置好测试计划,有序的开展测试工作,从而提高软件测试的质量。

2.6静态测试和动态测试

根据程序是否运行于机器上,将测试分为静态测试和动态测试。静态测试采取人工测试,同时使用计算机辅助功能的静态分析进行测试工作[3]。一般静态分析可以坚持文档问题,采取自动化和关键性的代码校验方式找到问题。但是程序运行中错误往往还需要动态测试技术来发现。该方法需要运行代码,输入测试用例,通过分析执行结果判定代码的有效性。在该过程中,代码运行的文档性、输出结果的准确性都反应了程序的质量。因此,动态测试是最常用的测试技术,贯穿于各个部分的测试中,其效果较为明显。但是只有在程序运行结束后,才能发现错误,同时需要对代码重新设计或修改,耗费精力较大。

3测试管理方法

3.1管理软件测试中存在的问题

当前在软件测试中存在定势思维的问题,导致在多次测试中也不能明确问题的现象。因此应当注意测试用例的更新,通过对更多新程序的测试或者让不同人展开测试,更好的发行问题。此外,由于大意不能仔细对程序功能进行测试,产生定位效应,导致程序存在一定问题。因此,可采用交叉测试方式或者通过提高和完善测试用例的方法避免定位效应问题。

3.2B/S结构

B/S是一种推动测试自动化和现代化的结构,测试人员将不受时间和空间的限制,在网络服务器中展开测试,提高效率。该结构是依赖于软件工作平台,通过登录的方式、更加便利的进行测试工作。

3.3测试资源共享

企业应当建立软件测试管理数据库,将以往的测试用例、软件缺陷建立成数据库,即经验库。测试人员可以共享该数据库,在测试过程中,通过利用以往的测试经验,结合当前软件展开测试,并不断进行优化,提供软件测试的水平,规范测试管理。

3.4加强测试人员的沟通和管理

测试人员对测试用例、软件存在问题或其他测试资料进行共享和查看,并针对这些数据展开讨论,针对软件测试过程中的不足或者优势提出建议。提高测试工作的有效性。此外,应加强测试人员的培训和管理,增强测试人员的业务水平和工作的规范性。

3.5加强软件测试整体过程的管理

为加强测试工作的效率和质量,可在测试需求期,明确每个测试阶段的具体工作,通过分析软件测试的目标,展开交流讨论和资料整理,并将测试细分为具体的、可执行的测试需求。据此,在测试计划时期,设计测试用例,对测试中的风险和环境进行分析[3]。对测试的执行情况进行监督并督促进行软件不足之处的修改。

结束语

为了保证软件质量,采取高效率的软件测试技术是关键。软件测试的有效性直接影响软件的质量,甚至对企业经济效益产生影响。因此应当高度重视软件测试技术,采用科学合理的软件测试技术、加强软件测试管理,实现软件质量的提升。

参考文献:

[1]李雪梅,高媛,杨立波.浅谈软件测试[J].太原大学学报.2012(01)

[2]闫玮.计算机软件测试技术与深度开发应用[J].时代教育.2016(06)

[3]崔哲.软件测试技术与测试管理[J].电子技术与软件工程.2018(04)

[4]钟百成,张言上.关于软件测试技术的探讨[J].数字技术与应用.2012(02)