51Testing软件测试论坛
标题:
软件测试方法和测试流程
[打印本页]
作者:
老白的释然
时间:
2018-4-2 16:37
标题:
软件测试方法和测试流程
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件开发过程的重要
组成部分,是软件质量保证的关键步骤。
一、软件测试的方法
软件测试的方法可分为人工测试和机器测试:
人工测试包括个人复查、走查和会审;
机器测试可分为白盒测试和黑盒测试。
1、人工测试的方法
(1)个人复查
个人复查是指程序员自行设计测试用例,对源代码、详细设计进行仔细检查,并记录错误、不足之处等。个
人复查主要包括检查变量的正确性、检查标号的正确性、检查子程序、宏、函数、常量检查、标准检查、风格
检查、比较控制流、选择、激活路径、对照详细说明书,阅读源代码和补充文档等方面的测试内容。
(2)走查
走查是指测试人员先阅读相应的文档和源代码,然后人工将测试数据输入被测试程序,并在纸上跟踪监视程
序的执行情况,人工沿着程序的逻辑走查运行一遍,跟踪走查运行的进程来发现程序的错误。走查的具体测试内
容包括模块特性、模块接口、模块的对外输入或输出、局部数据结构、数据计算错误、控制流错误、处理出错
和边界测试等方面。
(3)会审
会审是指测试人员在会审前仔细阅读软件的有关资料,根据错误类型清单(根据以往的经验、对源程序的估
计等,并在以后测试中给以丰富补充)填写检测表,提出根据错误类型要提出的问题。会审时,由程序设计人员
讲解程序的设计方法,由程序编写人员逐个讲解程序代码的编写,测试人员需要逐个审查,提问,讨论可能出现
的问题。会审对程序的功能、结构、逻辑和风格都要进行审定。会审的测试内容与“走查”的内容相同。
2、机器测试
(1)定义
机器测试的目的是检查程序的动态性能,检查程序在执行过程中存在的错误。尤其是发现程序在实现功能、
逻辑通路、数值计算、数据处理、边界处理、错误处理等方面存在的错误。机器测试分为白盒测试和黑盒测试。
(2)黑盒测试
黑盒测试即功能测试, 这种方法是把软件看成一个看不见里面内容的黑盒,在完全不考虑程序内部结构和特
性的情况下,测试软件的外部特性。根据软件的需求规格说明书设计测试用例, 从程序输入和输出特性上检查
程序是否满足设定的功能。黑盒测试常采用的方法是设计适量有效和无效的输入数据进行测试,以期用最小的代
价发现最多的错误。
(3)白盒测试
白盒也称结构测试,这是将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,
对软件的逻辑路径及过程进行测试,检查它与设计是否相符。
二、软件测试的流程
软件测试的流程主要包含单元测试、组装测试、确认测试、系统测试四个阶段。
1、单元测试
单元测试也叫模块测试,单元指清晰定义了子功能的最小单位,如程序的最小编译单位等,是测试工作的
第一步,通常单元测试需要编写桩程序及耙程序。单元测试是要保证每个独立的模块完成清晰定义的子功能,
发现编码和详细设计的错误。它将整个系统分解,减少测试复杂度,在模块范围定位错误的位置,并且可以多
个模块并行测试。测试可以由编码人员也可以由测试人员来完成。测试方法以白盒测试为主,辅以必要的黑盒
测试。测试内容包括模块接口、模块内部数据结构、逻辑通路、边界值、出错处理等。
2、组装测试
组装测试也叫综合测试、集成测试、联合测试,它是在单元测试之后需要按照设计时做出的层次模块图把
测试模块连接起来,进行组装测试。测试目的是检查能够独立实现子功能的单元模块能否在组装过程中逐级实
现组合起来的主功能。测试人员由编码人员和测试人员共同进行。测试方法是黑盒测试。组装测试的策略分为
非增式测试和增式测试,增式测试又分为自顶向下、自底向上和混合式三种。
3、确认测试
确认测试也叫合格性测试、验收测试,经过组装测试后,所有模块已连接成为一体,确认测试是将整个软
件作为测试对象,进一步检查软件是否符合需求规格说明书的要求。确认测试的目的是检查系统是否能够按预
定要求工作。确认测试主要由测试人员完成。确认测试要进行以下几方面的内容:在模拟的环境下,运用黑盒
测试的方法,验证测试可包括功能测试、可移植性、兼容性、错误恢复能力、可维护性等性能测试。有些确认
测试还将软件配置审查,α测试,β测试也包含进来。
4、系统测试
系统测试是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支
持系统、数据和人员等整个系统其他元素系统结合在一起,在实际运行环境中,在用户的直接参与下进行,是
测试阶段的最后一步。系统测试的目的是在实际运行环境中,系统本身性能的实现、与其他系统配合情况以及
环境异常情况和人为恶意破坏时自我保护等。系统测试应有软件实际用户、测试人员、质量保证人员等组成。
系统测试采用的方法是黑盒法。系统测试的内容可包括:集成功能测试、可靠性与适应性测试、系统自我保护
及恢复能力的测试、安全性测试、强度测试等。
随着敏捷开发方法等新一代软件工程概念的风靡,软件编码和测试过程多次迭代,测试人员更积极地参与到软
件生命周期的各个阶段中,使得整个项目团队收取事半功倍的成效。
作者:
梦想家
时间:
2018-4-3 14:07
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2