浏览器测试现状 — Software Engineering Daily
第三次迭代的进展要慢得多,但更加正确。因为前两次迭代引发了太多不同的问题,比如“哦,你没法发起通话,比如说从 Firefox 到 Firefox,或者从 Chrome 到 Chrome,但你永远无法从 Firefox 打到 Chrome”。
原始摘录
And the third iteration is going a lot slower, but it's being more correct. Because the first two iterations, it just caused so many different problems between like, "Oh, you couldn't make a call from like, say, Firefox to Firefox or Chrome to Chrome, but you can never do Firefox to Chrome."
上下文
“tration”……我想很多听众都会遇到这种情况:每当某样东西要走规范流程时,实际完成规范化实在太慢了,对吧?我刚入行时,JavaScript 在不同浏览器之间简直是一团糟。你需要做各种各样的处理,要在回调地狱里摸索着熬过去。 后来 ECMAScript 的很多标准化工作出现了。大家觉得:“哦,这真酷。”我们开始着手这方面的工作,然后他们开始创建可以全面运行的测试套件。但这种缓慢让它变得正确。因为如果你做得太快,就会引发其他问题。我们在规范领域已经看到了这一点。 有一项规范,我现在一时想不起名字了,是用来让人们在浏览器之间发送消息的。所以如果你想通过浏览器打电话之类的事情,就要用它。它现在已经是第三次迭代了。 而这引发了一些问题。因此把事情做对就变得非常重要。 WebDriver 规范也是一样的,对吧?市面上有一些与 Selenium 竞争的工具,比如 Playwright 或 Cypress,它们从未真正深入参与过规范部分。但我们在做这些事情时,努力让它做到“哦,你总是可以扩展它”,然后当你说“哦,我们要给浏览器加这个功能”时,就会自动获得一项 WebDriver 测试。这样你就能知道从不同浏览器得到的是什么,这在移动端领域变得更加重要,因为像 Android 上的 Chrome、iOS 上的 Safari,你需要考虑这些东西在此过程中如何相互交互,尽可能让人们从中获益。
原始上下文
tration that I think a lot of your listeners will have is that whenever something's going through a specification, it's so slow to actually get specified, right? When I started work, JavaScript was just a mess across the board between different browsers. And you needed to do all these different things, and you would figure it out through callback hell, and you would go through it. And then a lot of the ECMAScript standardization came in. It was like, "Oh, this is really cool." We started working on this, and then they started creating test suites that you could run through everything. But the slowness made it correct. Because if you make things fast, you cause other problems. And we've seen that in the spec world. There was a specification, I can't think of the name of it at the moment, which is used for people to send messages between browsers. So if you want to make a phone call or things like that through a browser, you would do it through this. And it's on its third iteration. And that caused problems. And so that's where it becomes really important to get that correct. It's the same with the web driver specification, right? There are competing tools out there to Selenium, like Playwright or Cypress, and they were never really - that involved in the specification part. But when we've been working on things, we're trying to make it that, "Oh, you can always extend it out," and then go, "Oh, we're going to add this feature to the browser," automatically gets a web driver test. And so you can know that whatever you get from different browsers, and it becomes really important in the mobile space a lot more, because like Chrome on Android, Safari on iOS, you need to think about how those things interact with each other along the way and get the best out for people.
打开该集并跳转至35:45。
时间点来自所提供的转录稿,尚待媒体回放核对。