【知识详解】测试相关

问:需求分析和系统设计?

需求分析与系统设计是软件生存期中最重要的两个步骤,需求分析需要解决的是“做什么”的问题,而系统设计则是解决“怎么做”的问题;

  • 需求分析主要是确定待开发软件的功能、性能、界面等要求,包括需要输入什么数据,要得到什么结果,最后应输出什么,需求分析就是确定计算机是做什么的;要达到什么样的效果;
  • 系统设计:就是要把许多事物和问题抽象起来,然后把这些问题或事物模块化,让一个大问题变的容易些,然后就是需要解决这些模块化之间耦合的情况;

问:为什么选择测试开发(怎么理解测开)?

我个人理解,开发是一个产品很重要的阶段,然后测试也是很重要的,现在比如说开发的java,有很多框架都也在被广泛应用,所以开发出一个能够使用的产品变的简单了,各种产品也都很多,但是对于用户来说,这么多的产品里是会更加注重产品的质量和服务,所以这时候测试人员的价值就体现了,对一个产品进行测试是整个产品阶段是很重要的一环,在测试阶段多找出产品的bug或不足,那真正使用的时候问题就少了,现在的话也更多的从手工测试逐渐转变为自动化测试,对产品的质量把控也越来越重视,感觉会很有潜力,未来也会比较有前景,我感觉自己比较适合这个岗位,因为平时考虑问题比较全面,能够站在别人的角度考虑问题,比较喜欢刨根问底;作为一名测试人员是能够有较强的成就感的,能够将一个产品变的越来越好。另外,测试开发要有开发能力,现在很多都在开发测试工具或者是框架,都能提高测试效率,此外也需要有比较强的学习能力,我认为自己比较适合做测试开发。
测试开发这个角色既融入了测试人员的这种质量意识,也要有开发人员的技能;

测试规划:我觉得对于测试工程师主要有两个方向把,一个是管理岗位,另一个是技术的岗位,我个人还是的规划是这种技术的路线,刚开始去把基础的做好,比如像设计用例、执行测试、环境部署、定位问题等;总结技术和方法,沉淀一下;然后根据技术和自己的兴趣,去选择一个领域深入,比如性能测试、自动化测试、接口测试、安全测试等。目前是这样的一个打算;

问:测试应该具备什么能力?

  • 持续不断的学习能力;当然这也是每一个开发人员都应该具有的,不仅是测试,现在技术变化很快,也有很多框架一直在诞生,所以要有不断的学习能力;
  • 好的编程能力:要能够理解各种程序的逻辑关系,能读好、写好代码;
  • 要能够发现问题,做事细心全面:测试是要能够测出问题的,测试的时候多发现问题,真正上线就少问题,考虑测试用例的时候要全面,并且具有代表性;
  • 要有很好的沟通能力;能够明确的表明自己的意思,尤其是与开发人员沟通好;
  • 要有责任心:既然是一名测试工程师,就要对产品和对用户负责,要对自己测试过的产品负责。

问:测试的体系和组成?

测试的整体体系如下:

image

目前针对软件测试的方向主要集中在:功能测试、接口测试、UI测试、性能测试等几类;

问:什么是接口测试?

接口测试主要是用来外部系统与系统之间或者系统内部子系统之间的各个交互点,测试的重点是检查数据的交换、传递还有控制管理的过程;
比如常见的接口测试的工具postman,现在普遍都是采用一种前后端分离的架构,而前后端调用又主要都是基于http协议,所以测试接口的时候主要是通过工具或者代码去模拟http请求的发送与接收;

问:软件测试的流程?

  • 首先要先理解需求,查看需求文档,形成自己对此产品的一个大致思路;
  • 编写测试计划,主要就是设计测试用例(等价类划分、边界值、错误推断、因果图等);
  • 搭建环境、执行测试用例;
  • 形成测试报告;

问:软件测试的声明周期?

  • 需求分析阶段:测试人员了解需求、对需求进行分解、分析,得出测试需求;
  • 测试计划阶段:根据需求编写测试计划、测试方案;
  • 测试设计、测试开发阶段:测试人员搭建测试用例框架,根据需求和设计编写一部分测试用例;
  • 测试执行阶段:根据测试用例和计划执行测试,验证结果;
  • 测试评估阶段:在执行的过程中记录问题,测试完成后编写测试报告,进行测试评估;

问:测试人员常用的工具?

  • Junit:单元测试工具;主要是用来针对代码的白盒测试
  • Jmeter:基于Java的负载测试工具,现在也很多应用于接口测试,可以通过开发脚本验证被测对象的返回结果是否和预期一致;
  • Postman:接口测试工具,在没有UI界面,纯粹是数据传递或业务逻辑时,可以选择;
  • LoadRunner:经常使用的性能测试工具,可以通过这个工具模拟用户负载;
  • Fidder:抓包工具,或者浏览器的f12;

问:α和β测试分分别是什么?

  • α测试是开发人员和用户一起共同参与的,是一种内部测试;
  • β测试是内部测试后的公测,是完全由用户来完成的;

问:性能测试、压力测试、负载测试、稳定性测试都是什么?

