为了账号安全,请及时绑定邮箱和手机立即绑定
慕课专栏

目录

索引目录

测试技术的修炼之道

原价 ¥ 48.00

立即订阅
01开篇词:测试工程师是一个什么样的岗位?
更新时间:2019-10-30 13:46:18
理想必须要人们去实现它,它不但需要决心和勇敢而且需要知识。——吴玉章

软件测试时间简史

1979年,Glenford Myers 在《 The Art of Software Testing 》一书中提出“测试的目的是证伪”这一概念,推翻了过去“为表明软件正确而进行测试”的错误认识,为软件测试的发展指出了方向,软件测试的理论、方法在之后得到了长足的发展。

测试的目的是证伪,不是要想尽一切办法将测试和开发对立起来,而是想尽一切办法证明不存在伪,这样测试工程师就不再是永远带“坏消息”的人。

1983年,Bill Hetzel 在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。

2002年,Rick和Stefan在《系统的软件测试》一书中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。这也转变了测试的定义,测试不单是一个发现问题的成果,而是一个软件质量评价的行为活动,是质量工程。质量工程学中对于软件失效是这样分析的:由于软件内部逻辑复杂,运行环境动态变化,且不同的软件差异可能很大,因而软件失效机理可能有不同的表现形式。

20世纪90年代,测试工具、系统开始大行天下。时至今日,工程效率、DevOps越来越热,测试工程师如果没有办法快速融入其中,就容易被淘汰。

软件测试工程师是一个技术岗位

在信息系统的质量保障过程中,测试工程师发挥重要的作用,但是却是一个没有实质性产出的角色。一个系统上线后平稳,没有明显的被触发的缺陷。公司老板会认为开发技术实力强,如果出了问题,锅就甩给了测试。这到底是为什么呢?

其实这种现象并不是测试不重要,而是是很多测试从业者偷懒带来的后果。相信很多人都知道软件测试过程中很重要的一项工作就是设计测试用例,设计测试用例有很多科学的方法例如等价类、因果图、场景法、边界值。

但是在如今,很多软件测试工程师都已经将这些科学的方法丢到了一遍。这也难免会让一些不懂技术的人(例如你公司的老板)会认为你做测试做的事情和他自己使用一个 APP 或者一个 WEB 的方式没区别,也就不会受到重视了。

但是软件测试工程师是一个技术岗位,除去设计和撰写测试用例以外,你还需要有很多和开发、运维交际的技能,例如 API 的服务怎么做测试、服务间怎么解耦合、测试环境怎么部署、测试结果如何分析等等。

现如今,提高工程效率已经变成了一个大街小巷都在流传的一个话题,无论是 DevOps 还是 TestOps,都在支持测试用更多的自动化手段代替手工。但是自动化并不是恒等于要写代码,这是一个种狭义的自动化看法。

自动化测试就是让测试阶段通过自动化的方式完成,并不一定要写很多的测试脚本代码,编写测试脚本仅仅只是自动化的一种方法。所谓条条大路通罗马,现如今很多有效的工具都可以满足自动化的测试需求,例如 postman 可以完成 API 的接口自动化的工作任务、基于图形的自动化框架可以完成 UI 的自动化任务需求。但是作者推荐大家,有代码能力的还是要尽量多写代码。没有代码能力的测试工程师也不用诚惶诚恐,利用好各种各样的工具,同样可以让你跟上工程效率的要求,不被技术进展的车轮碾压。

什么是测试架构师?

说道测试工程师了,在这再扯一点测试架构师的东西吧。

架构师是一个并非计算机行业本来就有的词汇,来自于建筑学,英文是Architect。建筑工程中的架构师是负责整体建筑的架构设计。因此从宏观上看,软件行业的架构师也类似,是负责对整体架构设计。

在软件工程中架构师是一个团队的技术的领头者。主要工作内容出去对项目的整体设计和规划外,也会参与一些实际技术问题的解决和探讨,攻克技术难关,趟平技术线上的坑,使得工程在软件生命周期过程中平稳顺利完成。

在研发领域有各式各样各司其职架构师,负责系统业务的业务架构师、负责基础设备和设施的基础设施架构师,负责公共组件和平台的中间件架构师。

在测试领域只有一个,测试架构师。那么什么才是测试架构师呢?

测试架构师其实是在测试部门中承担着规划自动化技术栈、基础测试框架选型、基础测试环境维护等工作的角色。肩负提高部门提高工程效率的职责,有着为部门提供技术指导和制定质量保障策略的使命。除此之外,测试架构师必须能驾驭产品的质量、提供指导、反馈和建议,以提高整个工程部门的质量规范。

测试架构师应该都具备跨组织的沟通和推动变革的能力

测试架构师应该有的工作日常内容

  • 审查系统架构、系统构件/组件及其接口关系等的设计

  • 确保系统的可测试性

  • 设计软件系统的测试策略和方法,特别是在系统的性能、安全性、稳定性、可靠性等方面的测试方法、技术线路和质量标准

  • 构件复杂的系统测试环境,并分析、解决测试中出现的较深的技术问题(Troubleshooting)和帮助做好缺陷的隔离

  • 对系统(性能、安全性、稳定性、可靠性)测试作出分析、评估,并提出为改善系统性能、可靠性而进行设计修改、代码重构的建议

  • 设计测试自动化的技术框架,主持重要的测试工具的研究、评估、设计

  • 参与系统部署的设计

  • 参与新技术的评估和引进

  • 帮助改进测试流程、提高测试效率

总结

这个小节我们了解了一下测试工程师和测试架构师到底是什么,下节课我们一起来看一下一个合格的测试工程师的职业路线规划是什么。

}
立即订阅 ¥ 48.00

你正在阅读课程试读内容,订阅后解锁课程全部内容

千学不如一看,千看不如一练

手机
阅读

扫一扫 手机阅读

测试技术的修炼之道
立即订阅 ¥ 48.00

举报

0/150
提交
取消