面试题(二)

 2023-09-05 阅读 44 评论 0

摘要:1.B/S架构和C/S架构区别 b---browser 浏览器 c---clent 客户端 s---server 服务端 比较: 标准:相对于cs架构来说bs架构的两端都是在使用现成的成熟产品。所以bs会显示的标准一些 效率:相对bs架构来说cs中的客户端可以分担一些数据的处理,因此

1.B/S架构和C/S架构区别

b---browser  浏览器

c---clent   客户端
s---server  服务端

比较:

     标准:相对于cs架构来说bs架构的两端都是在使用现成的成熟产品。所以bs会显示的标准一些

     效率:相对bs架构来说cs中的客户端可以分担一些数据的处理,因此执行效率会高一些

    安全:bs架构当中得到的数据传输都是以HTTP协议进行的输出,而HTTP协议又是明文传输。可以被抓包,所以相对于cs架构来说bs就显得不那么安全(相对的)

   升级:bs架构只需要在服务器端将数据进地更新,前台只需要刷新页面就可以完成升级,而cs架构当中必须要将两端都进行更新

   开发成本:相对于bs架构来说cs当中的客户端需要自己开发,所以相对于来说成本会高一些

  cs又有一些特殊的测试:热启动,消息推送,中断测试。。。。

2.HTTP协议

http协议又叫超文本传输协议,在网络请求的时候,我们基本上是使用http协议

http协议包括请求和响应

请求中包括:请求地址,请求方式,请求方式包括get请求和post请求,get和post的区别是get请求是在地址栏后边

                      跟随请求参数,但是请求参数大小是有限制,不同浏览器是不同的。一般是4KB。post请求主要用于

                      向服务器提交请求参数。post请求的参数是放到请求实体内容中的,相对get请求较为安全一些

          另外请求中会有各种请求头信息,比如支持的申诉局类型,请求的来源位置,以及Cookie头等相关头信息

响应,主要包含响应的状态码,像200(),404(),500(),304(),307()

    还有各种响应头信息,比如设置缓存的响应头,Content-Type内容类型,设置cookie头信息

3.POST与GET区别

1.get使用url或cookie传参,而post将数据放在body中

2.get的url会有长度上的限制,则post的数据则可以非常大

3.post比get安全,因为数据在地址栏上不可见

4.一般ge请求用来获取数据,post请求用来发送数据

4.Cookie和Session的区别与联系

客户端技术   Cookie

服务端技术   Session

Cookie是把数据保存在浏览器端的内存中
Session把数据保存在服务器端的内存中

cookie与session的联系:

当服务器端生成一个session时就会向客户端发送一个cookie保存在客户端,这个cookie保存的是session的sessionld。这样才能保证客户端发起请求后客户端已经登录

的用户能够与服务器端成千上万的session中准确匹配到已经保存了该用户信息的session,同时也能够确保不同页面之间传值时的正确匹配。

5.测试的目的

1.发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心

2.记录软件运行过程中产生的一些数据,从而为决策提供数据支持

3.降低同类产品开发遇到问题的风险

6.软件测试原则

1.测试证明软件存在缺陷:无论执行什么样的测试操作都能证明当前软件是有缺陷的

2.不能执行穷尽测试:有些功能是没有办法将所有的测试情况都逻辑出来,所以任何的测试操作都有结束的时间

3.缺陷存在群集现象:对于软件功能说,核心功能占20%,非核心80%。在实际工作中我们会集中测试20%的核心功能,所以这个部分发现缺陷的几率就会高于80%

   因此我们就会遇到缺陷都集中在20%功能模块里的现象

4.某些测试需要依赖特殊的环境

5.测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷。我们追求测试工作尽早

6.杀虫剂现象:同样的一个测试用例不能重的执行多次,因此软件会对它产生免疫

不存在缺陷谬论:任何软件不可能是完美的

7.软件测试分为哪几个阶段?

单元测试:是指对软件中最小可测试单元进行检查和验证

                  单元测试当一段代码完成后,是由白盒测试工程师或者开发人员自行测试,比如java中执行单元测试叫做junit测试

                  目前大部分公司单元测试由开发人员简单编译和调试一下自己的程序,没有相应的单元测试计划

                  单元测试方式:先静态地观察代码是否符合规范,然后动态地运行一下代码,检查运行结果

集成测试:是单元测试的下一个阶段,是指将通过测试单元模块组装成系统或者子系统,再进行测试,重点测试不同模块的接口部分

                   集成测试也是由白盒测试或者开发人员来完成

系统测试:(黑盒测试)在经过集成测试的单元模块,按照整体需求规格说明书,进行一套有效严格的测试,保证软件的正常运行。(集成测试偏重于技术角度,系统测试偏重于业务角度)

回归测试:(回归测试在测试生命周期中是很重要的一部分,会进行多次回归测试),是指在发生修改之后,再重新回去测试一下,避免修改的内容导致了其他的错误。验证之前出现过但已修复好的缺陷不再重新出现。

冒烟测试:(是自由测试的一种)是指开发者功能完成后的完整性功能测试,发现问题后反馈给开发者进行修改,然后看这次修改是否真的修复解决了这bug,或者对其他模块造成了影响,这个时候就需要冒烟测试来进行验证,缺点就是覆盖率低。

