【软件工程】软件测试

您所在的位置:网站首页 需求分析占软件开发比例 【软件工程】软件测试

【软件工程】软件测试

2023-12-27 02:50| 来源: 网络整理| 查看: 265

前言

在软件系统的分析、设计、编码等开发阶段中,尽管开发人员采用了许多保证软件产品质量的手段和措施,但是错误和缺陷仍然是不可避免的。例如,对用户需求不正确、不全面的理解,实现过程中的编码错误,等等。这些错误和缺陷,轻者导致软件产品无法完全满足用户的需要,重者导致整个软件系统无法正常运行,造成巨大的损失和浪费。因此,为了保证软件产品的质量,在软件开发过程中及时发现并纠正错误是十分重要的。软件测试是在软件开发过程中保证软件质量、提高软件可靠性的最主要的手段之一。

基本概念 目的

软件测试的目的是为了发现和改正错误,这对于某些涉及人身安全或重要的军事、经济目标的项目显得尤其重要。 为了确切的描述软件测试的含义,先来定义几个重要的概念。

测试:测试主要是选择适当的测试用例执行被测程序的过程,它的目的在于发现程序错误。调试:诊断程序的错误性质、出错位置并加以改正的过程、通常由编码人员承担。失败:当一个程序不能运行时称为失败。失败是系统执行中出现的情况,失败源于代码缺陷。错误:程序中的缺陷所产生的不正确的结果称为错误。

对于软件测试,Glen Myers提出了下述观点(经典):

测试是一个程序的执行过程,其目的在于发现错误。一个好的测试用例很可能发现至今尚未发现的错误。一个成功的测试用例能发现至今尚未发现的错误。

开发人员思维的局限性和软件系统的复杂性,决定了在开发过程中出现软件错误是不可避免的。若能及早排除开发中的错误,就可以排除给后期工作带来的麻烦,也就避免了高昂的代价,从而大大地提高了系统开发的效率,因此,软件测试在整个软件开发周期各个环节中都是不可缺少的。 总体来说,软件测试的目标在于以最小的工作量和成本尽可能多地发现软件系统中存在的各种错误和缺陷,以保证软件系统的正确性和可靠性。

特点和基本原则

软件测试的特点:

软件测试的开销大 按照Boehm的统计,软件测试的开销大约占总成本的30%-50%。例如,阿波罗登月计划80%的经费用于软件测试。不能进行穷举测试 只有将所有可能的情况都测试到,才有可能检查出所有的错误,但这是不可能的。软件测试难度大 根据上述分析,既然不能进行穷举测试,又要查出尽可能多的错误,导致软件测试的难度比较大。而且随着软件的规模和复杂度不断增加,软件测试的难度越来越大。

软件测试的基本原则

应尽早和不断地进行软件测试开发人员应尽量避免进行软件测试 具体来说开发者在测试自己的的程序时存在一些弊病: 1) 开发者对于自己的程序印象深刻,并总以为是正确的。倘若在设计时就存在理解错误,或因不良的编程习惯留下隐患,他本人很难发现这类错误。 2) 开发者对程序的功能、接口十分熟悉,他自己几乎不可能因为使用不当而引发错误,这与大众用户的情况不太相似,所以自己测试程序难以具备典型性。 3) 程序设计犹如艺术设计,开发者总是喜欢欣赏程序的成功之处,而不愿意看到失败之处。注重测试用例的设计和选择充分注意测试中的群集现象避免测试的随意性,严格执行测试计划全面检查每一个测试结果妥善保存测试过程中的一切文档,为软件维护提供方便 测试方法 白盒法测试 又称结构测试、逻辑驱动测试或基于程序的测试。它依赖于对程序细节的严密检验,针对特定条件/与循环集设计测试用例,对软件的逻辑路径进行测试。因此采用白盒法测试技术时,必须有设计规约以及程序清单。设计的宗旨就是尽可能提高测试用例对程序内部逻辑的覆盖程度,最彻底的白盒法测试是能够覆盖程序中的每一条路径。但是程序中含有循环后,路径的数量极大,要执行每一条路径变得极不现实。软件的白盒法测试用来分析程序的内部结构。 几种常用的逻辑覆盖测试法法是语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖及条件组合覆盖。不同的逻辑覆盖测试方法是从不同的方面出发,为设计测试用例提出依据的。 这里写图片描述黑盒法测试 黑盒法测试是把测试对象看做一个黑盒,测试时完全不考虑程序内部的逻辑结构与特性,只需根据需求规格说明书,测试程序的功能或程序的外部特性,即只根据程序功能或程序的外部特性设计测试用例。因此黑盒法有称为功能测试或数据驱动测试。 黑盒法测试注重于测试软件的功能需求,主要试图发现下列几类错误:功能错误、性能错误、初始化和终止错误、界面错误、数据结构或外部数据库访问错误。 黑盒法测试常用的测试方法包括等价分类法、边值分析法、错误推测法、因果图法、正交实验设计法、判定表驱动法、功能测试等。但是没有一种方法能提供一组完整的测试用例,以检查程序的全部功能,因而在实际测试中需要把各种方法结合起来使用。黑白盒对比 这里写图片描述 测试策略

软件测试是一个非常复杂而艰巨的过程,从单元测试到验收测试,要经历好几个阶段的测试。

单元测试 也称模块测试,主要目的是检查模块内部的错误,因此,测试方法应以白盒法为主。

集成测试 集成测试是指在单元测试的基础上,将所有模块按照设计要求组成一个完整的系统而进行的测试,也称为联合测试或组装测试。重点测试模块的接口部分,需设计测试过程所使用的驱动模块和桩模块,测试方法以黑盒法为主。

确认测试 组装测试完成以后,系统已经集成,此时可进行确认测试,又称为有效性测试或合格性测试。其任务是验证系统的功能、性能等特性是否符合需求规格说明。系统测试 由于软件只是计算机系统的一个组成部分。软件开发完成以后,最终还要和系统中的其他部分(如计算机硬件、外部设备、某支持部分、数据)集合起来,在投入运行以前完成系统测试,以确保各组成部分不仅能单独地收到检验,而且在系统各部分协调工作的环境下也能正常工作。尽管每一个检验有着特定的目标,然而所有的检验工作都要验证系统中每个部分均已得到正确的集成,并完成指定的功能。验收测试 最后进行的验收测试是以用户为主的测试,测试过程、方法和测试内容与系统测试基本相同,也是以黑盒法测试为主。由用户确认系统的功能、性能是否满足需求。 后记

看软工视频要有自己的思考在里面,知道自己想要知道什么。这些都是我一个字一个字整理出来的,感觉整理完之后对我理解软件测试的帮助很大。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3