孙亚楠
摘 要:进入21世纪以来,全球经济高速发展,计算机软件技术已经应用到各行各业,人们对软件开发及其衍生产品的性能要求越来越高。而随着软件开发规模的增大、复杂程度的增加,以寻找软件中的错误为目的的测试工作就显得更加困难。为了尽可能多地找出程序中的错误,生产出高质量的软件产品,加强测试工作的组织和管理就显得尤为重要。本文主要探究软件的测试技术的应用及综合管理。
关键词:软件测试技术;应用;综合管理
随着现代社会信息科技智能化水平的飞速发展,软件相关产品已广泛应用于各行各业,与人们工作生活深度融合。可以说,软件产品质量的高低对推动社会信息化进程发展起着决定性作用。软件开发项目由于其高度的复杂性和集成性,在软件开发过程中极易产生错误和缺陷,因此贯穿整个软件开发周期的软件項目测试,是保障软件开发质量的重要技术手段,对提升软件性能有显著的促进作用。随着互联网+时代的来临,进行高效专业软件测试的要求和挑战日益迫切。
1 大数据概念
大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化力的海量信息,在运行方面具有数据流庞大、数据种类繁多、数据价值量密度较低以及数据运行和处理的速度极快等基础特征。
当前,我国大数据的应用领域已经从政府、金融延伸到医疗、生物、电商、安防等各行各业。随着云计算技术与应用、物联网、大数据等技术的不断发展,应用于各个领域的大数据系统也不断形成。这种大数据系统的系统结构复杂,数据类型更加丰富,更有TB级别的海量数据量,要使系统平稳运行,比起传统软件更是需要软件测试技术作为支撑。随着大数据技术的发展也逐步形成具有独特特征的大数据测试技术。
2 大数据测试与传统测试的比较
传统软件测试是在系统已知的前提下对从用户需求提取到的测试任务进行的测试,用户的行为直接影响系统的最终执行结果。传统软件测试最主要的两种测试类型为功能测试和性能测试,都是简单的从用户界面入手,比如12306中注册、登录、下订单、支付等,可直接使用黑盒测试方法即可。传统软件测试技术已经比较成熟,也形成了各种配套的自动化测试工具。
软件测试类型很多,包括功能测试、性能测试、安装与卸载测试、兼容性测试、健壮性测试、文档测试、回归测试等等。大数据测试和传统软件测试相比,主要测试类型都是功能测试和性能测试,但在测试目的和测试流程存在一定差异,主要表现在大数据测试更多的是去验证其数据处理而不是验证单一的功能。
3 软件测试常用方法
1)静态测试和动态测试。静态测试方法是指对静态的软件代码进行分析和检测,在实际的测试过程中,并不需要软件运行起来,而是单纯的只对软件的各种文档进行分析检测。故而,静态测试方法通常只应用于软件开发的过程中,其主要测试手段是人工测试和计算机辅助测试。动态测试方法是指对运行过程中的软件进行检测,其测试原理是通过检测软件运行过程中的某些动态行为,来判断软件的测试结果是否符合标准。动态测试的特点就是必须确保软件的完整运行。另外,需要注意的一点是在实际操作过程中,除了被测试软件,软件测试中所涉及的各种数据也会影响动态测试结果。
2)白盒测试和黑盒测试。白盒测试也称为逻辑驱动测试或结构测试,其工作原理是对软件系统的内部结构进行测试,对软件系统的运行状态进行评估,根据系统不同区域反馈的测试信息得出最终检测结果。白盒测试主要包括:基本路径测试法、逻辑覆盖法、静态结构分析法和代码检查法等。白盒测试技术需要测试人员对被测试软件的系统内部构造有足够的了解,能够在实际的检测过程中正确分析软件的检测数据。与其他测试技术相比,白盒测试技术最大的优势就是测试速度快且可以促进软件的运行效率。
黑盒测试的工作原理是通过对被检测软件的功能进行测试,来判断该软件系统是否能够正常运行。在它的实际操作及应用过程中,测试人员无需考虑软件的内部架构,只需对其输入输出数据进行分析。黑盒测试被广泛应用于软件系统的界面设计和功能测试方面,主要包括等价类划分、错误推测、边界值分析、因果图等方法。黑盒测试的技术优势是:操作和设计代码简单且有利于实现软件的功能。
4 强化软件测试管理的有效对策
1)加强软件测试过程的有效管理。在软件测试需求收集的过程中,应当及时掌握软件测试对应的具体对象以及实际范围。软件测试人员要加强与项目开发人员的有效沟通与合作,从而在规定时间内收集和整理好相关信息和资料,继而通过深入研究软件测试各环节的根本性需求,便于将软件测试内容具体化和细分化,确保软件测试工作的有效性和可行性。软件测试计划制定过程的核心工作是结合软件测试需求制定软件测试方案(包括软件测试环境分析、进度分析以及风险分析等),而软件测试执行过程则要兼顾软件测试实施和软件测试监控两项工作。另外,在软件测试缺陷跟踪过程中,必须在尽可能短的时间内完成缺陷报告工作,并持续跟进。
2)加强软件测试的监控管理。以下为软件测试中两点典型问题的监控管理:(1)软件测试中思维定式问题的监控管理。软件测试人员反复编制和创新测试用例,可有效避免对自己过于自信产生惯性思维定式,从而在增加软件测试次数的基础上有效提升缺陷防范率。(2)软件测试中定位效应问题的监控管理。项目管理人员必须有效组织软件测试人员全面实施软件测试用例,并加强交叉式软件测试,对那些已经通过测试的功能,二次测试时仍需认真测试,避免因疏于防范,遗漏一些潜在的缺陷,这样才能有效地解决问题。
3)加强软件测试的配置管理。软件测试需要进行充分的测试准备,需要科学规范的过程管理,有效的配置管理对跟踪和提高测试质量和效率十分重要。在软件测试的配置管理中,我们重点考虑如下四个问题:(1)选取适合的配置管理工具,提供软件测试的效率;(2)将配置项作为一个整体进行配置管理,避免配置项相关的基础数据、配置文件未进行配置管理;(3)增加发布前验收测试环节,避免修复的缺陷又重现;(4)明确角色与职责,避免缺陷无人认领互相推诿的现象。
5 大数据测试面临的挑战
与传统软件测试相比,大数据的多样性给从事大数据测试的软件测试工程师带来了新的挑战,可能面临下面几个挑战。
1)自动化。当前传统的软件测试功能测试还是手动测试居多,在高回归的情况下才会借助selenium、UFT等工具实现自动化。因大数据系统的数据量巨大、速度快、数据类型多、数据价值低等特点,借助测试工具实现自动化是从事大数据测试必备的技术,但当前市场上的自动化测试工具并不具备处理异常的能力,意味着现有测试工具可能并不完全适用,这就要求测试工程师需要自己编写合适的测试工具,编码能力将是大数据测试工程师的必备技能。
2)虚拟化。当前业内大规模使用虚拟化技术,但虚拟机的延迟有可能造成大数据实时测试处理的异常。
3)海量数据集。大数据系统需要验证的数据量往往是TB级别的,并且要求处理的速度更快,对这类系统进行测试需要有效的自动化测试手段。
总之,大数据分析已经毫无争议地成为信息技术发展趋势和热点,广泛被工业界和学术界热推。目前针对大数据测试的研究同其设计开发的研究相比相对薄弱。但随着大数据工程和数据分析逐步进入新的阶段,大数据测试将成为必然,也必定成为未来的一个热门的职业方向。本项目对大数据测试的相关理论、常用测试方法进行研究,后续将给出大数据技术与应用专业《软件测试基础》课程标准,为大数据测试人才培养做好准备。
参考文献
[1]王可平,陈阳,柳园园.软件测试管理自动化解决方案与实践[J].指挥信息系统与技术,2010,1(4):82-86.
[2]倪红英,黄芙平,周弘斌.国内外航空软件测试比较[J].指挥信息系统与技术,2015,6(6):8-12.