验收测试:也叫交付测试,是针对用户需求、业务流程进行的整体测试,确认是否满足验收标准,由用户、客户看是否接受系统,可以部署上线。

                 Alpha测试:用户在开发者的场所进行测试,是一个可控的环境中测试的。

                Beta测试:是用户在对软件产品进行测试,开发者不在现场,用户对测试过程中遇到的bug进行记录,开发并对它进行修改,再测试,直到用户觉得可以了,就部署上线

8.单元测试与集成测试的侧重点

单元测试是对程序最小可测的模块进行测试

集成测试是把各个模块连接起来时,穿越模块接口的数据是否会丢失

9.系统测试范围

功能测试,用户体验测试,性能测试,ui测试兼容性测试,安装测试,文档测试,稳定性测试等


10.a测试与ß测试的区别

a测试:公司组织的内部人员进行的测试

ß测试:公司组织的典型客户在实际生活中使用。

11.验收测试怎么做?

在UAT测试之前,我们会制定测试方案,选择基线用例,即级别高的用例,在UAT测试环境上进行测试,如果测试通过,验收测试就通过了。

12.白盒、黑盒和灰盒测试区别

白盒测试:对程序的内部结构与算法进行的测试
黑盒测试:不考虑程序的内部结果,只检查程序是否实现了需求的功能
灰盒测试:关注系统接口所实现的功能,是否和需求一致。

13.冒烟测试的目的

检查程序的基本功能是否正常

14.回归测试怎么做?

首先,把bug单对应的用例执行一遍,还要检查有数据交互的模块会不会受影响,有没有引入新的问题;项目上线前,还要把当前版本的重要功能以及冒烟测试的用例都回归一遍,确保重要功能上线后不出问题。

15.全部回归与部分回归的区别?

全量回归:对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例,防止以前没有的问题现在出问题了
部分回归:当开发修复某个bug时,我们需要去检查该bug是否被修复,还需要检查与之相关联的模块是否受到影响。

 

16.需求分析的目的

澄清需求,提取测试点


17.测试计划的目的

借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,

保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更


18.什么时候开始写测试计划

需求分析之后

19.由谁来编写测试计划

一般都是由测试经理或者测试组长来编写


20.测试计划的内容

1.简介   项目的介绍        测试负责人和开发负责人    项目的起始日期。。。。

2.参考文档和提交文件     

3.进度安排    模块安排   对应负责人    时间安排。。。。

4.测试资源

5.严重程度和优先级

6.风险分析   比如说项目优先级不高    开发人员数量不足或者开发技术不到家     节假日。。。。

7.测试策略     功能测试   性能测试   接口测试。。。。


21.结束条件(项目上线的条件)

需求德覆盖率、用例的执行率和缺陷的遗留率达到质量目标。

通常来说:需求覆盖率和用例执行率需要达到100%

致命/严重的缺陷需要当天解决,轻微/一般遗留率不得超过30%


22.常见的测试风险

进度风险、质量风险和需求变更

23.测试用例的要素

用例编号    用例描述     执行条件     预期结果      测试输入     实际结果

24.测试用例级别的划分

一般是依据用户使用该场景的频率,和该功能对系统的影响程度来确定


25.怎样保证覆盖用户需求?

项目开始前,我们会先熟悉需求,画好流程图,保证整个流程都覆盖全面,小组之间每个人都要根据各自的流程图,各个功能点有哪些限制条件,来讲解一下自己对测试点的理解,防止之

后编写测试用例时出现遗漏;用例编写完之后,再进行用例的评审,看看测试点有没有用遗漏,对需求理解有没有错误,测试场景是否覆盖完全。

 

26.写好测试用例的关键 /写好用例要关注的维度

  1. 覆盖用户的需求;
  2. 从用户使用场景出发,考虑用户的各种正常和异常的使用场景;
  3. 用例的颗粒大小要均匀。通常,一个测试用例对应一个场景;
  4. 用例各个要素要齐全,步骤应该足够详细,容易被其它测试工程师读懂,并能顺利执行;
  5. 做好用例评审,及时更新测试用例。

27.测试用例的状态


28.常见的测试用例设计方法

  1. 等价类划分法
  2. 边界值法
  3. 因果图法
  4. 场景法
  5. 错误推测法
  6. 正交表法

29.判定表用在哪些时候/哪些功能

      判定法,是用在不同的输入组合,可能会产生不同的输出这种情况,比如,一个有多个查询条件的查询功能,输入不同的查询条件组合,输出的结果是不一样的,这样的功能就要用到判定表什么时候用到场景法

30.什么时候用到场景法

使用场景法通常是在冒烟测试中或者 一些流程性比较强的软件/功能(比如安装,卸载等等)


31.测试环境怎么搭建的?
 

搭建环境前,开发都会给到我们一份系统发布手册,我们会根据这个手册来搭建。比如,我这个xx系统,是搭建在Unix系统下的,web服务器用的是Tomcat8,MySQL版本是5.7,程序是

java编写的,首先我们向开发拿到编译好的安装包,然后用xshell(或CRT)远程连接上Unix系统,把tomcat服务器停掉,把程序包放到webapps目录下,然后再启动tomcat服务器就可以了


