软件测试经验与教训之测试工程师应该干什么
软件测试工程师(Software Testing Engineer):指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。简而言之,软件测试 工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后的等领域都要涉及。按其级别和职位的不同,分为初级、中级、高级三类
【理解产品的功能要求】
1.需求评审之前先要了解产品,知道产品的主要功能和主要用户有哪些?
2.测试工程师把用户放在第一位来思考,要发现糟糕的设计,令人困惑的用户体验,功能bug,安全和隐私等问题的困扰
【做好测试需要了解用户,了解他们的期望和需要还需要了解技术看能否实现用户的需要或者实现用户的需要的代价有多大。了解与之交互的软件。 】
3.重点要放在用户的使用方式和系统级别的体验上,要发现需求中的模糊之处,分析沟通不准确的问题
4.需求评审的时候先想一下该产品对于用户,对业务的意义是什么?为用户解决了什么问题?
5.要注意产品的特质也就是产品的品质和特色,区别于其他产品的地方,在某种程度上是人们选择你的产品而不是竞争对手的原因
【软件项目的立项、管理】
1.给一个项目配备多少测试人员,多少设备,多少资源取决于项目风险和投资回报率。风险大意味着在测试上投入的资源也多,但是投入的资源与其潜在的回报成正比。
【写出相应的测试规范和测试用例】
1.测试需要测一个新的产品的时候,可以先浏览一下产品,看看产品是由什么组成,怎么工作,然后评估一下产品。
2.作为测试必须认识到谁的关于质量的观点最重要(有些产品会有不同角色的用户使用,他们中某些使用要求甚至是冲突的,矛盾的。因此作为测试必须要认识到 谁的观点最重要,对系统有决定权的观点一般肯定比其他人更重要)
3.在测试之前心里面大概知道想要得到的产品是什么样的,也就是对产品建模。
4.设计用例的时候先想一下该产品对于用户,对业务的意义是什么?为用户解决了什么问题?
5.在测试之前一定要确定一系列的功能点,按照风险排序,然后合理的安排测试时间和分配测试资源。
6.对于常见的风险用户重点关注的,非常容易发现的应该尽可能的设计更多的测试场景针对性的测试,并且一定要保证回归测试的存在。
7.对于风险较低的,逻辑简单的,可以降低有些要求,合理分配测试时间。
8.设计测试用例时需要在了解原有的业务知识的情况下,按照需求应用 等价类啊,边界值啊,场景法等设计测试用例。
9.作为测试既要测试产品文档明确写出来的,也要测试产品没有写出来的隐藏需求。这些隐藏需求可以通过相关产品,同一个产品的老版本,顾客的意见,专业的知识,测试的经验等
【检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness)】
1.质量是把开发过程和测试放到一起,不分彼此
2.测试的时候按照风险等级来看基本上可以分为4种类型
1)罕见:发生bug的可能性非常小,就算有bug修复起来也很容易。 例如:文案,错别字
2)少见:少数情况下才会发生bug,但是用户使用的场景不高或使用率较低。 例如:设置审核流功能,基本上是设置一次,很长时间都不会使用
3)偶尔:发生的bug容易想象,场景有点复杂。 例如:搜索功能,组合搜索功能
4)常见:用户经常使用的,复杂度高的,流程复杂的。 例如:日报
3.当观察到产品的某种行为与需求 某某某 矛盾。或者易用性太差,可以提bug。而不是凭着自己的直觉提bug;
4.测试完毕没有发现bug真正的含义其实是 它看起来在一定程度上满足了部分需求。测试在有限的时间内,不可以做到完全没有bug。
5.很多测试员会发现自己精心测试的产品,换另外一个测试仍然会发现问题,那是因为测试员在测试的时候不可避免的会有有些偏向。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)