当前位置:网站首页>【软件工程之美 - 专栏笔记】31 | 软件测试要为产品质量负责吗?
【软件工程之美 - 专栏笔记】31 | 软件测试要为产品质量负责吗?
2022-07-30 20:20:00 【if...else...】
专栏信息
专栏作者:宝玉
专栏发布平台:极客时间

主要内容
软件测试的主要工作是什么?只有搞清楚软件测试的工作,才能搞清楚这部分工作是否可以由开发来替代,是否需要专职测试。
一、软件测试的主要工作是什么?
从需求开始,在需求确定后要去对需求进行分析,然后做测试设计。
如果说架构设计是对业务需求在技术方面的抽象,那么测试设计更像是对业务需求的具象,把业务需求分解成一个个具体的用户操作步骤,也就是测试用例。
如果对软件测试的工作简单总结一下,就是发现 Bug,报告 Bug,跟踪 Bug。
软件测试怎么发现 Bug?
这里面最难的就是发现 Bug,尤其是如何尽早、尽可能全面地发现 Bug。
对于测试人员来说,重点是在检测,也就是会考虑所有可能的用户使用场景,正常的、异常的,甚至各种极端情况。
测试人员设计测试用例,就是要尽可能做到覆盖所有用户操作的可能,但理论上来说这是不可能的,因为组合是有无限多个的。
可以通过一些科学的方法来通过有限的测试用例,保证尽可能多的测试覆盖。
- 等价类划分
- 边界值分析
- 探索性测试
- 场景设计
- 因果图
- 错误推测法
推荐阅读《微软的软件测试之道》,这本书上有很多具体的测试方法的详细介绍。
软件测试怎么报告 Bug?
在测试的过程中,如果测试人员发现了 Bug,就会通过 Bug 跟踪系统提交 Bug 给开发人员。
软件测试怎么跟踪 Bug?
Bug 的跟踪,并不仅仅是要跟踪开发人员什么时候修复了这个 Bug,通常还包括对 Bug 修复的验证。
回归测试是指修改了旧代码后重新进行测试,以确认修改没有引入新的错误或导致其他代码产生错误。
二、什么样的公司需要专职测试?
为什么 Facebook 可以做到没有专职测试呢?
首先 Facebook 的工程师水平确实是高于业界平均水平的,有能力同时做好开发和部分测试工作
其次,Facebook 的产品周期相对宽松,可以有时间完成自动化测试代码;
Facebook 的发布和监控也比较完善,有问题能通过监控及时发现,并且可以随时快速回滚或者发布补丁;
最后就是用户对这类社交产品的 Bug 相对容忍度比较高,想想看如果是波音飞机上的软件能这么做吗?
大厂不设专职测试的启示
首先,用自动化测试代替重复性的手工测试是必然趋势。
其次,测试设计是软件测试人员的核心竞争力。
最后,开发人员和测试人员的更多融合是一种双赢。
三、其他摘抄
- 除了功能性的测试,还需要进行非功能性的测试,也就是像性能、安全性和用户体验等方面的测试。
- 有时候测试人员的工作看起来不过是用鼠标点点测试,但他们在拿到需求后,其实花了很多时间和精力分析需求,然后根据需求设计测试用例,准备测试数据。
- 回归测试这一步很重要,因为通常开发人员在修复完 Bug 后,只会验证其修复的 Bug,而不会验证其他功能是不是会有影响。回归测试,则能有效、及时地发现修复 Bug 导致系统不稳定的情况。
总结
简单来说软件测试的工作,就是发现 Bug,报告 Bug,跟踪 Bug。
公司是否需要专职测试,还是取决于公司的具体情况,例如是否有大量优秀的工程师可以同时兼任开发和测试,有大量的自动化测试代码覆盖,有强大的发布和监控系统,进度宽松,用户对 Bug 容忍度较高。
边栏推荐
- MySQL_关于JSON数据的查询
- 树形结构:二叉树的递归非递归遍历、BST
- 【回归预测-lssvm分类】基于最小二乘支持向量机lssvm实现数据分类代码
- MySQL database master-slave configuration
- 5分钟搞懂MySQL - 行转列
- Android Studio 实现登录注册-源代码 (连接MySql数据库)
- Based on the face of the common expression recognition - model building, training and testing
- Flink_CDC搭建及简单使用
- [NISACTF 2022]下
- 英文字母间隔突然增大(全角与半角转换)
猜你喜欢

MySQL_关于JSON数据的查询

【Codeforces思维题】20220728

如何解决gedit 深色模式下高亮文本不可见?

从离线到实时对客,湖仓一体释放全量数据价值

PHP低代码开发平台 V5.0.7新版发布

【回归预测-lssvm分类】基于最小二乘支持向量机lssvm实现数据分类代码

MySQL database master-slave configuration

Office365无法打开word文档怎么办?Office365无法打开word文档的解决方法

Interviewer Ali: Describe to me the phenomenon of cache breakdown, and talk about your solution?

如何优化OpenSumi终端性能?
随机推荐
MySQL database --- Addition, deletion, modification and query of MySQL tables (advanced)
[c语言]二维数组动态分配内存
MySQL的Replace用法详解
Swift简介
OSS简单上传图片
MySQL8重置root账户密码图文教程
MySQL 多表关联一对多查询实现取最新一条数据
@Transactional注解在类上还是接口上使用,哪种方式更好?
canvas基础讲解加示例
多线程的互斥锁应用RAII机制
Flink_CDC搭建及简单使用
FFmpeg —— 将mp4转为gif输出(附源码)
Weak Banks to data conversion ability?Matt software help solve bank dilemma
倾斜文档扫描与字符识别(opencv,坐标变换分析)
【考研词汇训练营】Day18 —— amount,max,consider,account,actual,eliminate,letter,significant,embarrass,collapse
利用go制作微信机器人
CDH集群spark-shell执行过程分析
基于Apache Doris的湖仓分析
想要写出好的测试用例,先要学会测试设计
Apple Silicon配置二进制环境(一)