32.偶然性问题的处理

  1. 发现bug之后,我们会先截图,如果确定是偶然性的问题,会将日志和截图一起提单给开发定位;
  2. 如果缺陷在当前版本无法复现,且缺陷的影响程度比较低,可以提交问题单进行跟踪,跟踪三个版本,如果后三个版本都无法复现,就可以关闭该缺陷;
  3. 如果是很严重的Bug,比如导致系统崩溃等,并且,实在没有再次出现,除了要及时反馈给上级之外,最后还要写到测试报告中,说明出现了什么现象,但无法再现!

33.当我们认为某个地方是bug,但开发认为不是bug,怎么处理?

   1.找到需求文档或者是原型图进行匹对
   2.尝试多种测试环境和多种测试方式来确认是否为bug

  3.整理bug的复现的步骤和出现的频率

   4.开发坚持不认为是bug的时候找项目经理测试经理进行沟通来确认是否为bug

   5.将客户经理  测试  测试经理和项目经理进行开确认会来判定是否为bug

   6.测试人员需要将bug整理并写入测试总结中

34.产品在上线后用户发现bug,这时测试人员应做哪些工作?

  1. 测试人员复现问题后,提交问题单进行跟踪;
  2. 评估该问题的严重程度,以及修复问题时的影响范围,回归测试需要测试哪些功能;
  3. 问题修复后,先在测试环境上回归,通过后再在生产环境上打补丁,然后再进行回归测试;
  4. 总结经验,分析问题发生的原因,避免下次出现同样问题。

35.二八定理

80%的缺陷出现在 20%的模块

36.如何跟踪缺陷

当发现缺陷后,我们要在禅道上提交问题单给开发,并每隔一段时间(间隔一个小时,或两个小时都可以)去检查缺陷是否被处理,如果没及时处理,就要提示开发,让开发及时修复问题,

问题修复后,要及时进行回归测试。

 

37.缺陷的状态

激活,确认,已解决,关闭

38.缺陷的等级

崩溃,严重,一般,建议,

39.缺陷单应该包含这些要素

缺陷标题,严重级别,问题所属模块,复现步骤,预期结果,实际结果,有关的日志和截图。


40.测试报告的主要内容

人力投入,用例统计,问题单分类统计,遗留bug情况,测试风险,测试对象评估,测试结论

 

41.如何定位bug:

  1. 检查测试环境配置是否有问题,测试数据是否有问题
  2. 用抓包,分析请求和响应数据是否存在问题
  3. 查看应用服务器的日志
  4. 然后再查看数据库的数据是否存在问题

42.开发没时间修复,如何推进bug的修复:

  1. 和开发说明该问题的严重性,会怎样影响产品的正常使用,如何还是坚持不改,就上报领导,让领导辅助推进;
  2. 确认问题的严重程度,如果影响不大,不是非要改的bug,并且修复风险比较大,和领导商量后,如果认为暂时可以不用修复,也可以不修复。

43.软件测试流程


44.项目介绍

45.对一支圆珠笔进行测试,要从哪些方面进行测试?三角形测试用例设计

1.功能测试:
圆珠笔按下是否能正常书写。

2.性能测试:
笔芯弹出弹回的快慢。

3.负载测试:
连续按,看弹簧能经受多少次伸缩。

4.兼容性测试:
看是否可以使用其他笔芯。

5.强度测试:
用力过度会有什么影响

6.可恢复性测试:
长时间按住弹簧,松开后看弹簧是否可以恢复

7.界面测试:
笔的外观,舒适度

8.安全性测试:
是否会对使用者造成伤害

 

 

 

三角形

一步:确定测试策略。

  (1)判断能否组成三角形;

  (2)识别等边三角形;

  (3)识别等腰三角形;

  (4)识别任意三角形。因此可首先用黑盒法设计测试用例,然后用白盒法验证其完整性,必要时再进行补充。

第二步:根据本例的实际情况,在黑盒法中首先可用等价分类法划分输入的等价类,然后用边界值分析法和猜错法作补充。

  等价分类法:

  有效等价类

  输入3个正整数:

  (1)3数相等

  (2)3数中有2个数相等,比如AB相等

  (3)3数中有2个数相等,比如BC相等

  (4)3数中有2个数相等,比如AC相等

  (5)3数均不相等

  (6)2数之和不大于第3数,比如最大数是A

  (7)2数之和不大于第3数,比如最大数是B

  (8)2数之和不大于第3数,比如最大数是C

  无效等价类:

  (9)含有零数据

  (10)含有负整数

  (11)少于3个整数

  (12)含有非整数

  (13)含有非数字符

  边界值法:

  (14)2数之和等于第3数

  猜错法:

  (15)输入3个零

  (16)输入3个负数

  第三步:提出一组初步的测试用例,如下表所示:

  第四步:用白盒法验证第三步产生的测试用例的充分性

 

 


46.在项目中发现哪些经典bug?什么原因导致的?

1.兼容性问题,在ie浏览器,提交订单按钮可以点击,到了谷歌,火狐就不能了

2.查询订单页面,根据条件筛选的结果不是想要的结果,还有某些字段的值没有显示出来或者显示错误(因为开发从库表取值有误)

3.付款成功后,订单状态一直不翻转为交易成功。(因为代码没有正确获取库表中付款成功纪录的状态码)

4.修改支付密码,新密码和原密码一致,也通过了,系统没有做新旧密码的校验
5.付款时候的手机验证码,可以一直使用,没有成功做有效期控制

