根据我的观察,优秀的测试人员可以做的事情可以包括如下3点:
由单纯的测试变成项目质量保证工作
持续集成探索和推动和自动化测试技术研究
测试相关工具的开发
1、我们先来讲第一点,由单纯的测试变成项目质量保证工作
测试,从狭义的角度来讲,包括如下这些环节:
测试计划和测试用例编写-测试执行-质量报告书写
测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试、性能测试、安全性测试。兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保证了产品在海量用户大流量下的服务能力;安全测试能发现产品可能会被攻击的各个隐患。做完了这些测试以后,人员发布质量报告,产品上线。
不过,优秀的测试人员需要向上游和下游拓展测试的领域,把自己放在“质量保障”的角色上,推动整个项目组一起保证质量,上游的工作包括:
在产品刚立项、进行需求确认的时候,测试人员就会参与进去,仔细地Review需求,看需求是不是完整、有没有漏洞,这个时候还没有进入正式开发,修改需求对于项目组来说代价是最少的。在这个环节,测试人员凭借缜密的推演、发散性的思维,往往能发现很多需求的漏洞,提高了项目的整体效率。
另外,测试人员在完成测试计划、测试用例以后,会邀请开发、策划一起来评审测试用例,在这个环节,由于测试人员把每个需求如何细化测试都体现在了用例里面,就相当于再次把需求分析了个透,往往还能发现很多需求的漏洞。这也是提早发现需求漏洞的有效环节。
我们知道,代码的质量归根结底是由开发保证的,测试做的工作,只是发现Bug让开发修复。如果一个花瓶,一开始就是很完美的;另一花瓶经过了各种修补,看起来比较完美,大家觉得哪个花瓶比较好?当然是第一个花瓶。所以,测试人员应该站在质量保障的立场,想办法跟项目组沟通、给开发提供工具,让开发自己把质量保障工作做好。比较可行的一些方式是:提供一些手工用例让开发自测;给一些自动化的接口和UI测试代码让开发自测;部署静态代码检查工具,并推动开发分析和修改发现的问题;有一些做得好的项目已经实现了持续集成,也可以尝试。
下游的工作包括:
在产品完成了测试以后,就是发布的环节了,测试人员在发布的环节也能发挥作用,首先,测试人员为了部署测试环境,研究自动化部署的技术,可以把上线部署的环节也自动化,以前需要2个小时的部署环节压缩到半个小时甚至更少,而且更加准确可靠。
如果有些版本修改比较多,上线的质量风险大,测试人员会跟产品一起制定灰度发布的方案并在技术上进行实现,让版本先面向一小部分用户开放,如果发现Bug了,影响的用户也比较小,Bug改掉以后,再逐渐扩大用户范围。
另外,优秀的测试人员还会发动项目组的其他人一起来保证项目质量,比如推动开发进行代码Review;引入冒烟自测流程,让开发先自测以后再提交给测试做冒烟测试;通过在项目组分析Bug,让开发提高自测,降低Bug数量等;引入策划、交互、视觉在测试阶段进行走查,等等各种措施。
2、持续集成探索和自动化测试技术研究
业界都在说持续集成,那持续集成究竟是个什么鬼呢?
持续集成原本的意思是让开发每提交一次代码就自动化测试一次,如果自动化测试发现问题了,测试用例就会失败,开发就会马上发现这个失败,并修改代码。
要做到持续集成可有很多工作要做。
首先就是编译环节,要把所有编译的环节都自动化起来,开发每次提交代码都能进行自动编译;
编译完成后,就是静态代码检查的环节,通过静态代码检查的工具检查代码的问题,比如,数据库连接池没有释放,参数不匹配等。
静态代码检查完成后,就是单元测试了,单元测试用例一般是开发人员或者测试人员编写,或者开发和测试合作编写,保证的是开发内部函数的正确性。一个健康的自动化测试方案中,单元测试用例的占比是最高的。
然后就是接口测试,一般保证的是后端开发提供给前端开发的HTTP接口,接口一般也比较稳定,用例比较容易维护,所以,接口测试的自动化占比也可以做到很高。
在接口测试的上层就是针对用户界面的UI测试了,就像测试人员手工执行一样,UI自动化测试能操作页面的元素,完成自动化。不过,由于用户界面常常要重构,所以我们常常会控制UI自动化测试的规模,只覆盖主干的用例。
优秀的测试人员可以把自己的工作尽量自动化,并用持续集成框架串起来,提高工作效率和质量。
3、测试相关工具的开发
优秀的测试人员会开发其他好用、趁手的工具来提高工作效率,比如数据自动生成、报表自动生成、报bug工具等。
其实归根结底就是一句话:测试人员最核心的工作就是保障项目的质量,各类测试流程、技术、工具和平台的发展让我们可以更好地保证项目的质量。
相关推荐
以下将详细介绍一个优秀的测试工程师应该具备的主要素质。 ### 1. 技术能力 - **编程基础**:虽然并非所有测试工作都需要编写代码,但了解基本的编程原理和技术能够帮助测试人员更好地理解被测系统的工作机制。 - ...
综上所述,成为一名优秀的软件测试工程师需要具备扎实的技术基础、熟悉软件测试流程、拥有良好的沟通能力和团队协作精神、持续地学习新知识,并且重视对业务领域的深入了解。只有这样,才能在竞争激烈的行业中...
综上所述,成为一名优秀的软件测试工程师不仅需要扎实的专业技术基础,还需要具备良好的业务分析能力、敏锐的缺陷洞察能力以及高效的团队协作精神。只有不断学习和提升自己,才能在这个快速发展的行业中立于不败之地...
如何成为一个合格的测试工程师 随着信息技术的飞速发展,软件测试作为确保软件质量的重要环节,其地位愈发凸显。对于刚入行的测试工程师而言,如何快速成长并成为一名合格的测试工程师,是职业生涯初期的关键问题之...
- 测试专业技能:软件测试已发展成为一个专业领域,要求测试工程师具备扎实的专业基础。这包括理解黑盒测试、白盒测试等基础测试技术,熟悉单元测试、功能测试、集成测试、系统测试、性能测试等不同层次的测试方法...
优秀的测试工程师不仅要有扎实的技术基础,还需要具备广泛的知识面和敏锐的洞察力。他们能够理解产品背后的复杂性,同时关注用户体验,通过科学的测试方法和工具,确保软件产品的高质量。在职业生涯中,持续学习和...
总之,成为一个优秀的产品测试工程师,不仅要求扎实的技术基础,还需要全面的行业视野和敏锐的用户体验洞察力。通过不断的学习和实践,以及对测试行业的深入理解,可以逐步提高个人的专业素质,从而在测试领域取得...
总之,成为一名优秀的测试工程师需要广泛的知识、深入的技术理解、敏锐的用户体验感知以及不断学习和实践的精神。只有这样,才能在快速发展的IT行业中保持竞争力,确保产品的高质量和用户满意度。
5. 自动化测试:随着软件测试行业的发展,自动化测试已成为测试工程师必备的技能之一。初级测试工程师应该学习如何录制自动化测试脚本,了解自动化测试的原理以及如何使用自动化工具提高测试效率。 6. 编写测试用例...
一个优秀的测试工程师应当具备质量第一的职业精神,并在日常工作中不断寻求创新,以维持和提升产品的质量标准。 其次,软件测试知识体系的构建对于测试工程师的职业成长至关重要。测试工程师需要掌握各种测试类型、...
测试工程师 测试工程师是一个非常重要的角色,在软件开发和测试过程中扮演着举足轻重的作用。...测试工程师需要具备广泛的知识和技能,包括测试过程、测试环境、测试工具和测试技术等,才能成为一个优秀的测试工程师。
### 一个合格的电子工程师应具备的知识 #### 引言 在当今科技飞速发展的时代,电子工程师扮演着至关重要的角色。他们不仅需要掌握扎实的基础理论知识,还需要具备丰富的实践经验。本文将详细介绍一个电子工程师应该...
软件测试工程师的职业规划是一个系统的过程,涵盖了从入门到高级,再到管理层的多个阶段。这个领域不仅需要技术深度,还需要管理能力和流程控制的理解。 初级测试工程师是职业生涯的起点,主要任务是学习基本的手动...
总的来说,成为一名优秀的嵌入式软件测试工程师需要深厚的计算机科学基础,熟练的编程技能,良好的问题解决能力,以及对硬件和软件交互的深刻理解。而【中海达】的校园招聘流程,通过精心设计的笔试题目,旨在选拔出...
要成为一名合格的测试工程师,需要具备一系列的专业技能、行业知识和个人素养。以下是对这些要求的详细说明: 1. 计算机专业技能: - 测试专业技能:这包括对软件测试理论的理解,如黑盒测试、白盒测试、测试用例...