网站首页  词典首页

请输入您要查询的论文:

 

标题 认识软件测试
范文

    陈豪文 周璐雨 宁志豪

    摘要:随着信息技术的快速发展,人们对软件的认知发生着阶段性的变化,对软件的质量和功能等方面的要求也变得越来越高。一个优秀的软件在每个完成阶段都应经历严格的质量检测和功能测试。那么如何更好的保证软件的质量,进行系统规范的测试,本篇文章将详细的介绍软件测试中常用的方法和技術。

    关键词:软件测试;目的;方法

    一、为什么要进行软件测试

    软件危机的出现让我们将目光更多的聚焦在软件测试上来。软件危机泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。[1]

    软件危机产生的原因主要有4个方面。①软件自身的特点。软件是由许多程序代码组成的,它不能像硬件那样通过规定的标准来衡量。②缺乏正规的理论性指导,没有开发工具和严谨的方法学的提供。③不能清楚的明确用户的需求。因为在软件开发出来前,用户可能也不清楚自己的需求,或者开发人员对用户的需求可能出现二义性等都会产生软件危机。④软件开发的规模变大,复杂度更高。规模太大有可能会产生交流,管理等方面问题。复杂度太高,人们的智力和能力将没有能力解决。

    二、软件测试的定义和目的

    软件测试是对程序或系统能否完成特定任务建立信心的过程,也是帮助识别开发完成(中间或最终的版本)的计算机软件(部分或整体)的正确性,完整性,和质量的软件过程。[2]

    软件测试的目的——尽可能早的发现并改正被测试软件中的错误,提高被测软件的可靠性。[3]

    三、软件测试的主要方法

    软件测试按静态和动态可分为两大类:(1)静态测试。(2)动态测试。

    静态测试——不需要运行程序,通过对源代码进行检查发现软件缺陷,主要包括各阶段评审,软件复杂度、质量度量,结构分析,代码检查。各阶段评审的主要内容包括同行评审即让除开发软件的其他人检查软件是否有缺陷,需求阶段的需求规格说明书是否符合规范等。代码检查的主要内容包括正确性检查、健壮性检查、完整性检查、可修改性检查和结构化检查。

    动态测试——需要运行程序,分析预期的结果和真是结果的差异,主要包括单元测试(对源码的一个独立的一小段代码进行测试,该代码实现一个规定的功能)、集成测试(将进行单元测试后的模块组装起来进行测试,一般多用于检验接口)、确认测试(检查软件是否满足需求规格说明书上的要求,配置是否正确)、系统测试(针对系统中各个组成部分进行综合性检验,测试系统性能)、验收测试(向用户证明软件可以像用户要求的那样工作)。

    软件测试按对内部程序的了解程度也可分为两大类:(1)白盒测试。(2)黑盒测试。

    白盒测试——只测试程序的处理过程和内部结构,不测试软件的功能。将被测程序看成是打开的黑盒,测试人员不考虑程序的功能,只根据内部结构设计测试用例。测试方法主要是逻辑覆盖测试(包括语句覆盖、条件覆盖、判断覆盖、判断/条件覆盖、条件组合覆盖)路径覆盖测试(控制流测试)。

    黑盒测试——不关心程序的内部,根据需求规格说明书的要求,通过输入和输出的关系设计测试用例,检验是否满足功能需求。测试方法主要有等价类划分法(把所有的输入数据划分为若干部分,然后从各个部分中选几个代表的数据作为测试用例。有效等价类是验证规定的性能和功能和无效等价类是验证不符合规格说的地方)、边界值分析法(在有效等价类的基础上选取刚刚大于,刚刚小于边界的数据作为测试用例)、决策表法(利用表格式的图形描述条件和动作的关系)、因果图法(用于描述多种组合的测试,一般是根据输入,输出,以及约束之间的因果关系来设计测试用例)。

    四、其他测试方法

    (1)配置测试——软件在多种平台的运行情况。一般的过程为:①确定需要的硬件种类。②确定厂家的硬件。③确定硬件特征。④缩小到可控制的硬件位置范围。⑤为每一个配置设计测试用例。⑥执行每一种测试并反复测试。

    (2)兼容性测试——检测软件之间是否能正确地交互和共享信息,目的是保证软件按照用户期望的方式进行交互。[4]

    (3)外国语言测试——主要解决翻译问题,热键和快捷键问题,字符计算问题,文本扩展问题,本地化问题等由于语言的形式不同造成的问题。

    (4)易用性测试——主要包括用户界面是否符合规范和标准,是否有为有残疾障碍人员提供帮助的测试。

    (5)安全性测试——检查软件对不法盗取信息,侵入系统的防御能力,测试软件是否存在漏洞,该测试是在非正常的条件下进行的测试。其中包括网络安全性,数据库安全性,系统安全性等方面。

    五、未来的软件测试

    近几年,人工智能发展迅速,掀起一股热潮。通过人工智能进行其他软件的测试,从现在来看,已经取得了不错的进展。人工神经网络就是AI 技术在软件测试方面应用较流行的一个典型例子,当然,还有遗传算法等等。在软件开发过程中敏捷开发是一个高效快速的模型,软件测试也可以借鉴此方法,从用户的角度思考问题,重点关在与迭代地进行测试。

    参考文献:

    [1]韩利凯.软件测试[M].北京:清华大学出版社,2013:23.

    [2]蔡建平.软件测试方法与技术[M].清华大学出版社,2014:23.

    [3]蔡建平.软件测试方法与技术[M].清华大学出版社,2014:24.

    [4]Ron Patton.软件测试[M].机械工业出版社,2011:96.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 3:10:42