6.手机app断开网络后,再去点击,没有友好的错误页面提示网络已断开,只有undefined返回

47.一个项目完成时,有多个重要的缺陷没有被修复,但是项目负责人说可以不修改,你认为测试是不通过的,请简述你的理由。

测试是对软件的质量进行的把关,如果一个项目仍然有很多的缺陷未被修复,那么从质量的角度上我们会认为这个软件质量是不达标的,一般来说缺陷的遗留,是不允许严重、致命bug的遗留,轻微和一般的bug遗留率不超过30%。


48.在需求文档不太详细的情况下,如何开展测试?

  1. 首先,把需求文档中有异议的部分标识出来,再找产品和开发一起讨论,把需求明确下来;
  2. 提取测试点,然后再叫上产品和开发一起对测试点进行讨论,看有没有遗漏,是不是合理的,
    然后再编写测试用例,再评审,评审通过后,再进行后续的测试。

49.如何尽快找到软件中的bug?

  1. 尽快熟悉公司的产品业务,只有熟悉了产品的业务流程、你才能迅速找出软件中存在的一些重要的缺陷;
  2. 把自己当成用户,把自己当成是用户去使用该系统
  3. 善于怀疑,不要过于相信开发人员的能力;

50.什么是bug?

  1. 软件未实现需求和规格要求的功能 ;
  2. 软件未实现需求和规格未明确提及但应该实现的内容 ;
  3. 软件难以理解,不易使用,运行缓慢,或者最终用户(估计会)认为不好;
  4. 测试用例执行中发现的与预期结果不符的现象

51.ATM机吞卡的吞卡现象是不是BUG?

不一定,看是什么情况下吞卡。如:输入三次密码错误吞卡是正常的,不属于BUG;若输入一次密码错误吞卡则是不正常的,属于BUG。


52.如何减少非问题单的提交?

  1. 熟悉项目需求,充分了解各个各个功能模块的功能、参数、约束条件,弄清存在数据交互的模块之间的数据来源、数据流向;
  2. 跟产品确认该问题是否属于非问题单。

53.有个程序,在windows上运行很慢,怎么判断是程序存在问题,还是软硬件系统存在问题?

  将程序放在其他的windows上运行,如果运行的还是很慢则是程序的问题。


54.你们发现bug会怎么处理。

发现bug后,我们会先自己定位一下,比如,抓个包,看看是前端的问题,还是后端的问题,检查下数据库的数据是不是正确的,尽量把问题发生的原因或者产生的日志找出来,方便开发定位问题,然后就提单给开发,然后开发做出相应的处理,开发修复完后就进行回归测试,回归测试通过后就关闭这个bug,没有通过就继续给回开发修复。如果遇到开发认为这个不是bug的话,那么我们就要和开发沟通,然后我们要坚持自己的立场,通过讨论后一致认为是bug就给开发修复,不是就关闭这个bug。如果开发和我们意见一直不一致,那么就要将问题升级,召集开发经理和测试经理一起讨论,再做决定。

55.支付测试点

  • 从功能方面考虑:

    1. 正常完成支付的流程;
    2. 支付中断后继续支付的流程;
    3. 支付中断后结束支付的流程;
    4. 单订单支付的流程;
    5. 多订单合并支付的流程;
    6. 余额不足;金额的最小值 :如0.01;金额为0;金额为负数
    7. 未绑定银行卡;
    8. 密码错误;
    9. 密码错误次数过多;
    10. 找人代付;
    11. 弱网状态下,连续点击支付功能功能,会不会支付多次;
    12. 有优惠券、折扣、促销价进行结算是否正确;
    13. 不同终端上支付:包括PC端的支付、笔记本电脑的支付、平板电脑的支付、手机端的支付等;
    14. 不同的支付方式:银行卡网银支付、支付宝支付、微信支付等;
    15. 支付失败后,再次支付。

 

  • 从性能方面考虑:

    1. 多个用户并发支付能否成功;
    2. 支付的响应时间;

 

  • 从安全性方面考虑

    1. 使用Fiddler拦截订单信息,并修改订单金额,或者修改订单号,(下两个订单A,B,付款时拦截订单B,并把订单B的订单号改为A订单的订单号)无法完成支付;

 

  • 从用户体验方面考虑

    1. 是否支持快捷键功能;
    2. 点击付款按钮,是否有提示;
    3. 取消付款,是否有提示;
    4. UI界面是否整洁;
    5. 输入框是否对齐,大小是否适中等。

 

  • 兼容性

    1. BS架构:不同浏览器测试。
    2. APP:不同类型,不同分辨率,不同操作系统的手机上测试

 

 

56.购物车测试点

