首页/文章/ 详情

读书笔记:《软件测试之困:测试工程化实践之路》

11月前浏览1120

 经常有朋友问有没有学习仿真的相关书籍推荐,于是搜集和阅读了一些,记录在这里,向大家分享。如果大家有觉得好的书籍,也请留言推荐,不胜感激。

肖利琼著. 北京:人民邮电出版社,2023.03

本书结合作者多年的工作经验,以对话、故事的形式,介绍了测试工程化、测试流程、测试用例、测试平台、测试创新等方面的内容,其中提到的很多测试过程中的重点和难点十分经典、值得参考。

全书共8章,概述如下:

第1章

提出了测试工程化的话题,并分析了目前测试中的一些问题,作为后面章节展开的引子。所有产品的开发都会受到其价值、质量和约束的限制,约束包括投入成本、功能范围和发布进度。测试工程化指的就是围绕产品价值的一系列测试活动有序进行的过程。一方面,测试一种商业性投资活动,需要考虑其投资回报率;另一方面,要从软件构建的整个体系出发,通过工程化的方式,思考如何在软件生命周期的各个阶段更好、更快的发现问题。在测试的各个阶段需要时刻以创造价值为目标并优化测试流程。

测试过程中会综合采用各种测试方法和手段,如系统测试、易用性测试、可靠性测试、压力测试、性能测试、安全性测试和自动化测试等。黑盒测试是功能测试常用的一种方法,要做好黑盒测试需要了解用户需求、软件工作环境等,其实就是要了解软件作为一个产品会被如何使用,如果能够了解产品的工作原理会有更好的效果。

测试工作的产出包括:①产品业务类,如测试计划、测试方案、测试用例、bug、测试记录和测试报告等,这些对产品进行测试的过程和结果产品;②平台类,如各种测试管理工具、测试流程规范、用例设计模板、测试方案指南等,这些能够提升测试质量和效率;③知识库类、如内部培训资料、经验总结等,这些有助于测试能够的沉淀。发现bug、提升测试效率、创造用户价值都能够带来测试成就感,而漏测bug、测试效率低下、需求突变、不能及时解决bug和则会带来比较大的挫败感。

第2章

说明如何在制定测试策略时提高商业意识。测试中不一定要实现完全的自动化、不一定要不断学习新的开发工具、并不是所有bug都需要解决,这都需要以市场需求为准则,“只有产品在商业上成功,才有测试成功”。

测试工作不要局限于拦截更多的bug,需要站在客户的角度发现产品存在的问题,并主动思考解决方案,实现客户想要的产品质量。

通过优化测试流程、采用新的测试工具、虚拟测试环境等方法,合理提高测试效率 、控制成本,有助于提高测试的测试效益。

第3章

介绍了测试流程优化的相关内容。通过不同人员分别对同一模块进行测试的轮转式交叉测试可以充分发挥每个测试人员的能力,相互补充测试思路;首轮测试发现bug较少,可进行探索式测试尝试发现问题;某个模块长时间没有测试但是可能被其他模块影响的情况,可进行巩固测试,进行自我回顾和查漏补缺。通过调整工作内容、改变测试方法的途径可改善测试空窗期的问题。

软件在开发端通过真机环境冒烟测试后再传递给测试端,有助于保证内部版本质量、提高发布效率;版本发布是一件很严谨的事情,可采用专人管理、流程和平台管控等方式保证。

开源的Bugzilla工具集成了一套成熟的故障管理流程,并可进行二次开发。测试工程师在提交bug前填写检查单+bug排行榜的方式,测试工程师可通过“自管理”bug的方式,快速、有效的提交bug。通过在开发端增加风险bug解决后系统工程师的审核及在测试端增加风险bug回归测试后的测试系统工程师审核流程,有助于提高风险bug的解决质量。

第4章

