重读《从菜鸟到测试架构师》--黑色的盒子里有什么(中)

上一章说到小艾在功能测试组开始了功能测试的学习,然而对产品知识、软件技能和客户意识有了一定了解的小艾,对整个测试依然有着不解之处,这时,导师为他深入浅出的解读了功能测试,导师是怎么解读的呢?

关于黑盒测试与白盒测试,尽管小艾已经知道了些许区别,但还是免不了老生常谈一番:

黑盒测试是软件测试的主要方法之一,也称为功能测试、数据驱动测试、基于规格说明的测试。测试者不了解程序的内部情况,只知道程序的输入、输出及系统的功能,它是从用户的角度针对软件界面、功能及外部结构进行的一种测试,不需要考虑程序内部逻辑结构。

白盒测试同样作为软件测试的主要方法之一,被称为结构测试、逻辑驱动测试、基于程序本身的测试。测试者了解待测程序的内部结构、算法等信息,是从程序设计者的角度对程序进行的测试。

在黑盒测试中,对测试人员的基本要求是他要知道软件的外在行为,但不必清楚软件内部是如何运作的。

 

对应的白盒测试就是测试人员知道白盒子的内部逻辑,知道该测什么,怎么测,会得到什么样的结果。

因此IBM将功能测试做了如下的定义:

    1. 基于软件功能模块的技术设计 - 需求 - 规格说明文档,来验证软件功能模块满足用户对其功能的要求。

    2. 目标是测试软件产品的单个功能正确地实现规定的需求和设计文档。同时发现各个功能模块的bug,包括新增代码的错误及修改代码产生的错误。 

导师告诉小艾,一个好的功能测试人员要成长为测试专家,甚至测试架构师,除了要从执行层面找到自己的手电,能够按照测试计划书及用例找到bug之外,还需要能够制定或理解:

    1. 功能测试策略:这是整个功能测试如何进行的基本准则

    2. 功能测试在整个软件开发流程中的生命周期

    3. 测试计划书,测试场景及场景对应的测试用例。

 

策略

测试策略通常是描述测试工程的总体方法和目标,用于规定测试的范围、种类、每个测试活动该如何制定计划,以及具体测试活动该如何进行等。测试策略是从测试目标、计划、实施、分析全方位给测试人员以方向性指导,用于保证项目的进度和质量符合市场和客户对产品和服务的要求。

功能测试策略作为整个测试策略的一个重要组成部分,其目的是给功能测试人员提供一套策略作为方向指导,一般功能测试策略应该包含但不限于以下方面:

 

功能测试的范围

具体而言,功能测试策略描述并规定功能测试应该在产品测试中覆盖的范围,其中功能测试场景及功能测试用例的重要性需要特别关注。

 

功能测试与其他测试种类的边界及前后承接的条件

对于功能测试和其他测试类型的边界关系,测试中的承接关系一定要描述清楚,这样既可以避免测试漏洞,又可以避免资源的浪费。

 

功能测试中不同的测试用例的定义与选取

在功能测试中定义功能测试用例时要有不同的策略考虑,哪些作为可接受性测试的测试用例,哪些作为当前及后续版本的回归测试用例,一般都要描述清楚如何选取及选取的比例。

 

针对于某个产品,或者某个产品的某个版本中的功能模块,或者具体功能解决方案的功能测试策略的描述

产品的不同功能模块所涉及的技术、实现的原理都有所不同,因此制定一个比较大的产品的功能测试策略时,要针对不同的功能模块,制定具体的功能测试策略。

对于功能测试中涉及的诸如访问控制、异常条件、全球化等的策略

功能测试策略对上述都需要有所考虑,才能保证测试覆盖率。

 

功能测试中的自动化测试相关的策略

测试用例自动化开发能够帮助测试人员在整个开发过程中不断地重复执行测试用例,可以在很大程度上减少测试人员花在回归测试上的工作量。

 

对于功能测试在不同的环境下进行的策略描述

为了最大限度地在软件交付给客户之前发现问题,使得客户得到一个保障质量的软件,功能测试要在不同的环境下去实施、验证。这里也涉及为提高测试效率而在不同环境下按比例分拆功能测试用例的比例。

 

对于所测试的软件的支撑环境的选择和测试用例的比例分配

在功能测试策略中,要对软件的上述支撑环境进行合理而有效的选择,并考虑到测试成本和测试效率及风险。

 

对于软件产品的不同版本的测试

一般产品都会有不同的版本:企业版、专业版、个人版……因此功能测试策略中一定要针对不同的版本做相应的测试策略。

小艾听到导师讲述的策略问题之后,发现功能测试的坑还真蛮深的,目前要想从容应用这些可不容易,还是先踏踏实实按部就班做事情吧~ 于是在这时,导师又开始和小艾谈起了流程的问题……

 

流程

一个熟悉各种流程的人,才能够按照正确的方式做事情。功能测试的流程主要用来规范功能测试是如何进行的,它的进入、退出标准是什么。

 

功能测试流程的输入元素

一般而言,对于功能测试,输入的元素主要包含需求说明书、设计文档、代码、产品的构建版本,及产品的文档等,有了这些,功能测试才能够开始最初的计划阶段。

 

功能测试流程的输出元素

功能测试计划书、功能测试场景、测试用例、测试总结、执行记录、缺陷记录、分析报告、交付的产品等。

 

功能测试计划书的准备

不同功能测试阶段的测试目标、达成目标的整体策略、鉴别功能测试依赖关系及风险、明确各种资源的可用性、建立计划、执行和报告的过程和约定、建立功能测试的重要里程碑及功能测试完成,测试阶段成果的进入/退出标准。

功能测试用例的设计

具体功能测试最细化的信息。一个测试用例是一系列相关的测试条件的逻辑化的拼装。应考虑有效的输入/输出,及无效的、不期望的输入/输出。

 

功能测试计划书的审阅和批准

得到批准的功能测试计划书是功能测试进行的唯一指导,流程包括:计划--准备--审阅--修改--追踪--批准。

 

功能测试的执行

验证产品的所用功能特征都符合产品设计说明书的要求。功能执行的环境必须和产品的建立及用户所使用的环境一致。原则上,任何问题都要在产品发布之前被解决,除非产品发布管理团队批准某一bug可以不在当前版本解决。

 

功能测试状态的报告

状态报告必须是基于客观的事实,要对重要的里程碑、产品质量等做好评估。

功能测试的流程

在需求阶段,测试人员以自己的理解,站在客户的角度上阐述自己的观点,与项目组的不同角色进行交流与讨论,在学习理解产品功能的同时,将自己作为“客户”的感受反馈给开发设计人员。

在设计开发阶段,功能测试人员扮演开发人员和“客户”的双重角色,一方面根据需求规格说明书等文档设计测试计划、测试场景,测试用例,并进行测试发现问题,一方面站在客户角度与设计开发人员进行沟通,及时提供软件质量反馈。

在成品测试阶段,功能测试人员要对产品进行充分的回归测试,以确保没有问题遗留或新问题的引入。

功能测试团队必须严格遵循制定的流程,以功能策略为指导,才能保障功能测试的任务能够高质量地完成,交付给市场和客户一个高质量的软件产品。

尾声

在导师的讲解下,小艾明白了测试的策略及流程,但依然不知道应该如何做以及具体做什么,这时候导师又会如何教导小艾呢?请听下回分解~

 

想要第一时间看到这一系列文章的更新及更多精彩内容可以扫描下面二维码关注微信公众号: 倚楼听风雨的如月

 

posted @ 2017-02-10 13:13  Ribbon  阅读(494)  评论(0编辑  收藏  举报