基本功能测试:

  1. 未登录点击购物车跳转到登录界面
  2. 登录后是否可以正常显示购物车界面
  3. 点击购物车按钮是否能够正常跳转到购物车商品界面
  4. 从商品信息页面添加的商品能显示在购物车中
  5. 购物车界面可以实现管理功能
  6. 是否显示购物车中共多少件宝贝
  7. 是否有店铺活动、满减优惠、降价显示
  8. 未选中商品,点击结算,提示您还没选中商品哦
  9. 选中商品,点击结算,跳转到结算订单界面
  10. 选中商品后显示合计金额
  11. 选中商品,点击结算,在规定金额内提示已包邮
  12. 选中商品,点击结算,商品数量是否正确
  13. 选中商品,点击结算,商品数量的总价是否正确
  14. 全选功能是否可用
  15. 点击全选后是否所有商品都已选中
  16. 点击全选后,点击结算,选中数量是否正确
  17. 点击全选后,点击结算,是否跳转到结算订单界面
  18. 点击全选后,合计金额是否正确
  19. 选中店铺后,是否提示已满多少金额包邮
  20. 点击管理,是否显示删除,清理,移入收藏夹按钮
  21. 删除,清理,移入收藏夹按钮功能是否正常可用
  22. 点击全选按钮是否能够选中全部商品
  23. 是否能够实现反选功能
  24. 没有选中商品,点击删除,是否提示,您还没有选择宝贝哦
  25. 没有选中商品,点击移入收藏夹,是否提示,您还没有选择宝贝哦
  26. 点击清理按钮,是否跳转到清理商品页面
  27. 购物车添加的商品数量上限是多少
  28. 是否支持重新选择商品
  29. 点击店铺名称是否能够调转到对应的店铺
  30. 失效宝贝是否显示
  31. 商品是否可以进行收藏并推荐相似的商品(宝贝)

界面测试

  1. 界面是否清晰明了

  2. 页面的布局是否合理,是否完整

  3. 不同卖家的商品在不同的table区域显示,区分明显。

  4. 购物车中如果存在有商品降价、库存不足、限购件数等,在商品详情的下面,会有对应的字体展示。

  5. 向下滑动页面,在购物车顶端展示“购物车”。

  6. 商品的最下方显示失效宝贝。

 

兼容性测试

  1. iOS:不同型号,不同的iOS系统。

  2. 安卓:不同品牌,不同型号,不同的安卓系统

  3. 不同分辨率下,显示的样式是否一样

  4. 不同浏览器上的测试功能是否正常

  5. 低配置情况下,是否能满足需求

  6. 反复操作某一个功能,不断点击和刷新,是否出现闪退。

  7. 在2g网络情况下,商品显示的速度

  8. 在3g网络情况下,商品显示的速度

  9. 在4g网络情况下,商品显示的速度

  10. 在5g网络情况下,商品显示的速度

  11. 在wifi网络情况下,商品显示的速度


安全性测试

  1. 用户实名认证后个人信息是否会泄露
  2. 是否需要绑定手机号
  3. 是否支持第三方登录

易用性测试

  1. 是否方便人们操作
  2. 是否有免密码支付功能
  3. 是否具有青少年模式

性能性测试:

  1. 打开购物车这个页面需要多长时间
  2. 弱网时是否还可以进行添加商品,计算商品的价格并且可以正常结算
  3. 无网状态下是否提醒请检测你的网络设置
  4. 用户过多会不会使购物车服务器崩溃
  5. 编辑购物车:删除、添加商品需要的时间。
  6. 在购物车页面选择需要购买的商品进行结算的时候,结算金额可不可以实时显示。
  7. 清空失效商品需要的时间。

57.搜索功能测试点

  • 搜索历史内容记录,便于查找检索过的内容
  • 搜索内容联想输入,便于用户搜索的便   捷与准确性

搜索功能测试(重点)

  • 搜索内容为空,验证系统如何处理
  • 搜索内容为空格,查看系统如何处理
  • 边界值验证,在允许的字符串范围内外,验证系统的处理
  • 超长字符串的输入,系统是否会截取允许的长度来检索结果
  • 合法的字符串长度后,加空格,验证检索结果
  • 多个关键词中间加入空格,tab,逗号后,验证系统的结果是否正确
  • 验证每种合法的输入,结果是否正确
  • 是否支持检索内容的复制、黏贴、编辑等操作
  • 是否支持回车键搜索
  • 多次输入相同的内容,查看系统每次检索的结果是否正确,相同
  • 特殊字符,转义符,html脚本等需作处理 敏感词汇,提示用户无权限等信息
  • 输入的内容,是否支持快捷键操作等
  • 只能输入允许的字符串长度

一、功能实现

1.搜索按钮功能是否实现;

2.点搜索后,原先的搜索条件是否清空;

3.注意验证搜索框的功能是否与需求一致,即是模糊搜索,还是完全搜索。如果支持模糊查询,搜索名称中任意一个字符,要能搜索到;如果支持完全搜索,点击“搜索”,查询结果正确;中%国,查询结果是不是都包含中国两个字的信息

4.比较长的名称是否能查到,输入过长查询数据,看其有没判断,报错;系统是否会截取允许的长度来检索结果;只能输入允许的字符串长度?

5.空;默认查询条件结果集

6.空格;

7.是否有忽略空格的功能,有的搜索框是需要有忽略前置空格和后置空格的功能,但不能把中间空格忽略;

8.输入各种字符,譬如输入范围是09,AZ的看输入中文是什么效果,字符(尤其是英文单引号),数字,特殊符号以及组合情况(特殊符号就是键盘上的那些);中文值,字母大、小写值、数字类型值、全角、半角值,

9.输入系统中存在的与之匹配的条件,看其的查询后数据的完整性;显示记录条数正确、文字折行显示正确、页面布局美观,列标题项、列显示内容、排序方式符合需求定义;搜索出的结果页面是否与其他页面风格一致;

10.焦点放置搜索框中,搜索框默认内容是否自动被清空;

