我刚步入职场时,对IT方面的职业规划并不清楚。直到我加入了广州原点软件,开始从事软件测试工作,主要负责自动化测试。这让我找到了新的兴趣和挑战,也让我系统地学习了软件测试的各种知识和技能。在此之后,我又先后在航天七零六公司工作,分别接触了功能手工测试、性能测试、接口测试和移动互联网测试等领域。下面我就从我的工作经验出发,给大家介绍一下软件测试的各个方面。
1、功能测试
功能测试是指根据软件需求规格说明书,检查软件是否能够正确地实现预期的功能。功能测试的主要步骤如下:
编写测试方案:根据软件需求分析文档,制定测试目标、范围、方法、资源、风险等内容,形成一个完整的测试计划。
编写测试用例:根据测试方案中确定的测试范围和方法,设计具体的测试场景、输入数据、预期结果等内容,形成一个详细的测试脚本。
执行测试用例:按照测试用例中描述的步骤,对软件进行操作,并观察实际结果是否与预期结果一致。
记录一轮测试问题单:在执行测试用例的过程中,如果发现软件存在缺陷或不符合需求的地方,就要及时记录下来,并反馈给开发人员进行修复。
回归问题(二轮):在开发人员修复完问题后,需要再次执行相关的测试用例,验证问题是否已经解决,并更新问题单的状态。
撰写测试报告:在完成所有的测试用例后,需要对整个测试过程进行总结和评估,并形成一个包含测试概况、问题统计、风险分析等内容的正式文档。
2、性能测试
性能测试是指通过模拟真实用户环境下的并发负载,检查软件是否能够满足预定的性能指标。性能指标包括响应时间、吞吐量、资源利用率等。性能测试的主要步骤如下:
使用Jmeter工具进行性能测试
Jmeter是一个开源的Java应用程序,可以用来对Web应用程序进行压力和性能测试。使用Jmeter进行性能测试的总体思路是:
录制脚本:使用Jmeter自带的录制功能,或者使用浏览器插件,对用户访问软件的过程进行录制,生成一个包含多个HTTP请求的测试脚本。
设置并发数,压测:在Jmeter中添加一个线程组,设置并发用户数、持续时间、循环次数等参数,对软件进行压力测试。
得到测试结果,反馈给开发修复后,重测:在Jmeter中添加一些监听器,如查看结果树、聚合报告等,可以查看测试过程中的响应数据、错误信息、性能指标等,并将测试结果导出为CSV或HTML格式。如果发现性能问题,就要及时反馈给开发人员进行优化,并在优化后进行重测,直到达到预期的性能目标。
具体步骤如下:
·添加录制工具:在Jmeter中添加一个HTTP(S)TestScriptRecorder元件,用于录制用户操作。
· 添加线程组:在Jmeter中添加一个ThreadGroup元件,用于设置并发参数。
· 配置录制工具:在HTTP(S)TestScriptRecorder元件中设置端口号(如7002)、代理服务器IP(本机局域网IP)、目标控制器(关联线程组)等参数,并启动代理服务器。
· 开始录制:在浏览器中设置代理服务器为Jmeter的代理服务器,并访问软件的网址,对软件进行操作。Jmeter会自动记录下用户的每一个HTTP请求,并生成一个测试脚本。
· 修改脚本:在Jmeter中查看和修改生成的测试脚本,删除不必要的请求,添加或修改一些参数,如静态资源、Cookies、验证码等。可以使用F12打开浏览器的开发者工具,查看网络请求的详细信息,以便修改脚本。
· 添加监听器:在Jmeter中添加一些监听器元件,如ViewResultsTree、AggregateReport等,用于查看和分析测试结果。
· 设置线程组并发数:在ThreadGroup元件中设置并发用户数(如50)、持续时间(如600秒)、循环次数(如永远)等参数,用于模拟真实用户环境下的压力。
· 运行脚本:在Jmeter中运行测试脚本,并观察监听器中显示的测试结果。等待测试结束后,将测试结果导出为CSV或HTML格式,以便进一步分析和汇报。
· 使用nmon工具进行性能测试,监控CPU、内存使用情况
nmon是一个用于监控Linux和Windows系统性能的工具,可以实时显示CPU、内存、磁盘、网络等资源的使用情况,并生成图表和报告。使用nmon工具进行性能测试的方法如下:
1)Linux服务器
执行检测:在Linux服务器上安装nmon工具,并执行命令/root/nmon/linuxnmon-f-s5-c11401_53.nmon,表示每5秒采集一次数据,一共采集114次(10分钟内),并将数据保存为01_53.nmon文件。
查看结果:将nmon文件下载到本地,并使用Excel或者nmonAnalyzer工具打开。可以查看CPU_ALL和MEM两个sheet页中的数据和图表,分析CPU和内存的利用率情况。
2)Windows服务器
执行检测:在Windows服务器上打开性能监视器(PerformanceMonitor)工具,并添加数据收集器,设置属性结束时间为5分钟,选择要监控的性能计数器,如处理器时间、可用内存等。
查看结果:在数据收集器运行结束后,打开性能报告,可以查看CPU和内存的使用情况和图表。
查看测试结果,计算性能指标方法
Jmeter结果计算TPS、吞吐量
TPS:取Throughput值,表示每秒处理的请求数量,反映了系统的处理能力。
吞吐量:将Jmeter结果文件中最后两列(ReceivedKB/sec和SentKB/sec)相加,再除以1024,得到每秒传输的数据量(MB/sec),反映了系统的负载情况。
nmon结果计算CPU、内存
CPU:打开nmon结果文件(如10.10.0.11文件夹下的atm_201201_1518.nmon.xlsx),找到CPU_ALL的sheet页,找到Avg行对应的%usr+%sys值,即为CPU平均利用率。
内存:打开nmon结果文件,找到MEM的sheet页,对每一行数据使用公式(mem%=(Memtotal-free-buffers-cached)/(Memtotal))计算出内存利用率,再对总行数对应的内存利用率求平均值,即为内存利用率平均值。
撰写测试报告:在完成所有的性能测试后,需要对整个测试过程进行总结和评估,并形成一个包含测试目标、测试环境、测试方案、测试结果、问题分析、优化建议等内容的正式文档。
3、自动化测试
自动化测试是指使用专门的工具或脚本,代替人工执行测试用例的过程。自动化测试可以提高测试效率和质量,节省人力和时间成本,适用于功能稳定、重复执行次数多的场景。自动化测试的主要步骤如下:
Windows软件
· 搭建jenkins+svn+Ranorex自动化测试平台
· jenkins是一个持续集成和持续交付的工具,可以实现定时拉取代码、编译构建、执行测试、生成报告等功能。
· svn是一个版本控制系统,可以实现代码的管理和协作。
· Ranorex是一个专业的Windows软件自动化测试工具,可以实现图形界面和非图形界面的自动化测试。
· 使用平台进行自动化测试
· 使用Ranorex录制脚本:使用Ranorex的录制功能,对Windows软件进行操作,并生成一个包含多个操作步骤和断言的自动化测试脚本。
· 上传脚本到svn:将录制好的脚本上传到svn仓库中,以便jenkins能够拉取到最新的脚本。
· 自动化平台定时拉取svn内容,到各个节点执行测试:在jenkins中配置一个定时任务,设置好触发条件、svn地址、Ranorex命令等参数,并将任务分配到不同的节点上执行。每次执行完毕后,jenkins会自动收集Ranorex生成的测试报告,并展示在控制台上。
Web
· 搭建Jenkins+Pytest+Selenium自动化测试平台
· Jenkins是一个持续集成和持续交付的工具,可以实现定时拉取代码、编译构建、执行测试、生成报告。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。