软件新人问题解答(一)
今天的文章是一个新入行的小伙伴咨询的一些问题,问题有点多,所以分成二次回复,针对这些问题,王豆豆觉得很适合刚入行、未对软件测试有过深了解的小伙伴们学习,故分享出来,供大家一起讨论学习。
Q1.一般规模的公司,技术部门的组织架构是怎样的呢?
几个测试?几个开发?几个前端?
A:每个公司的组织架构都不一样,有些公司是按产品来分、也有按部门职责来分,也有混合来分的,以最简单互联网公司组织架构为例:
一般后面的三级分组,小公司大多是根据内部工作职责来分,稍微大些公司根据测试人员的多少,会根据业务或其他特性分得更细。
每个公司多少测试、多少开发并没有固定,但有一定的比例,比如1个测试对3个开发,称为3:1,这个比例的高低取决于公司的领导层的决策,一般来说如果开发测试比达到5:1,加班情况就会相对来严重,不过也有特例,比如我们公司开发测试比为2:1,天天也是忙得飞起,原因是需求更新太快,回归场景过多。
Q2.一般公司项目是从1.分析需求文档-2.需求评审-3.编写测试计划-计划评审-编写测试用例-用例评审-执行测试用例-迭代。。。这样的一个流程,那如果进入公司,1-3这个阶段已经过了,作为新入测试人员,直接从编写测试用例开始吗?
A:在公司时里面整个测试流程是循环进行的,不必为了错过前面的需求分析、评审等步骤而担心,如果真是这样的担心,那最好是从项目立项、产品demo就开始介入,这样就能见证一个项目、一个产品的新起,但实际情况是公司不会不开始开发新的产品,也不会把你安排到一个全新项目,除非本身招聘要求就是如此。
说到刚进入公司做什么,一般来说对于新人会给一些简单易上手的事情分配给你做,前期的熟悉整个项目的业务-》分配一些不太重要的回归测试-》和老同事一起做一些项目,承担不太重要的功能测试-》独立开始一个简单而小的项目开始做-》独立承担更大的项目,基本都是按照这样一个循序渐进的一个过程开始的,对新人来说,一开始领导者也不会分配太重要的事情给你,基于风险的考虑都会慢慢安排事情做。
Q3.一个项目周期大概多长?需要迭代几次呢?迭代的时候,测试人员一般干什么呢?
A:每个公司项目周期都所不同,项目周期的长短也是根据项目大小而有所差异,项目小的周期自然就短,项目大或扩展性强的周期就非常的长,短的有一二个月的,长的则有达到七年以上(这是根据自己做过的项目情况得到的,12年开始,至今还在做)。
根据项目的周期不同,迭代的次数也不同,以前我们那个项目迭代基本是按一个月做一个迭代来的,而也有见过迭代更快的项目。
一个迭代基本就是一个测试流程,测试人员在测试流程中需要做的事,那么一个迭代基本也会做。详细的情况可见我写的《 测试流程之测试流程拆解 》的文章
Q4.测试一天的工作,是什么样子的?是不是几乎每天一上班,都要在禅道上写测试用例,提bug。确认了一个bug之后,是归总提给开发,还是一个一个提呢?
A:测试人员一天的工作内容是根据项目进度来决定今天做什么,有可能是熟悉需求,有可能是编写测试用例,有可能是执行测试等。
整体来说测试人员的工作内容离不开测试流程中涉及到的事项。
写测试用例或提bug并不是必须在禅道上进行的,在什么工具上编写测试用例或提bug?一般是根据公司的规定或个人习惯来决定。
在执行测试中,一般来说都是发现一个bug就在缺陷管理工具上提交一个bug,若是没有使用缺陷管理工具,一般是发现了就在即时通讯工具上告知开发人员,但这种情况不推荐,测试人员在发现bug,跟踪bug时,尽量做到有踪可追,有迹可寻,方便测试后期的统计和分析,也方便以后必要的查询。
具体的内容可以参见我写的 《 软件测试人员每天的工作日常》。
Q5.工作的项目是否需要做性能测试,是谁提出来的呢?是客户?还是测试组长?
以及项目中哪些功能需要做性能测试,哪些不需要是怎么决定的呢?组长要求的还是?
A:针对这个问题, 不论是性能测试还是自动化测试,我们并不会为了某一个功能而去做这些专项测试,一般来说会基于整个系统功能和业务需要来考虑,而大多数公司对性能的要求并不太严,而是对自动化测试关注点比性能测试更多。这里指性能测试指做专业的性能测试,实际上在我们平时的功能测试也会包含一部分的性能测试,比如某个功能提交时间的长短、内存泄露引起的系统变慢,甚至崩溃等。
一般来说企业真正需要做性能测试的时候一般是用户量、数据量达到一定的规模才会开始,我们不会为了只有特定几十、上百来个用户专门做性能测试,特别是一些后台管理,使用人数有限,或者是公司内部人员使用,忍忍就过去了。
如果要做性能测试,一般产品在提产品需求时就会对性能有一定的预估,某些性能指标预期达到多少,而且测试人员在测试过程就会对这些性能指标进行压测,判断性能指标是否预期。
所以提出是否要做性能测试的一般是产品,如果是帮客户做产品,那当然客户也有权力提,如果是自主产品,当然老板也会经常针对性能提要求,但具体都要根据实际情况来判断是否要做性能测试,假设一个产品用户只有固定的一批不多的人,像这样的产品一般都不做。