11.输入系统中不存在的与之匹配的条件;本站内搜索输入域中不输入任何内容,是否搜索出的是全部信息或者给予提示信息

12.用快捷键或鼠标粘贴内容看,测试搜索框是否能执行;

13.查询结果超过一页可以下滑,并选中;

14.注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方;

15.用户进行查询操作时,一般情况是不进行查询条件的清空,除非需求特殊说明。

16.反复输入相同的数据(5次以上)看是否报错

17.在输入结束后直接按回车键,看系统处理如何,会否报错

18.敏感词汇,提示用户无权限等信息

二、组合测试:

1.不同查询条件之间来回选择,是否出现页面错误(单选框和多选框最容易出错)

2.测试多个查询条件时,要注意查询条件的组合测试,可能不同组合的测试会报错。

3.组合各个文本域查询条件,点击“搜索”,查询结果正确

4.多个关键词中间加入空格,tab,逗号后,验证系统的结果是否正确

其他苛刻要求:

1、于输入框处双击鼠标是否出现下拉菜单记忆已搜索过的内容

2、特殊数字的判定,如输入"10101010"二进制字符系统的判断与报错

3、于输入框单击鼠标左键,是否有光标出现

4、承上,光标出现后使用"Tab"键后,"搜索"按钮是否出现选定TIP

5、于输入框点击鼠标右键是否出现Menu,Menu内容依次为"撤消"、"复制"、"粘贴"、"删除"、"全选"(具体情况视实际情况而定)

6、检查以上Menu出现的选择模块是否可正常使用

7、于输入框输入任意长度字母、数字、文字,双击鼠标左键,观察输入项目能否被全部选中

8、输入正则表达式

9、写段select查询语句,插入语句等,看看执行结果ctrl+z,+x,+c,+v快捷键操作等是否可行

10、特殊字符,转义符,html脚本等需作处理

11、键盘回车键、Tab键

12、边界值验证,在允许的字符串范围内外,验证系统的处理

完善终结

一、测试方法

  查询类型包含单个查询、组合查询、输入框输入查询、时间控件查询四种场景:

1、功能实现

  • 支持模糊查询搜索
  • 时间控件查询
  • 默认空查询
  • 查询后默认清空输入框记录(根据业务需求)
  • 输入系统中不存在与之匹配的条件查询

2、组合查询

  • 单个查询条件。(单个条件查询切换以及单个查询、组合查询来回切换的查询结果与错误提示)
  • 组合查询条件。(正交试验法)

3、时间控件查询

  • 起始时间、结束时间

二、主要测试点

(1)默认查询

  • 界面UI规范性(输入条件与输出结果页面)
  • 显示符合条件的数据
  • 校对数据与页码是否匹配、总数目、每页数据条数

(2)正常查询功能

  • 输入符合规则的查询条件,得到查询结果验证。
  • 支持的输入字符类型、字符长度、含空格等文本域条件逐个验证
    • 重置条件二次查询

(3)边界值查询

  • (等价类、边界值综合--字符长度)

(4)异常查询与相关提示

  • 非法字符控制逐个验证(不符合输入规则)
  • 字符长度超长、过短(不符合输入规则)
  • 错误查询的提示信息

(5)模糊查询

  • 单个字符、多个字符、特殊字符、英文大小写搜索查询
  • 超长字符查询

(6)查询后是否清空查询记录

(7)空查询

  • 查询结果为空或者为全部数据。

(8)组合查询

  • 多种不同组合条件的查询与查询结果验证。
  • 组合查询不符合要求的错误提示。

(9)时间查询

  • 起始时间与结束时间的逻辑判断
  • 起始时间与结束时间内的查询结果验证
  • 起止时间边界值校验
  • 大月、小月、闰月、跨年、跨月、跨日查询、日期溢出查询
  • 起止时间溢出的查询控制

(10)数据库验证

  • 查询条件、输出结果、数据库查询验证三者必须一致。


 
界面测试
1.查看UI是否显示正确,布局是否合理
2.是否有错别字
3.搜索结果显示的布局是否美观
4.已查看的结果链接,链接的颜色要灰化处理,
5.结果数量庞大时,页面的分页布局是否合理
6.界面的颜色搭配是否合理

安全性测试
1.脚本的禁用
2.SQL的注入,检索SQL SELECT语句等
3.敏感内容的检索是禁止的
4.特殊字符的检索
5.被删除、加密、授权的数据,不允许被查出来,6.是否有安全设计控制

兼容性测试
1.多平台Windows,mac
2.移动平台android,ios
3.多浏览器火狐、chrome、IE等

性能测试
1.搜索页面的链接打开速度的时间
2.搜索出结果消耗时间
3.弱网时搜索的响应时间
4.不同网速下搜索时的响应时间3g,4g,WIFI

易用性
1.有联想功能
2.搜索内容与搜索结果的匹配程度
3.支持拍照搜索,语音搜索

58.文件上传功能测试点

页面

页面美观性、易用性(键盘和鼠标的操作、tab跳转的顺序是否正确)
按钮文字正确性
说明文字是否正确
正确/错误的提示文字是否正确
提示当前位置是否正确,并且和其他页面保持一致格式
必填项的标示是否正确

功能

