一个软件或者系统的开发, 并非一我的或者一个角色就能够完成的,在了解软件测试以前,应该了解一下整个软件开发过程当中每一个角色,以及他们所对应的工做内容。程序员
产品经理:负责市场调研并依据产品,市场及客户的需求,肯定研发何种产品,选择何种业务模式,商业模式等,并推进相应产品的开发设计。(输出需求)运维
设计师:负责产品的设计,让软件看起来更加美观,优化用户体验和视觉效果(设计需求样式)单元测试
开发工程师:负责软件产品功能的实现,俗称「程序员」(开发需求)学习
测试工程师:负责在「测试环境」验证「开发工程师」开发的功能是否符合「产品经理」以及「设计师」输出的需求,并推进问题解决(测试需求)测试
运维工程师:负责将已经验证好的产品功能提交到「生产环境」,并保障产品稳定提供给用户使用(发布需求)优化
以上即是软件开发过程当中的核心角色,固然并非每一个公司都是这种模式进行,不一样公司有不一样的特点,会根据本身公司的特殊状况进行调整,例如小公司可能没有设计师,没有运维,大公司可能这中间还会出现其余角色,像「项目经理」等。编码
那「软件测试工程师」主要是作什么的呢?设计
可能不少刚刚进入互联网行业的小白,对于互联网行业的岗位和角色还不是很清楚,特别是平时没有出现再大众视野的「软件测试」岗位。那「软件测试」到底是作什么的呢?他服务于谁呢?简单来讲的话,「软件测试工程师」须要作的就是根据「产品经理」提出的需求,验证「开发工程师」提交的软件产品是否符合预期,如何不符合则须要提交 bug 并跟进处理。说白了就是须要测试程序员写的代码有没有 bug 。下面是对工做的详细描述:blog
经过测试发现软件中存在的不足是其中一个内容,测试软件的技术分为两种,一是黑盒测试,二是白盒测试。以后经过黑盒和白盒进行不一样类型的测试好比有类弄分法、因果图法以及白盒测试中的分支覆盖等等,经过这些不一样的测试能够发现软件中存在的不足,以让软件开发工程师再次进行完善。项目管理
软件测试的工做还包括把发现的问题整理成报告上交,提交缘分开发工程师,当获得确认后再对软件进行修复。对于软件测试是干什么的问题,你们还须要了解,测试人员在整理报告的时候应使用专业的术语,同时要具有很好的文字表达能力以及较强的语言组织能力,也只有这样才能把发现的缺点或不足详细、清楚的表达出来,让开发人员更好的对软件进行修复。
除了要测试软件的不足,还要分析软件质量的好坏,须要根据测试的结果来分析,计算出软件的缺陷率和缺陷分布的状况,以及提出对软件修复的趋势等。测试工程师须要给出软件各类质量特性的具体度量,好比功能性、可靠性以及易用性等,并得出结论提交给软件开发工程师。
软件测试的基本流程(重点)
测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议
测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目整体计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,总体测试策略的制定。风险评估与规避措施有一个制定。
测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成以后会进行评审。
测试执行阶段:搭建环境,执行冒烟测试(预测试)- 而后进入正式测试,bug 管理直到测试结束
测试评估阶段:出测试报告,确认是否能够上线
Plan-Do-Report
总结
开发流程:了解用户需求 --> 进行需求分析 --> 得知功能组成及设计软件结构 --> 开发设计计划 --> 概要设计 --> 详细设计 --> 进行软件编码 --> 单元测试 --> 代码审查 --> 打包提交给测试部 --> 测试部返回 bug --> 更新修复 bug --> 再次进入测试部测试 -->......--> 直到 bug 解决 --> 版本上线 --> 面向用户使用
测试流程:了解用户需求 --> 参考需求规格说明书 --> 测试计划(人力物力时间进度的安排)--> 编写测试用例 --> 评审用例 --> 搭建环境 --> 测试包安排预测(冒烟测试)-正式测试 -->测试结束出报告 --> 版本上线 --> 面向用户