我从事软件行业已经超过15年了。这么长时间,一直想写一篇关于软件测试经验分享的文章,但是因为工作原因一直迟迟没有动笔。最近终于有了一些空闲时间,于是决定把自己的心路历程、感受和想法记录下来,分享给同事们。
根据我多年的经验。;工作经验,软件功能测试是基础,未来主要有两个发展方向(技术专家和测试管理)。
一、技术专家的发展路线有以下三个方面可供参考:
1.从功能测试到性能测试专家:性能测试专家需要掌握一门编程语言、性能测试工具、系统架构、网络、数据库、服务器硬件等知识。性能测试分为前端性能测试(单用户操作系统响应速度)和后台性能测试(多用户并发场景)。后台性能测试包括三个阶段:测试(性能测试场景分析与设计、脚本编写或记录、测试执行)、分析(根据性能测试目标分析测试数据找出性能瓶颈)、解决(根据性能瓶颈给出系统调优解决方案);
2.从功能测试到自动化测试专家:自动化测试专家可以向自动化测试工具和框架方向发展,也就是测试开发工程师。自动化测试工程师需要掌握一门脚本语言(比如Python),一些测试工具(比如webdriver,testng,appium等。)和web前端知识(html,jquery,css等。);
3.从功能测试到安全测试专家:安全测试需要更多的测试人员。如果你想在这条路上走的更远,建议从事过开发或者对计算机与信息安全非常感兴趣的人深入学习他们的技能和知识。普通测试人员只能做相对简单的安全测试,无法深入;
二、开发测试管理需要以下知识,仅供参考:
1.非常熟悉软件测试流程、质量管理流程和项目管理;
2.对功能测试、用例设计、特殊测试技术有所了解(即使走上管理岗位也需要这些知识,否则无法服众);
3.良好的沟通能力、人际交往能力、责任心和抗压能力;
4.懂得如何管理团队,如何提高团队的能力,如何激发团队成员的积极性等。
三。软件测试工程师必备基本技能概述
以上,我总结了软件测试的两个发展方向。现在,要成为一名合格的软件测试工程师需要具备哪些技能?
1、最佳隐身技能
发展语言知识背景
对被测试对象使用的语言有一定的了解,有助于测试工作的开展。
计算机语言有某些共性。只要你对一门语言有很深的理解,其他语言都不难。
熟悉数据库的使用
能够自己编写大部分SQL语句辅助测试(选择,删除,更新),可以更加了解存储过程,是不需要程序辅助制作数据的最佳帮手。
主要是在日常测试工作中,提取数据库中的数据来验证测试结果的有效性,制作测试数据,批量修改测试数据。
熟悉被测试对象的业务
对被测试对象的业务流程了解的越多,越深入,对测试工作越有利。
2.测试原理
软件测试的基本概念以及软件测试存在的原因。
你不不需要死记硬背,但是你可以知道软件测试是为了什么。
软件测试的整个过程
能详细描述软件工程中完整的软件测试生命周期,以及一些软件测试模型(双V,V模型)。
软件工程中的软件生命周期
软件工程中软件生命周期的主要过程,以及软件测试在生命周期中的阶段和作用。
测试用例设计的几种基本方法
我们可以脱口而出软件测试中经常用到的测试用例的设计方法,并在实际工作中用实例进行描述和解释。
软件测试的几种功能
根据实际项目,快速说出一个被测对象需要测试哪些类型。
缺陷管理策略
缺陷的完整生命周期,其他一些可能发生的环节。
一个缺陷需要包含什么,如何处理不可复制的缺陷和不被识别的缺陷等问题。
白盒测试(仅用于白盒测试)
对代码有足够的控制权。
熟悉各种白盒测试用例设计方法,了解每种方法的优缺点,根据业务需求使用最合适的方法设计测试用例。
3、测试工具的使用
缺陷管理工具
吉拉、螳螂、Bugfree、QC(TD)
JIra,Mantis,Bugfree都是开源软件。
次品工具的基本使用很简单,对于没用过的次品工具,你应该能很快使用。
需求管理工具
理性RequisitePro
CloudtopoTopo
需求管理工具一般用于大中型项目的需求管理。
自动化工具
自动化测试的基本过程
能清楚陈述自动化测试的基本流程和自动化工具的基本原理。
自动化测试工具
惠普的QuickTestPro(QTP)
QTP是目前市场上非常成熟的产品,以其强大的功能占据了主要的市场份额,但由于价格昂贵,很多公司无法接受。
硒和WATIR开源自动化测试工具
对于价格昂贵且不开源的QTP来说,开源自动化工具非常受欢迎。
自动测试脚本设计
说到自动化测试,其实主要的重点还是在测试脚本的设计上。
设计脚本需要一定的语言技能。例如,QTP默认使用VBS脚本。如果你熟悉VBS,你可以算出你已经掌握了这个工具的1/3。
自动化测试框架的理解和设计
测试框架就像建筑s基石,后续的扩展和丰富要以此为基础,这自然成为自动化测试的难点。
刚接触自动化测试的学生可以学到更多。
性能测试工具
惠普的LoadRunner(LR)
QA负载、WebRunner
性能测试的原理和过程
性能测试脚本的记录和调整
性能测试的关键任务之一是记录和调优脚本。
你需要有一些语言技能。比如LR默认使用C语言,有C语言能力的学生自然会学的没有坏处。
性能测试场景设计
性能测试的另一个关键场景的设计
场景的设计是否正确合理,直接关系到最终性能测试结果的有效性。
性能测试结果分析和性能分析(重点)
性能测试最重要的也是性能测试的目的。
通过性能测试结果的数据,分析被测对象存在的问题,并对被测对象进行相应优化后重新测试,直至被测对象的性能参数符合要求。
4.计算机知识
了解并使用常用的操作系统。
Windows系列,Mac系列,Linux系列
TCP/IP协议
了解TCP/IP协议的内容和相应层的功能。
常用快捷指令的使用
在日常工作中,可以快速使用操作中的快捷动作,如记事本、mspaint、ipconfig、
先了解现状。
工作模式的形成一定经历了磨合和演变,团队现有工作模式的形成一定解决了很多问题。如果你不t认识不清,就想着制定新的流程或者改变工作模式,很容易又踩在原来的坑上,从哪里入手都会很盲目。
当你第一次到达时,你最好有人正式介绍,把项目经理介绍给团队。如果能简单介绍一下项目经理的职责就更好了。
了解现状的第一步是了解基本情况、文件、项目管理工具如JIRA等。,都是简单浏览一下,为进一步了解现状做准备。
然后要明确利益相关者,每个人扮演什么角色,负责什么领域,项目的发起人等等。你可以和前任项目经理谈谈。如果之前没有项目经理,从你已经认识的人开始,做好准备。带着一些问题和你想知道的东西进行正式面试。面试的目的是了解项目现状,团队现状,利益相关者,优势,问题,KPI等等。同时可以正式向他们介绍自己,擅长什么,做过什么等等。这种沟通不是一开始就只做一次,后续还是可以持续做的。
找到痛点,提出解决方案。
了解现状,就要分析现状,团队现在的问题是什么,所有利益相关者的痛点是什么,是什么导致了这些问题和痛点。例如,产品经理不不知道开发团队的进度,开发团队不知道。;我不知道我们应该做什么,开发者也不知道。;我不知道与我相关的其他开发者的进展。进一步探究原因,为什么不知道开发团队的进度?是因为没有项目管理工具还是因为每个人都没有?;Idon'我不想更新进度?是因为任务本身不清楚还是因为团队成员不明白?;我不明白?为什么唐人们不喜欢更新进度吗?因为你可以。;不要使用工具?或者是因为工具不工作不顺利?或者是因为每个人的工作方法没有达成一致等。,所以他们不断深挖问题的根源。
找到了问题的根源,我们应该制定一个计划。例如,人们不我不想更新他们在工具上的状态,因为他们不知道。;我对它了解不多。;它不太容易使用。然后,您可以提供工具培训,修改工具以简化流程或更换工具。但这些方案都有一个前提:简单易懂,行之有效。那种花里胡哨的报告,眼花缭乱的PPT,往往很费时间,也没什么用,要把时间花在思考如何简化和理解流程上。
通常情况下,项目经理找起点最好的地方就是产品经理的痛点,产品经理制定的需求,如何让团队接受、理解并执行,如何控制团队的进度,团队是否虚报开发量,如何控制质量,如何应对不断变化的需求等等。这些往往是项目经理最擅长也最需要工作的地方。这时候如果能分别给产品经理和开发团队准备一个培训,让大家了解自己可以重点关注的领域,项目经理可以帮助你的地方,那就非常有帮助了。
润物细无声的改变。
人往往是抗拒改变的,因为过去的经验会告诉自己的意识,经验是可靠的,新事物充满了太多的未知和风险,规避风险是人的一种本能。