路径是否可以手工输入(手工输入的时候有没有限长)
上传文件超过最大值是在提交前校验还是提交后校验
上传文件格式是否全部支持(图片:gif/jpg/bmp…文档:doc/sxw/xls…压缩包:zip/rar…安装文件:exe/msi)
上传文件是否支持中文名称
文件名称的最大值、最小值、特殊字符(包含空格)、使用程序语句是否会对其造成影响、中文名称是否能正常显示
对于是否发布的设置是否正确(前台校验)
简介最大值、特殊字符、使用程序语句是否会对其造成影响

上传文件名测试,检查不符合文件名规范

上传文件名类型测试,检查不同文件类型是否支持如:.rar,.mp3,avi等

上传文件大小测试,检查不同文件规格大小如:0字节文件, 1kb, 200kb, 2mb, 20mb,2g等

上传文件容错性测试:如检查覆盖同文件操作;

上传文件异常情况测试:如硬盘空间不足

上传文件速率性能测试:检查上传不同的文件在不同的网络环境响应速度,及系统资源占用

上传文件安全性测试:如上传常见木马

上传文件易用性测试:检查上传文件操作是否让用户易于学习和理解使用等

上传文件特性测试:如果支持如断点续传等一些特性

上传文件后,检查是否与源文件一致,包含目录设置等

上传文件,是否能打开等

 

按钮

保存按钮
对输入项有错误提示后光标提示是否正确
对输入项的错误提示是否描述正确
对必添项是否进行校验
清空按钮
是否清除(或还原)了填写内容
返回按钮
是否返回上一页面

59.登录功能测试点

功能性测试:

1.  输入已注册的用户名和正确的密码,验证是否成功登录

2.  输入已注册的用户名和不正确的密码,验证是否成功失败,且提示信息正确

3.  输入未注册的用户名和任意密码,验证是否登录失败,且提示信息正确

4.  使用未激活账户登录,验证是否登录失败

5.  使用被停用用户登录,验证是否登录失败

6.  用户名和密码两者都为空,验证是否登录失败,且提示信息正确

7.  用户名和密码两者之一为空,验证是否登录失败,并且提示信息正确

8.  如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入正确的验证码,验证是否登录成功

9.  如果登录功能启用了验证码功能,在用户名和密码正确的情况下,输入错误的验证码,验证是否登录失败,且提示信息正确

10.用户名和密码是否大小写敏感

11.页面上的密码框是否加密显示、或者是否需要有明暗码切换按钮

12.后台系统创建的用户第一次登录成功时,是否提示修改密码

13.忘记用户名和忘记密码的功能是否可用

14.前端页面是否根据设计需求限制用户名和密码长度

15.如果登录功能需要验证码,点击验证码图片或者点击换一张是否可以更换验证码,更换后的验证码是否可用

16.刷新页面是否会刷新验证码

17.如果验证码有时效性,需要分别时效性内和时效性外验证码的有效性

18.用户登录成功但是会话超时后,继续操作是否会重定向到用户登录界面

19.不同级别的用户,比如管理员和普通用户,登录系统后权限是否正确

20.页面默认焦点是否定位在用户输入框中

21.快捷键Tab和Enter等,是否可以正常使用

22.为空和输入空格字符串的校验是否一致

23.使用中文键盘输入字母和使用英文键盘输入字母传入后端的字符长度是否一致

24.成功登录后的session的时效设置

25.输入栏是否设置快速删除按钮

26.用户名和密码是否支持特殊字符和中文

27.浏览器的前进后退按钮,是否有效

28.成功登出后,点击浏览器回退按钮,是否可以继续操作系统

29.需求中是否有登录时间限制,如果有验证时间限制是否有效

30.验证不同登录方式的正确性:扫码、账号密码、第三方……

31.若支持手机号+验证码登录,验证码是否有时间限制,移动设备是否可以直接获取验证码

32.操作错误提示信息是否简单明了

 

兼容性测试:

1.  不同浏览器下,验证登录页面的显示以及功能正确性

2.  相同浏览器的不同版本下验证登录页面的显示以及功能正确性

3.  不同移动设备终端的不同浏览器下,验证登录页面显示以及功能的正确性

4.  不同分辨率的界面下,验证登录页面的显示以及功能正确性

 

安全性测试

1.  用户密码后台存储是否加密

2.  用户密码在网络传输过程中是否加密

3.  密码是否具有有效期,密码有效期到期后,是否提示需要修改密码

4.  不登录的情况下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面

5.  密码输入框是否不支持复制粘贴

6.  密码输入框内输入的密码是否都可以在页面源码模式下被查看

7.  用户名和密码输入框分别输入典型的“SQL注入攻击”字符串,验证系统的返回页面

8.  用户名和密码输入框分别输入典型的“XSS跨站脚本攻击”字符串,验证系统行为是否被篡改

9.  连续多次登录失败的情况下,系统是否会阻止后续的尝试以应对暴力破解

10.同一用户在同一终端的多种浏览器上登录,验证登录功能的互斥性是否符合设计预期

11.同一用户先后在多台终端的浏览器上登录,验证登录是否具有互斥性

12.是否可以记住密码,记住的密码保存是否加密,记住的密码是否有有效期,过了有效期后是否清空密码

13.是否支持第三方登录

14.密码的强弱性,复杂度校验

15.异地登录校验、更换设备登录校验、登陆信息异常是否考虑账户冻结停用、是否允许第三方平台存储密码

