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