主要介绍了敏捷开发模式中通过技术手段优化流程的内容。需要建立全链路的产品需求追溯体系。产品的一级需求是代表内外部用户利益的顶端原始需求,一级需求需要分级为各专业的二级需求,这个过程需要追溯;需求到测试用例、测试用例到需求两个方向也需要追溯,这个过程可通过TestLink工具实现;需求与代码之间也需要追溯。

找到适合项目团队的开发模式相当重要,而这个合适的开发模式有赖于项目各方人员的共同努力和达成一致,测试人员可根据发现的问题驱动流程更新以及自动化。

流程为解决共性问题提供了一套系统的标准方法,而工具就是流程执行的助推器。自动化不仅指自动化测试,还包括流程自动化等其他方面的工作,书中以测试过程输出物归档自动化为例进行了说明。

第5章

分析了测试用例的作用和场景问题,并进行了测试用例的规范化。测试用例是为摸个特点目标而开发的输入、执行条件及预期结果的集 合,是测试工作中最重要的输出。测试用例常见的问题包括:可读性问题、二义性问题、可执行性问题、可维护性问题和可复用问题等。

测试用例的框架结构可从三个方面考虑:以业务功能为主线,按照功能模块逐步分层细化;以专项特性为主线,如通讯协议、文件安全性、操作系统兼容性等软件类专项测试和存储卡、显示器、硬盘等相关的物料类专项测试;以适用范围为主线,如公共测试用例集、版本发布测试用例集、冒烟测试用例集 合演示版本用例集等。常见的测试用例元素包括:ID、标题、预设条件、操作步骤、预期结果、设计者等。

测试用例编写时要采用简单化、条理化和科学化的语言表达测试用例的内容,定义统一的关键词表达规则和变量命名规则。可通过定义测试用例简语和测试用例宏,并编写具体用时进行引用,提高测试用例的可维护性。本章最后对测试用例标题、预设条件、操作步骤和预期结果等元素制定了编写规则。

第6章

介绍了测试平台相关内容。测试平台是指为所有测试人员提供测试服务的公共技术、组件和工具,以及体系文件的集 合。测试平台可通过资源共用,提高测试效率。平台任务会因项目任务优先级更高等原因而延期。

测试用例的平台化,不是简单的测试用例的复 制、粘贴和修改,而是仅保存一份测试用例供不同项目共同使用。可通过定义平台测试用例编写规范并设置选项组的方式,对不同项目需求进行“求同存异”,尽可能的实现平台化。

测试开发平台包含测试管理、测试环境、测试数据构造、专项测试工具、自动化测试等方面的内容。可通过测试开发社团的形式,收集、维护和共享内部的各种测试工具。

第7章

介绍了测试创新的内容。测试工作会经历三个阶段:以发现bug为中心任务;与开发团队并肩战斗,通过保证交付成功实现测试成功;不刻意区分开发与测试、软件与硬件,而是与产品融为一体,满足客户要求。本章还分享了白盒测试团队组建和需求测试社团运用的案例。

第8章

介绍了测试工作评价相关内容。测试工作评价内容可包括测试的分析与设计、测试执行、问题单管理、流程建设、测试开发、专项测试和培训总结等方面。文中还介绍了常见的工作量评估方法。

漏测问题客观存在,首先要正视它,然后想办法尽量减低漏测数量。可通过选取20%的重要功能模块作为重要测试对象的方法,力争用户常用的功能场景不出现漏测问题。

可通过分析测试用例命中的bug数、非测试用例命中的bug数和用户反馈的bug数,再结合项目的复杂度和团队能力成熟度,评价测试工作的质量。测试评价还要重视需求覆盖率和代码覆盖率。

测试自动化可提升测试效率,它不限于自动化测试,是把整个项目与测试相关的研发流程看成一个体系化的测试过程,其中每一阶段的流程、任务都采取自动化思维,用技术手段解决范围更广的产品研发全链路中与测试相关的问题。

来源:孙工自动驾驶
二次开发控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-07-20
最近编辑:11月前
孙工自动驾驶
硕士 专注自动驾驶仿真测试
获赞 15粉丝 21文章 77课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