软件测试怎么样才能提高自己的效率?
目录
一、什么是低效率的软件测试?
二、什么是高效率的软件测试?
三、如何做到高效率的软件测试?
1、流程管理
2、环境和平台
3、工具
4、自动化
5、人员能力
四、结尾
一、什么是低效率的软件测试?
我们首先来看低效率的软件测试,我刚才说的“测试工作做起来又累效果又差”,这个描述很不准确,只是主观的感受,需要一些事实来将它具体化。不同公司不同项目组的差异很大,但根据我经历过的项目经验,低效率的软件测试主要有以下共同的表现:
- 需求分析,开发与测试工作相互分离,测试工作在整个开发阶段的末尾,承担着所有和质量相关的压力;
- 对于需求变动,设计变更,功能修改,代码重构等信息,测试人员往往是最后知道的,且能够了解到的信息有限;
- 测试人员远离真实用户,接触不到产品环境的信息,缺少对在线数据和用户行为监控分析的手段和能力;
- 团队无法做到有效的持续集成和持续发布,大量和运行环境,依赖系统有关的问题,每次发布的版本质量不可控;
- 缺少有效的,健康的自动化测试体系,测试依靠手工执行,重复繁琐的回归测试成为严重的工作负担;
- 缺少合适的测试工具,难以方便快速的完成构建测试数据,获取需要的信息,执行测试等工作。大量重复的无价值的工作需要手工完成,例如准备测试环境,安装被测产品等;
- 开发人员只关注功能实现,不写或很少写测试代码。测试人员只会手工黑盒测试,缺少对被测系统的深入理解,缺乏进行灰盒或者白盒测试的技术能力。
二、什么是高效率的软件测试?
那么什么才是高效率的软件测试,或者说高效率的软件测试应该有哪些表现?我尝试着从流程管理,环境和平台,工具,自动化,人员能力五个方面阐述
:
- 流程管理:具有规范的scrum或者看板等敏捷开发流程,测试活动贯穿软件开发的全阶段,提前预知风险。测试人员与开发团队,业务团队紧密合作,能够及时获取需求及开发信息,构建起完善的业务领域模型;
- 环境和平台:具有独立的,高度模拟化产品环境的测试环境,可以自动化的构建需要的测试环境及相关配置,能够广泛运用虚拟化和容器化技术构建复杂的测试环境;
- 工具:在团队中有完善的工具帮助测试人员完成日常工作,例如在线日志收集工具,服务状态和性能监控工具,用户行为分析工具,快速生成测试资源的工具,测试信息获取的工具等等;
- 自动化:有自动化的脚本或者工具减少重复工作量,有设计良好的自动化测试体系,并能够持续构建运行,每次代码改动的回归测试可以基本自动化完成,测试结果对整个团队可见。
- 人员能力:团队成员有统一的质量意识,理解各项实践活动和技术对于产品质量的重要性。开发人员重视代码质量,有完善的代码分析工具和测试覆盖率检查工具。测试人员具有黑盒,白盒和灰盒的测试设计与执行能力,具有优秀的技术能力,能够熟练掌握和运用上述提到的各种技术。对于测试活动与软件质量有深刻的认识,能够帮助团队从各方面提升测试成熟度。
三、如何做到高效率的软件测试?
1、流程管理
- 能够促进团队各个成员的协作,解决常见的需求,开发,测试三方工作互相分离,协调沟通困难,信息不透明,响应不及时的问题;
- 能够可视化工作流程和进度,使团队重视测试工作的价值。避免将测试工作积压到项目开发的末尾,测试人员成了团队的清道夫,承担所有和质量相关的压力;
2、环境和平台
3、工具
由此可见测试工具对于测试人员的重要性,缺少合适的工具,很多测试工作根本无法开展,也就是我们经常听到的“这个功能没法测”。根据自己的经验,测试人员需要的工具基本可以分为两大类:
- 第一是构造测试资源的工具。为了测试某项功能,需要具备某些条件或者拥有某些资源,而这些条件或者资源按照正常的业务逻辑,在测试环境中很难达到。例如需要大量金钱,需要很高的人物等级,需要大规模的数据量,需要某项指标达到特定的数字等等。没有合适的工具,测试人员要手工完成这些测试工作是极其低效甚至不可能的。
- 第二是获取测试信息的工具。在完成某项操作,或者出现问题需要分析原因时,能够快速方便的获取到所需的信息。例如点击按钮后的网络请求消息,API返回的结果消息,相关资源的变化情况等等。就像魔兽世界的例子一样,这样的信息越多越准确,越有利于测试人员做出正确的,高效率的决策。(在这里我想顺便澄清一个概念:黑盒测试不是基于无知的测试。我理解的黑盒测试并不是说这个黑盒我不知道,而是我不想知道或者我不必知道。一旦需要时,测试人员应该有能力很容易的把它变成白盒,获取到需要的信息。)
现在的软件越来越复杂,就像是现代化的战争一样,战场条件复杂多变,各种测试工具就像是武器装备,只有把自己武装到牙齿,才能打赢现代化的战争。
4、自动化
5、人员能力
四、结尾
软件测试怎么样才能提高自己的效率?相关推荐
- 博士生该怎么做才能提高科研效率?
这是一名普通博士生的日程: 这只是大多数情况,偶尔有实验或者写课题写论文要通宵,周末加班是常态-- 实验室时间超过12个小时,但是回过头来,却发现自己好像也没有做多少事情,这是为什么? 笔者想说,大家 ...
- AI提高药物发现效率 | ML,Supercomputers and Big Data
摘要 药物研发成本的增加和投资回报率的降低对制药行业构成了巨大的威胁.新兴技术有可能大幅提高药物研发和制造的效率.人工智能(AI)被认为是一种令人难以置信的工具,可以增强医疗保健的多个方面,特别是药物 ...
- 客户管理系统代码项目_西安人力资源管理系统如何有效管理销售,提高工作的效率...
人力资源管理系统如何有效管理销售,提高工作的效率 发布人:汇聚华企管理系统 原创分享 销售过程会出现的管理问题各种各样,比如说库存状态,比如说报价,又比如说客户关系管理,其实这些管理上的问题都能用软件 ...
- 提高项目开发效率之--会议室墙的进度表
我是做开发的,做项目带团队都是家常便饭了,但是每次都有不一样的收获.这次项目为了提高组员的开发工作效率,我想起了PMBOK书中提到的给团组找一个封闭的空间工作,于是我就每日在墙上贴上日工作进展图形统计 ...
- (1) 使用supervisor提高nodejs调试效率
转载地址 : http://www.cnblogs.com/pigtail/archive/2013/01/08/2851056.html 使用supervisor提高nodejs调试效率 以往我们在 ...
- 提高 Linux 开发效率的 5 个工具
提高 Linux 开发效率的 5 个工具 我们经常需要长时间地坐在电脑前做一项具体的工作只为能够优化工作流程.这包括选择和配置能让你最高效工作的工具.从长远来看,简单易学的工具并不总是好的,那些能够充 ...
- 如何提高数据分析的效率
数据分析的目的是集中和提取隐藏在大量看似杂乱无章的数据背后的信息,并总结出研究对象的内在规律.面对海量的数据时,提高数据分析的效率已成为分析人员面临的一个难题. 数据分析主要是指从初级商业智能(BI) ...
- 提高系统开发效率的“银弹”——X-series可视化大规模应用开发工具集
子曰,知之为知之,不知为不知,是知也. 知道自己不知道也是一种知道,但作为开发人员,面对一个系统时,无论是开发新功能还是维护老系统,我们更多的是处在一种茫然无助,不知道如何下手,甚至不知道自己不知道的 ...
- 巧用PaperPass自建库免费检测提高降重效率
在介绍PaperPass自建库之前,先客观的讲解一下使用paperpass的情况,这个系统检测出来的重复率会偏高,有些是同义转换或者概述的句子段落都会被标红,认为是抄袭.(除此之外,该网站后期开发票特 ...
最新文章
- Cortex-A、Cortex-R、Cortex-M处理器的性能比较
- 运行android模拟器,emulator: ERROR: x86 emulation currently requires hardware acceleration!
- 微信二次修改微信号_微信支持修改微信号了!功能正式上线,附详细教程
- java object对象的方法_Java常见对象Object类中的个别方法
- VC设置CEdit控件背景透明、文字背景也透明
- 使用计算机仿真的作用是什么,计算机仿真及其在制造业中的应用
- 苹果电脑更改sd卡只读_SD卡变为只读系统
- Visio——软件工程实验贰——面向对象软件设计方法
- Android 应用开发(9)---内联复杂的XML资源
- linux从表中提取信息,如何用Linux命令提取表格文本中的某列
- 支付功能如何软件测试
- 图像处理中滤波(filtering)与卷积(convolution)的区别
- STM32 USB Host 鼠标和键盘驱动 -- 原创
- C++萌新来看,一篇文让你让你彻底搞定类(超详细)!
- 7-27 EDG nb(20 分)
- Java项目校园兼职平台(含代码)
- 当年意气不肯平,白发如丝叹何益。贪心跳跃游戏
- 三种最流行的商业模式解析:让顾客感觉占便宜,你才能赚更多钱
- 简单的猜数字游戏--入门
- win10命令行cd进入到指定目录