想着从功能测试转测开去, 最近偶尔看几个面试中的算法题,有些自己可以暴力解法,有些自己看着注解也不明白为什么要这么进行。 很是困扰,但是测开又需要去刷算法。 有没有什么好推荐的。 或者走测开该怎么开始学习。
仅论刷题,CS61B+CS170。 测试 61B 基本够了。
https://github.com/labuladong/fucking-algorithm
可以,收藏了
不一定要刷很多算法题啊,不如找几个小工具开发下。算法可以以下学习路线: 1.大 O 评估核心代码复杂度理论知识,知道循环体内外的差别,最好结果和最差结果,学习 O(1),O和 O(log(n)) 分别是什么,这个多练就行,(不同数据量下面是不一样的)最糟糕是 O(n2)。 2.排序常见算法,选择排序在于比较和交换,希尔排序在于学会分桶和处理余数,这些对于跑任务用多线程/多进程分治有关系。 3.如果是 Python 的还是先学生成器吧,这个是灵魂啊,不学一跑就爆栈了。当然你可以用缓存和设置更多的栈长,这些是没掌握生成器前的。然后再看贪心算法(不用回溯的) 4.树相关的,需要会写树和前后序,Btree 和哪些有关。 5.数据库相关的合并排序等等。 后面都可以自己补充了,祝你早日找到心仪的工作。多来 Testerhome 看帖子。
刷算法的,前面有提到很多了,不再重复。
但对于 或者走测开该怎么开始学习。 ,个人理解:测开的关键点不是算法,而是工具平台开发,需要的是一些常用的设计理念(如接口测试框架怎么设计,UI 自动化大概怎么套路)和开发能力(后端 + 前端,大部分情况下需要的技能比 crud 高不了多少)。
或者走测开该怎么开始学习。
如果要开始,先找到自己平时工作中的一些痛点,然后用技术手段解决它,逐步做起来吧。测开很关注的是实际解决问题的能力,解决问题过程中上面提到的开发相关方法就会按需学习到了。
刷题更多是一些大公司进去的敲门砖,实际工作上真的要用到刷题时用到的算法相对比较少,常用的基本上都封装到工具类里了。当然如果你做大数据、算法或者机器学习类的除外哈。
测试面试很多算法都是 leetcode 简单类型的,测开(其实任何岗位都是)主要还是得有实际项目经验,很多招测开也只是有个测开的 title,日常也是业务测试 + 自动化 case,最多再搞搞性能测试,都不算真正意义上的测开。 楼主还是先学习下自动化,脚本等提高目前工作的效率,不要觉得测开就是上天了。测开的业务就是测试自动化的需求,业务都不懂能开发啥好东西。