- 已编辑
大部分前端开发者不喜欢写测试,认为写测试浪费时间。
我写了一篇文章总结为什么我认为自动化测试能帮助你更好地开发软件(以前端开发为例)。
阅读时长:10分钟
链接:How testing speeds up your development
大部分前端开发者不喜欢写测试,认为写测试浪费时间。
我写了一篇文章总结为什么我认为自动化测试能帮助你更好地开发软件(以前端开发为例)。
阅读时长:10分钟
链接:How testing speeds up your development
感谢大佬分享。
就我所知,软件测试已经发展壮大为一个相对独立的知识分支,有很多的工程实践,也有很多相关理论的支持,至少不再仅仅是程序员日常工作的经验积累。我承认,这一部分知识已经是我的知识盲区了。而且,我们所在CS学院(SCNU)在这一方面的教学应该说是极为缺乏的,毕竟,软件工程的课程都不怎么丰富,就不要说软件测试了。所以,有来自工业界的呼吁,让在校生能重视软件测试,是非常可喜的事。
我进一步的呼吁就是,既然重要,既然需要大家重视,首先第一步是,指出该知识领域的首选大学教材,其次,找到相关的教学视频,从阅读听课开始,然后再应用于自己的实践。真心希望,有这方面能力的各位,推荐教材、推荐视频、推荐课程。
Bintou 其实也可以在基础课程中添加一些关于软件测试的理论和实践, 我最近在看 ucb 的cs164 编程器课程, 这门课的作业就需要自己写测试,而且在课程之初就有专门一节课来讲关于测试的内容: https://inst.eecs.berkeley.edu/cs164/fa21/notes/03-Correctness.html
我记得cs61b也是有类似的内容,作业里面需要写测试. 总之,感觉需要在整个培养体系中都加入一些关于测试的内容,软件工程课对之前灌输的东西进行归纳,总结.
Bintou
不敢当。
其实不止是学校,我个人观察国内的公司对于测试、代码质量的关注程度远低于国外公司,反而在追求一些看起来很高大上的东西。(比如国内前端现在很流行low code,no code建站平台。个人认为没什么卵用,这件事adobe 20年前就干过了,那会前端比现在简单多了。)学校也大体如此,有很多高大上的水课供学生们混分。
我认为写好测试需要建立在良好的编程素养的基础上。如果对抽象毫无概念,不知道如何分层,写测试就是折磨自己。非但没办法达到让开发者对软件更有信心的效果,而且需要额外维护一套测试代码。所以我个人比较推荐先从SICP开始学习(最近新出的SICPJS对于前端开发者是非常合适的,最后会带你实现一个js编译器)。当然我认为写测试也能倒逼开发者做好抽象、分层,所以这并不是一个严格的先后顺序。
其实我没完整看过一本测试书籍,基本上是靠自己的编程经验以及跟一位在谷歌的师兄请教学习的测试,所以可能学到的知识比较零散,偏向于实践,在这边推荐一些我认为比较好的课程。
MIT 6.031: Software Construction这个课系统的讲了提高代码质量的方法,包括测试、code review、debug、version control等,对于还没工作经验的大学生来说是很合适的。
另外,还可以了解两个相关的概念:
Test-driven development 测试驱动开发
我个人是比较认同这两个概念背后的哲学思想的。
哈哈,看到当年那个爱逃课的同学居然有学习这些课程,是不是很欣慰 你推荐的书都是很好的书,特别是SICP,可惜它是我大学读的最后一本书,现在已经毕业了还在看。各位师弟师妹应该尽早读sicp,在学完c后就可以读了,它对于理解整个软件工程学科有很大帮助。
可能前端开发者跟后端对测试的关注程度不同,我呆过的大厂前端没见过写测试的,就连国内比较知名的一些前端开源库测试也写得很一般。。我认为未来前端会越来越复杂,因此也会更需要测试。
没错,就是huanjie师兄,跟他聊天的时候学到了很多东西。其实也是借助了这个论坛认识了很多值得学习的人。我认为开源社区可以推动教育公平,这是web给所有普通人的一个机会。我受益于它,所以也想沉淀点东西,在这个方向做些贡献。
© 2018-2025 0xFFFF