当前位置:网站首页>【软件工程之美 - 专栏笔记】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 容忍度较高。
边栏推荐
- CDH集群spark-shell执行过程分析
- MySQL ODBC驱动简介
- 推荐系统:AB测试(AB Test)
- 如何优化OpenSumi终端性能?
- 365天挑战LeetCode1000题——Day 044 按公因数计算最大组件大小 并查集
- HMS Core Discovery第16期回顾|与虎墩一起,玩转AI新“声”态
- Recommendation System - Sorting Layer: Sorting Layer Architecture [User and Item Feature Processing Steps]
- Mysql8创建用户以及赋权操作
- 肖特基二极管厂家ASEMI带你认识电路中的三大重要元器件
- 线性结构:顺序表和链表
猜你喜欢
HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
M3SDA: Moment matching for multi-source domain adaptation
MYSQL 唯一约束
湖仓一体电商项目(四):项目数据种类与采集
[PM only] Quickly count who else in the team has not registered and reported information, and quickly screen out the members of their own project team who have not completed the list of XXX work items
是对称矩阵的对角化
Common Expression Recognition Based on Face (1) - Basic Knowledge of Deep Learning
“数字化重构系统,搞定 CEO 是第一步”
TensorFlow2:概述
PHP低代码开发引擎—表单设计
随机推荐
Mysql——字符串函数
HarmonyOS Notes ------------- (3)
Swift简介
7、MySQL Workbench 导出导入数据库
明解C语言第六章习题
Flex布局详解
线性结构:顺序表和链表
银行数据资产转换能力弱?思迈特软件助力解决银行困境
[NISACTF 2022]下
推荐系统:实时性【特征实时性:客户端实时特征(秒级,实时)、流处理平台(分钟级,近实时)、分布式批处理平台(小时/天级,非实时)】【模型实时性:在线学习、增量更新、全量更新】
ceph的部署练习
是对称矩阵的对角化
halcon——轮廓线
英文字母间隔突然增大(全角与半角转换)
啊?现在初级测试招聘都要求会自动化了?
为单行查询设置JDBC Statement.setFetchSize()为1的方法指南
Android Studio 实现登录注册-源代码 (连接MySql数据库)
Flink_CDC搭建及简单使用
服务器不稳定因素
vlookup函数匹配不出来只显示公式的解决方法