16.是否可以使用登录的api发送登录请求,并绕开验证码校验

17.是否可以用抓包工具抓到的请求包直接登录

18.截取到的token等信息,是否可以在其他终端上直接使用,绕开登录,token过期时间校验

19.登录错误后的提示是否存在安全隐患

 

性能压力测试

1.  单用户登录的响应时间是否小于3秒

2.  单用户登录时,后台请求数量是否过多

3.  高并发场景下用户登录的响应时间是否小于5秒

4.  高并发场景下服务端的监控指标是否符合预期

5.  高集合点并发场景下,是否存在资源死锁和不合理资源等待

6.  长时间大量用户连续登录和登出,服务器是否存在内存泄露

7.  输入内容校验是否加入了函数防抖

60.还款功能测试点

  • 功能:
  1. 正常还款流程
  2. 逾期还款
  3. 不同的还款账户
  4. 余额不足还款
  5. 弱网状态下,连续点击还款按钮
  6. 弱网状态,或系统不稳定,支付服务方未把支付结果返回给下单发起方(如果发生这种问题,结果是,钱扣了,还款状态未发生变化)
  7. 金额不输,为0,为负数
  8. 提前还款
  9. 第三方还款

 

  • 性能:
  1. 还款的响应时间是否过长

 

  • 用户体检:
  1. 系统提示是否容易理解
  2. 界面是否友好,输入框是否对齐,按钮大小是否适中,是否有错别字等

 

  • 安全性:
  1. 是否能防止SQL注入,防XSS攻击
  2. 还款金额是否会被拦截篡改
  3. 还款密码等敏感信息是否加密

 

  • 兼容性:
  1. BS架构的系统,要考虑不同浏览器的兼容性
  2. APP:考虑在不同分辨率,不同操作系统,不同类型的手机的兼容性

61.订单功能测试点

我们系统的订单生成的流程是这样子的,用户下单后,系统会在用户端和卖家端生成一个待付款的订单,同时在数据库也会生成一个待付款的订单;当用户付款之后,用户端显示待发货状态,卖家端显示已付款待发货状态,订单在数据库的状态为待发货,产品相应的库存量会减少,用户的账户金额减少相应的金额;当卖家发货后,用户端和卖家端的订单状态都显示为配送中,数据库中的订单状态也同时发生变化;当用户确认收货后,订单状态会显示为已完成,待评价状态,数据库中的订单状态也同时发生变化,买家支付的款项会打入到卖家的账户;当用户评论完后,订单状态显示为已结束,数据库中的订单状态也同时发生变化。这是一个正常的流程,我们测试的时候,要优先把这个流程测试通过。

然后再考虑用户的其他使用场景,比如:

  1. 用户下单后,取消订单;
  2. 下单后,一直不付款,检查订单超时不付款的场景下,会不会自动取消订单;
  3. 在订单快超时时,付款;
  4. 下单后,在不同的终端登录,一端取消订单,同时一端对该订单进行付款;
  5. 弱网状态下,多次点击提交订单按钮,检查是否会生成多个订单;
  6. 用户付款后,申请退款,买家端的订单状态为退款申请中,卖家端显示为退款审核;申请退款通过后,订单状态为已关闭状态,买家收到退还的金额;卖家拒绝退款,订单状态为待发货状态;卖家超时不处理退款申请,自动退款,订单自动设置为已退款状态,买家收到退还的金额;
  7. 当卖家发货后,买家申请退款,买家端的订单状态为退款申请中,卖家端显示为退款审核;申请退款通过后,订单状态为已关闭状态,买家收到退还的金额;卖家拒绝退款,订单状态为待发货状态;卖家超时不处理退款申请,自动退款,订单自动设置为已退款状态,买家收到退还的金额;
  8. 买家收货后,买家申请退款/退货,买家端的订单状态为退款申请中,卖家端显示为退款审核;申请退款通过后,订单状态为已关闭状态,买家收到退还的金额;卖家拒绝款/退货,订单状态为已确认收货状态;卖家超时不处理退款/退货申请,自动退款,订单自动设置为已退款状态,买家收到退还的金额;
  9. 买家长时间不确认收货,系统自动确认收货,系统自动设为好评,订单状态为已结束,卖家收到买家的货款;
  10. 收货后,超时不评论,系统自动设为好评,订单状态为已结束。
    这些是功能测试的场景,每个场景,我们都要检查数据库对应订单的数据变化。

 

用户体验

      1.订单界面是否整洁,清晰,文字大小是否适中,订单编号是否能复制;

      2.下单,取消订单,申请退款等功能是否有响应的提示,提示是否合理;

      3.超时时长是否有倒计时提示;

      4.只对订单的部分商品进行发货,订单里的商品发货状态是否分开展示;

     5.是否支持Enter,tab等快捷键。

 

安全性

  1. 使用Fiddler,检查是否能拦截篡改修改订单的信息。

 

兼容性

  1. web端,在不同的浏览器,比如:谷歌,IE,火狐,360上测试;
  2. app端,在主流的不同的机型,不同的分辨率,不同的操作系统的手机上进行测试,比如:xxx;

 

性能

  1. 多用户并发下单;
  2. 提交订单,取消订单,申请退款的响应时间。

 

可靠性:

 

  1. 多用户长时间运行提交订单功能。

 

 

 

 

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/55.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息