Redian新闻
>
不只是黑盒测试:测试工程师如何识别和消除代码坏气味?

不只是黑盒测试:测试工程师如何识别和消除代码坏气味?

公众号新闻

作者 | Ben Linders
译者 | 明知山
策划 | 丁晓昀

具备适当的编程基础有助于改进你的测试自动化,使维护测试代码变得更容易,并减少测试压力。掌握编程的理论和基本原则有助于让测试自动化水平更上一层楼。面向对象编程原则有助于消除代码坏气味。

Christian Baumann 在 2022 年敏捷测试日 上谈到了测试自动化。

Baumann 提到,许多测试人员在不具备深厚的编程背景或没有接受过任何适当培训的情况下就被“扔”进了测试自动化领域。他们在一定程度上知道使用什么工具,并用它们创建了一些自动化测试。Baumann 说,到了某个阶段,他们发现他们的自动化系统可能不太对劲。代码看起来很混乱,维护它们要花费很多时间,而且非常令人沮丧。

Baumann 说,如果每个做自动化测试的人都在编程理论和基本原则方面有一定的基础,那就太好了。这样也有助于提高自动化代码的质量。

Baumann 给出了一个如何在测试自动化中使用面向对象编程原则的例子:

我们可以使用对象母亲(Object Mother)模式,这个模式基于面向对象的“抽象”原则。这意味着它隐藏了内部实现细节,只暴露出使用它所必需的方法。测试对象是如何被创建、如何从数据库中删除、在测试期间如何被修改——所有这些对于用户来说都是不需要知道的,用户只需要知道这些方法存在并且可以被调用。

Baumann 说,使用面向对象编程原则也有助于消除代码坏气味:

消除代码坏气味就是在不改变代码行为的情况下修改代码,基本上就是重构。对于重构,我们需要将单元测试作为安全网,这样就可以知道我们所做的修改有没有破坏了任何东西以及代码是否仍然按照预期那样运行。

Baumann 建议我们对测试自动化代码给予充分的重视,并将其视为应用程序的产品代码,以防止遇到类似的问题。

InfoQ 就测试自动化人员需要具备编程基础的问题采访了 Christian Baumann。

InfoQ:面向对象编程能带来什么好处?

Christian Baumann:在测试自动化代码中应用面向对象编程原则有很多好处,它让代码更不容易出错,更容易阅读、理解和维护。

InfoQ:怎样才能管理好测试数据?

Baumann:在测试自动化中,我相信处理测试数据最好的方法是让每个测试管理好自己的数据。这意味着每个测试都会创建它所需要的测试数据,在测试结束时从系统中删除它们,让测试环境处于干净的状态。

对于这个过程,对象母亲模式可以为我们提供很大帮助。它以工厂模式为基础,通过简单的方法调用为测试提供了可使用的预制对象。但它又不局限于工厂模式,因为创建的对象可以被自定义。此外,测试对象可以在测试期间被更新,而且——如果必要的话——在测试结束时从数据库中删除。

InfoQ:我们如何识别和消除代码坏气味?

Baumann:要识别代码坏气味,我们需要了解它们。因此,作为程序员(如果我们编写测试自动化代码,我们就是程序员),我们需要学习和研究它们。

对于某些代码坏气味,可以用“食谱”来消除它们。例如,面向对象原则“多态性”有助于消除“switch 语句”和“太多参数”坏气味。

原文链接

https://www.infoq.com/news/2023/03/programming-foundation-test/

相关阅读:

开发者如何看待分布式系统中的不确定性

如何评估代码质量:反馈回路、文化、代码质量、技术债务、部署管道 (https://www.infoq.cn/article/bhBft2B1a7MyuLYoJPzC )

如何用数据来提升系统质量 (https://www.infoq.cn/article/VDwdDmSiTZglv6cthqCp)

声明:本文为 InfoQ 翻译,未经许可禁止转载。

点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

今日好文推荐

人口不足千万、芯片厂近200家,以色列技术人如何在芯片领域“挖金山”?| 独家对话Pliops创始团队

马斯克将起诉微软,称其使用 Twitter 数据“非法”训练GPT,吃瓜网友:事情变得更有趣了!

谷歌或被抛弃!ChatGPT 引爆手机市场新一轮洗牌:Android 手机销冠三星30亿美元大单欲改投 Bing

中国开源项目贡献者已超过10万!《中国开源生态图谱 2023》发布

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
独家测试:我们收集了几十个问题,而「文心一言」是这么回答的……|Chat AI当前疫情形势下学校体育工作如何开展?体育考试工作如何进行?教育部印发通知↓↓↓权力测试:在你额头上写一个E重磅!券商经纪业务细则出炉!强化高净值客户识别和账户监测,不得恶意低价揽客,明确互联网展业原则…我们为什么能闻到各种气味?一个非常基础但极为复杂的科学问题基辅, 我的心心念念混在金融圈,如何识别渣男?科大讯飞研究院招聘:CV/NLP/3D数字人/智能语音等方向研究算法工程师,Java/C++/Android开发工程师等美国实习| 特斯拉/FanDuel /苹果3月可投: 软件工程师/数据工程师/MBA实习岗位!用户名和密码不靠谱!美国银行是如何识别并保护你身份的?北京内推 | 腾讯微信事业群招聘NLP算法工程师/预训练模型加速工程师MF PLAMAX 拼装明日香:测试服勾勒的身材超迷人!首销仅 32 元,硬件基准测试工具 3DMark 上架 Epic 商店美丽的邂逅,上天最好的馈赠 (上)“打了视频电话确认是熟人”,又有人9秒被骗走245万元!如何识别?专家支招杭州内推 | 同花顺问财团队招聘NLP算法工程师/图像算法工程师4大原则告诉你,嵌入式工程师如何写简历!暗能量只是黑洞产生的假象?天文学家怎么又搞出来这么离谱的理论【六月职场读书会报名】工程师的《原则》,豆瓣8.7分大作《卓有成效的工程师》「 云集|职挂云帆 」心理测试:测测你和 TA 的亲密关系健康吗?聊聊辟谷(四)二十一天,感觉不错,再加七天美国银行是如何识别你的身份的?他们是怎么保护我们的财产的?谷歌用机器人大规模删除代码:二十多年积累了数十亿行,已删除5%C++代码如何识别疱疹唯一维护 API 的普通工程师轻松搞垮 Twitter,马斯克:我们重写代码吧迷外驯化深入骨髓的成功典型百图生科招聘:药物/蛋白质设计工程师,算法工程师超参数科技招聘:强化学习研究员、深度学习工程师、后台开发工程师等沟通风格测试:你是指责型还是讨好型?性格魅力测试:测测你在别人眼中有多迷人?沙哈拉沙漠以前是绿洲吗,两河文明和埃及文明,犹太人,,吵翻天了!美国大学参加MBTI测试:哥大人均快乐修勾、加州大学没有i人?ChatGPT论文通过图灵测试:是AI太聪明,还是学界太灌水?ChatGPT 带火“提示工程师”,不用写代码也能年薪数百万?超准房树人测试:一幅画窥探你内心深藏的秘密!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。