-测试基础常见问题
1.测试流程:
需求评审——制定测试计划——编写测试用例——测试评审——(冒烟测试)——进入系统测试——生成测试报告——验收测试——完结
测试流程一般来说
首先做需求评审, 参与到项目的需求评审,在需求的评审阶段下,提出问题,进行需求整改,整改之后复评审,复评审之后确定到需求定稿。结合项目的计划、结合到需求的这个项目的实现的技术内容,来制定完整的测试报告。 |
定义好测试的工作内容后,基于需求文档来执行测试用例的编写。 |
后发起一个测试评审,叫上产品经理、开发的相关人员、测试的参与人员一起测试评审。由各方维度来评估测试覆盖面是否完整、以及业务流程是否能够很好的覆盖。等待开发提交版本,接受到初版后,进入系统测试。 |
(接收系统测试之前,可加一个预步骤,冒烟测试。通过冒烟测试来评估当前测试的这个版本,基本功能是否实现、正常流程是否能够实现。通过进入系统测试;冒烟测试不通过,返回给开发,自行修改,提升代码质量。) |
进入系统测试后,结合到之前所定义的测试用例,对系统进行一个完整的版本的内容测试。测试完成后,遇到缺陷就把它进入到缺陷管理工具里面,后追踪开发、督促修改和跟进。然后对新版本进行迭代迭代迭代。一般迭代3~4个版本,让系统的功能稳定下来。最终定义好软件的质量。 |
基于测试结果,生成测试报告。评估这个是系统是否达到发布标准。 |
2.项目流程:
3.工具:
-主流工具:postman、JMeter、禅道、Jira、RF、Fiddler、Linux、数据库(mysql)
-自动化测试常见问题
- Web自动化
Selenium+webdriver
八大元素定位(定位语法),动态元素如何定位,常见的异常解决手段(元素没有找到no such element-{定位错误 没有添加等待 iframe或者句柄 shadowdom}、元素无法正常交互-{页面是否最大化 是否需要悬停 是否需要滚动滚动条 元素定位错误}、超时-{显式等待超时因为元素定位有误 窗体最大化超时通过options进行配置解决窗体最大化}、无法创建session-{检查浏览器版本与dirver是否匹配})
测试框架如何设计:结合实际需求来定义
i.e. python_Selenium+Yaml+pytest+allue+logging+jenkins+git
1.现有框架如何设计
基于python编程语言实现的一个测试框架; |
由于是做web ui的,所以结合的是目前市场主流的webSelenium+webDriver这个技术体系,在这个体系下应用到关键字驱动等等。用到SeleniumDriver体系下的pom设计模式来实现测试框架的底层逻辑; |
使用Yaml文件格式,来作为web ui自动化的数据驱动模块,管理测试过程中所遇到的测试数据; |
测试用例通过pytest进行管理,把不同的流程的测试用例分成不同的pytest文件。通过配置到conftest和pytest.ini这样的一些配置项来管理pytest的预置函数、基本指令、读取路径和mark标签等.. |
对于生成的结果,同意基于allue的测试报告来生成运行过程中产出的记录, |
考虑到运行过程中可能会出现报错、异常,需要去分析、补货,应用到logging的日志模块来进行加载,在运行过程中去生成日志,以便于随时在有问题的时候调试。 |
如果要关联到实际业务场景,比如要定时运行\通过自动化做线上环境的正常维护,就要搭建到一个数据集成的手段,来满足线上当前版本的稳定运行。所以会定义一个特定的定时任务,每个月定期运行两次或者三次。 |
考虑到在测试过程中因为版本的迭代和更新,要频繁的去做回归测试。在这样的情况下,关联到git链接到开发的版本库。对于新的版本,会做到持续集成的相关内容。(比如说,一键部署新的测试环境,部署完成后,自动化地执行新版本的合格测试产生结果,以此来减轻或者说提高回归测试的效率。 |
2. 如何设计一个符合需要的框架
结合企业需求来实现一个符合企业的测试框架
- APP自动化
1.如何自动化测试微信公众号和小程序
2.如何实现webview地切换,如何获取webview中的元素
3.如何多设备集群管理-通过thrift
- 接口自动化
企业实际应用的接口自动化测试都是基于关键字驱动来实现的。
1.如何管理接口数据
Yaml:考虑接口关联,基于接口业务链地流程测试下。
Excel:考虑单接口的多条件覆盖。
Py.Json
2.网络协议和框架
- 持续集成
jenkins、git(关联项目管理)
-性能测试常见问题
1.如何选择性能测试工具
是否满足业务需求、是否市场主流技术;是否具备分布式部署和执行的能力;本人对工具的熟悉程度。
2.实际的性能测试流程
-性能需求分析,定义完整的性能指标。同步设计性能场景。
-搭建性能测试环境,包括数据准备、组件
-基于场景实现测试脚本
-基于性能需求准备测试数据
-执行测试并采集数据
-性能诊断与分析
-性能调优
-输出报告
3.在测试过程中,发现响应时间太长了,应该怎么进行下一步分析?
-首先排查负载,性能场景数据量太大、脚本设计不合理、
-查看响应的消耗的时间,网络传输的问题?拓宽网络带宽、数据内容进行压缩、组件上增加消息队列。服务器的问题?web服务器是否存在问题?应用服务器?cpu-进程、线程、反编译什么原因导致内存过高。数据库的问题?慢查询、数据库配置