压力测试和负载测试都可以说是性能测试的子集;

  • 性能测试:系统在不同的用户负载情况下系统的响应时间、吞吐量等指标;
  • 负载测试:负载测试是个方法,不断的增大负载来查看在满足性能指标下的最大负载数;所以可以说性能测试就是通过不同的负载测试来实现;
  • 压力测试:压力测试是想通过施加高负载的手段来让系统处于极限状态,测试是否能够执行,是否稳定;

问:测试用例的常用方法?

  • 等价类划分:从无穷多数据中,划分等价类:有效等价类和无效等价类;从每个等价类中挑选代表性的数据进行测试;
3-20个字符:
有效数据:大于等于3,小于等于20的; 
无效数据:小于3,大于20的;
  • 边界值法:找到有效数据和无效数据的边界值;然后采用边界值-1、边界值、边界值+1测试;
最小边界值:3;最大边界值:20;
最小边界值-1:2;最大边界值-1:19;
最小边界值+1:4;最大边界值+1:21;
  • 因果图法:不同控件组合产生不同的结果;
  • 错误推断法:根据经验和直觉推测程序中所有可能存在的错误;

问:如何判断前后端bug?

  • 前端bug:1.界面相关;2.布局相关;3.兼容性相关;
    (出现样式问题的是CSS、出现文本问题的是html、出现交互问题的则是javascript)
  • 后端bug:1.业务逻辑相关;2.性能或数据相关;3.安全性相关;
  • 定位的话可以查日志,或者是查接口,比如说通过f12抓包,查看http请求,或者通过状态码查看是客户端或服务端错误;
    link

问:web页面出现了空白,怎么排查问题?

1.先确保网络连接通畅;
2.查看url地址是否输入有误;
3.打开控制台查看报错信息;按f12查看状态码等;
4.抓包看是否正常;用接口模拟请求

问:比如说登录页面,怎么进行安全性测试(SQL注入)?

  • 登录成功后生成的cookie是否是httponly的,否则很容易被脚本获取,能够防止xss攻击;
  • 用户名和密码是否是加密后发给服务器的;
  • 在用户名和密码是输入框是否屏蔽掉了SQL注入问题?
SQL注入是利用某些系统没有对用户输入的数据进行充分的检查,
在用户输入的数据中存在非法的SQL语句段或者命令;
比如:SQL = "SELECT user FROM table WHERE user = " + name; 
从前端传来的name然后进行语句拼接后去数据库里查询
但是,if前端传来的name变成了 ' ' or '1' = '1';
那这个语句就变成了:
Select uesr from table where name = ' ' or '1' = '1'
那这样变成了或的关系,而且最后条件恒成立,那即使数据库里没有,也能返回true;
使用preparestatement进行sql语句的预编译;防止sql注入;

问:设计一个测试用例?(以用户登录界面测试为例)

  • 功能测试:
正确用户名、密码、验证码能登录;  
根据三者任意不正确能够提示有效信息:比如密码错误、验证码错误;   
点击验证码是否能够刷新;   
点击记住密码后下次登录能不能不输入密码;    
用户名和密码是否大小写敏感;    
输入的手机号提示未注册;  
输入不合法的用户名是否有提示;用户名和密码是否有长度限制;
  • 界面测试:
元素是否对齐; 
没有输入时是否有提示;   
相对应的按钮是否能够点击; 
界面风格是否美观友好;
  • 安全性测试;
有没有登录次数的限制;    
登录错误之后限制多长时间不能登录;   
支不支持一个账户多地登录;
  • 性能测试
登录后跳转的响应时间;    
通过工具向登录界面发起大量请求,查看运行情况;何时崩溃;
  • 兼容测试:
不同浏览器或者不同版本情况下功能是否正常;
不同分辨率,不同终端的功能是否正常;

购物车测试用例?

  • 界面测试
打开页面后,页面布局是否合理,是否完整;
不同卖家的上面在不同区域展示,要能够区分;
页面的功能按钮可以正常显示;
商品的最下方显示已经失效的物品;
再往下拉最下面显示“你可能喜欢”
购物车if存在商品降价、库存不足、限购的话能有字体的显示;
  • 功能测试
购物车页面里的功能很多
比如商品页面的链接跳转是否正常;
商品未勾选,点击结算;
商品勾选后,点击结算,商品的折扣、优惠券显示是否正常;
点击结算后能够跳转到支付页面;
增删改商品数量是否正常,商品数量的限制;
商品降价是否有提示,库存紧张提示等;
商品下架、店铺不存在、商品失效等是否显示灰色,是否能够清理;
  • 性能测试
打开购物车的时间、编辑购物车比如增删改物品需要的时间,是否是实时刷新的;
清空失效的商品需要的时间;
  • 兼容性测试
不同浏览器上从功能是否正常;
不同手机系统比如ios或android或者鸿蒙等系统,功能是否正常;

异常测试

比如一些突发状况时,这个购物车页面是否正常,
比如突然来电话,或者网络情况弱网情况下这些功能是否还是正常;
posted @ 2021-12-02 10:34  Curryxin  阅读(94)  评论(0编辑  收藏  举报
Live2D