《软件测试技术实战 设计、工具及管理》联载-48

简介: 《软件测试技术实战 设计、工具及管理》联载-48

13.1  软件测试团队组成结构分析


软件测试工程师是软件行业中一个不可缺少的职位,随着社会的发展,软件越来越成为每个人、每个家庭、每个企业不可缺少的产品。特别是近几年,随着移动互联网的兴起,给日常生活带来了很大便利,这就促使从事这项职业的人也越来越多。随着软件企业的发展,软件测试部门在企业中的地位也越来越重要。组建一个软件测试队伍时如何进行人员分配,进而使得公司软件测试工作水平得到提高呢?这是测试经理比较关注的问题。


一个软件公司的测试部门应该包含哪些成员呢?可能各个公司有不同的策略,这里介绍两种方案。


13.1.1  方案一


案例13-1:软件测试团队组成结构分析方案一


1.软件测试经理

软件测试经理主要负责软件测试队伍的内部管理以及与其他各部门人员和客户等的交流,包括进度管理、风险管理、资金管理、人力资源管理、沟通管理等。软件测试经理需要具有一定的管理知识和技能。同时,软件测试工作开始前,软件测试经理要书写《软件测试计划书》,软件测试结束后需要书写《软件测试总结报告》。


2.文档审核师

文档审核师主要对在需求与设计期间产生的文档进行审核,如《业务建模书》《需求规格说明书》《概要设计说明书》《详细设计说明书》等。文档审核师需要在审核结束后书写审核报告。文档最终确定后,需要整理文档,并且给软件测试相关人员。


3.软件测试设计师

软件测试设计师主要根据需求期与设计期间产生的文档设计测试用例,包括功能测试用例、性能测试用例、安全性测试用例、可靠性测试用例、稳定性测试用例等。


4.软件测试工程师

软件测试工程师负责搭建软件测试环境、准备软件测试数据、编写自动化测试代码,并且按照测试用例执行软件测试活动。软件测试工程师应该具有哪些技能要求呢?


1)需要具有一定计算机专业的人员

由于具有一定计算机经验的专业人员,他们既懂得计算机的基本理论,又有一定的开发经验。所以,对于软件中哪些地方容易出错,哪些地方不容易出错,他们都了如指掌;他们可以分析程序的性能,如软件性能差是由于存在内存溢出,还是因为占用CPU时间太长,或者是因为频繁读取硬盘,还是其他原因引起?他们往往是软件技术方面的专家,尤其是进行非功能测试时。如果需要编写自动化软件测试代码,只有这类人员才可以做到,所以这类人员在软件测试队伍的比例应该是三分之二到四分之三。


2)需要具有本软件业务经验的人

软件测试队伍中需要有这样人员的目的在于:这些人员对业务非常熟悉,软件质量的前提又是满足用户的需求,因而这种人员对于成为需求文档审核师,也是非常重要的。俗话说,隔行如隔山,专业业务知识的熟练掌握是计算机专业人员很难达到的,所以这方面的人才可以利用他们的业务知识,参与系统需求期间的文档审核,这样,他们可以发现软件中存在的一些业务性的缺陷,如专业用语不准确、业务流程不规范等,他们对于专业性比较强的软件测试工作尤为重要,如税务、法律、金融和财务等。


3)只需要会操作计算机的普通人员

由于软件一旦卖出去后,使用软件的人各种各样,这些人使用各种各样的操作。因而请一些这样的人员在软件测试工作后期进行软件测试工作是十分重要的(如Beta测试期间)。他们往往能发现专业测试工程师测试不出的问题和一些稀奇古怪的错误,这就是软件测试学中所谓的猴子测试法。记得在笔者工作过的一家公司中,有一个IT部门的刚毕业的非计算机专业的同事,经常让他来做兼职测试,他总是可以发现一些非常奇怪的问题。


对于一个软件公司来说,并不是说所有的软件测试队伍都需要这3种人员,实际中,可以一组人代替多个角色,但是要遵循以下原则。


  •  对于业务不是很专业的软件,具有一定开发经验的计算机专业人员与具有本软件业务经验的人员可以合并。


  •  软件测试文档审核师可以由软件测试设计、软件测试工程师来完成。
  •  只需要会操作计算机的人员,可以由公司非研发部门的人员充当。


顾翔凡言:

不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。

目录
相关文章
|
IDE Java 编译器
浅析@SneakyThrows
在日常的开发中,相信你一定使用过Lombok,它是一款开源的可用于Java平台的代码生成库。我们在定义JavaBean的时候,会使用IDE自动生成构造方法、getter、setter、equals、hashCode、toString等方法,一旦类的属性有修改就要重新生成,通过使用Lambok的简单注解来精简代码就能达到消除冗长代码的目的。
1078 0
浅析@SneakyThrows
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
存储 Linux 调度
【Linux】进程概念和进程状态
本文详细介绍了Linux系统中进程的核心概念与管理机制。从进程的定义出发,阐述了其作为操作系统资源管理的基本单位的重要性,并深入解析了task_struct结构体的内容及其在进程管理中的作用。同时,文章讲解了进程的基本操作(如获取PID、查看进程信息等)、父进程与子进程的关系(重点分析fork函数)、以及进程的三种主要状态(运行、阻塞、挂起)。此外,还探讨了Linux特有的进程状态表示和孤儿进程的处理方式。通过学习这些内容,读者可以更好地理解Linux进程的运行原理并优化系统性能。
469 4
|
NoSQL Java MongoDB
MongoDB $type 操作符
10月更文挑战第16天
212 2
|
Ubuntu Linux 网络安全
mobaxterm x11 转发Ubuntu mac
通过上述步骤,您可以成功在 macOS 上使用 MobaXterm 实现对 Ubuntu 服务器的 X11 转发。确保每一步操作准确无误,可以有效避免常见的配置问题。通过这种方式,可以在 macOS 上方便地运行和调试远程 Ubuntu 服务器上的图形界面应用程序。
1896 5
|
NoSQL Java API
分布式锁的实现原理与应用场景,5 分钟彻底搞懂!
本文详细解析了分布式锁的实现原理与应用场景,包括线程锁、进程锁和分布式锁的区别,以及分布式锁的四种要求和三种实现方式(数据库乐观锁、ZooKeeper、Redis)。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
分布式锁的实现原理与应用场景,5 分钟彻底搞懂!
|
缓存 API Android开发
Android经典实战之Kotlin Flow中的3个数据相关的操作符:debounce、buffer和conflate
本文介绍了Kotlin中`Flow`的`debounce`、`buffer`及`conflate`三个操作符。`debounce`过滤快速连续数据,仅保留指定时间内的最后一个;`buffer`引入缓存减轻背压;`conflate`仅保留最新数据。通过示例展示了如何在搜索输入和数据流处理中应用这些操作符以提高程序效率和用户体验。
381 6
|
机器学习/深度学习 算法 数据挖掘
深度之眼(二十七)——神经网络基础知识(二)
深度之眼(二十七)——神经网络基础知识(二)
534 3
springboot2.4.5使用pagehelper分页插件
springboot2.4.5使用pagehelper分页插件
483 0
|
缓存 负载均衡 网络协议
什么是云解析DNS和普通的DNS解析有何区别
什么是云解析DNS和普通的DNS解析有何区别
1270 15