开发人员和测试人员
您可能在代码库中遇到过一些复杂难读的布尔表达式,希望它们更容易理解。例如,我们想判断比萨饼是否美味:
设计的付出、开发的付出对比写单元测试和自动化测试脚本的付出
通过用户界面测试应用程序的测试叫什么?端到端测试?功能测试?系统测试?selenium测试?这些我都听说过,还有更多。我想你也听过。
自动删除代码听起来可能是个奇怪的想法:编写代码的成本很高,而且通常被认为是一种资产。然而,未使用的代码无论是维护还是清理都需要花费时间和精力。一旦代码库达到一定规模,投入工程时间进行自动清理流程就开始变得有意义了
每个软件开发人员和团队都会遇到一个熟悉的问题:”多少测试才足以使软件合格发布?这在很大程度上取决于软件的类型、目的和目标受众。
Sentry的前端测试实践:从Enzyme迁移到RTL
Tricentis 主导的一项全球调查为我们提供了几个有关测试趋势的重要观察。趋势表明,团队倾向于使用功能测试,这可以理解,但是手动测试也将保留下来。
你会发现自己多年来以前从来没练过写测试的能力,或者仅仅是写过3年代码,只做过1年测试。或是写过7年代码,做过4年测试。
“不积跬步,无以至千里——《荀子·劝学》”。与该句思想最接近的一个算法是: a. 穷举 b. 递归 c. 动态规划 d. 贪心
当询问开发人员关于他们自己编写的代码时,会发生类似的 “盲点”现象。我们往往会忽视我们自己创建的物品或事物中存在的缺点,而且没法看到特征不够明显的场景,然而当这件事发生在其他人的工作或孩子身上时,我 们却能够正确的识别到。
在 工作中经常遇到当产品上线出了bug后,第一个受到指责的是测试人员,”测试为什么当初没有发现这个问题呢”,这种情况在现实工作中数不胜数。
在长期的程序语言研究和实际工作中,我摸索出了一些关于测试的道理。然而在我工作过的每一个公司,我发现绝大多数人都不明白这些道理,很多团队集体 性的采用错误的做法而不自知。很多人把测试当成一种主义和教条,进行过度的测试,不必要的测试,不可靠的测试,并且把这些错误的做法传授给新手,造成恶性 循环。
我遇到的大多数开发人员都不怎么热衷于测试。有些会去做测试,但大多数都不测试,不愿意测试,或者勉而为之。我喜欢测试,并且比起编写新的代码,愉快地花更多的时间在测试中。
质量保证成为了软件开发项目中比较重要的一个环节。随着越来越多的群体转向敏捷软件测试,QA 在程序创建中起到了一个更加重要的作用。不过,这里有几件 QA 管理人员希望利益相关者在软件测试中知道的事情:
有一次,我在一个讲座上听到主持人问听众如何故意编写难于测试的代码。在场的小伙伴都惊呆了,因为没有任何人会故意写这种糟糕的代码。我记得他们甚至给不出一个好的答案。
测试策略关注的是目标和方法,即怎样在限定的时间内有效利用有限的资源达到提前制定的目标,一般制定测试策略时会首先明确测试目标,然后确定需要哪些测试类型,各种测试类型所占的大概比例,选择测试框架,最后规划一下软件发布前需要经历哪些测试阶段。
我曾经是一个不测试主义者,因为我看不到测试的价值。然后,我试了一段时间,变得对它深信不疑。我收集了一些经验,当然还远远不够。这篇文章总结了一些我知道的以及我认为我知道的内容。
那么究竟是什么样的人适合呢?软件测试到底是不是只是女生的专利?本文将为您做出合理的分析。
写一个测试程序,重现这个bug。即使你没有时间来立即修正这个bug或者这不是个致命的bug,你也应该有个能够让它重现的测试程序,当日后你回来解决这个问题时,你就能知道该做什么了。
对于一个把我吓的六神无主的恐怖游戏的开发者,Thomas Grip 其实看起来非常的和善,与他做的游戏风格完全不同。Grip 是瑞典独立工作室 Frictional 的创意总监,曾经研发过恐怖冒险游戏《Penumbra》系列以及 Gamelook 最近几天报道过的《失忆症:黑暗后裔》。
测试的时候,我们常常关心,是否所有代码都测试到了。这个指标就叫做”代码覆盖率”(code coverage)。它有四个测量维度。 行覆盖率(line coverage):是否每一行都执行了? 函数覆盖率(function coverage):是否每个函数都调用了? 分支覆盖率(branch coverage):是否每个if代码块都执行了? 语句覆盖率(statement coverage):是否每个语句都执行了?
如果你还是不愿改掉你之前先写代码的老毛病,至今还认为个人习惯比先设计好的软件还重要,那我也只能叹息了。
你先会想要使用它,然后你会需要它,最后大家会变得离不开它 – 就像一个融入到人们日常生活中的到处可见的实用工具一样。
“在计算机科学中,代码覆盖是一种度量,用来描述程序源代码经过特定测试套件测试的程度。”
【外评】代码审查确实能发现漏洞
【外评】Git 的故事:这次没那么有趣
【外评】15 年前我给自己的一系列编程建议
【外评】软件复杂性的三大法则(或:为什么软件工程师总是脾气暴躁)
【外评】不只是你,Next.js 也越来越难用了
耗时18个月,开发者用 Rust 重写系统后痛批:这门语言烂透了!
【外评】开源既不是社区,也不是民主
【外评】Python 与苹果应用商店的拒绝作斗争
【外评】SVG:好的、不好的、糟糕的
React 19 差点拖慢整个互联网!核心团队紧急叫停