一个新的项目下来,要经过那些测试阶段才能正式发布
软件测试一般分为4个阶段:单元测试、集成测试、系统测试、验收测试。
Web测试和App测试有什么区别?
他们的主要区别在于具体测试的细节和方法有区别,比如:性能测试,
在WEB测试只需要测试响应时间这个要素,在App测试中还需要考虑流量测试和耗电量测试。
如何编写测试用例
1、用例编号:这个编号可以按照1、2、3编号,也可以根据每个模块的名称编号,但记得一定要唯一
2、用例标题:这个标题一定要提炼出用例步骤的关键字,如登录-用户名为空
3、预置条件:这个就是标明执行操作的前提条件
4、操作步骤:执行过程的详细步骤
5、预期结果:根据执行测试产生的期结果
6、用例级别:标明测试用例的级别,方便用例执行的顺序,以及发现BUG时,修复的优先级
常见软件Bug严重等级怎么分类?
- 紧急(一级):系统容易崩溃;功能设计与需求严重不符;内存泄漏;严重的数值计算错误;系统无法登陆;循环报错,无法正常退出。
- 严重(二级):
通常表现为:影响系统功能或操作,主要功能存在严重缺陷,但不会影响到系统稳定性。 - 一般(三级)
通常表现为:界面、性能缺陷。 - 轻微(四级)
通常表现为:易用性及建议性问题
功能测试常见的测试方法
-
页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。
-
相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。
-
检查按钮的功能是否正确:如update, cancel, delete, save等功能是否正确。
-
字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.
-
字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.
-
标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.
-
中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.
-
检查带出信息的完整性: 在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致
-
信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.
-
检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.
-
检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.
-
检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.
-
重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。
-
检查多次使用back键的情况: 在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.
-
search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.
-
输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.
-
上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。
-
必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*
-
快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。
-
回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错。
手机软件的测试主要有哪些方面去测试,性能测试用什么去测试好?
https://www.zhihu.com/question/21588174
app的性能测试主要是指app运行操作过程当中,监测当前手机系统的一些性能指标,
以此来确定app的性能是否会影响到用户的体验。
app的性能指标主要包括以下几个:CPU、内存、启动速度、电量、流量以及流畅度。
在做app性能测试时,经常用到的性能测试工具主要有GT工具(腾讯团队开发)、 emmage 工具(网易团队开发)。
5.adb devices连接不上设备
adb install提示未授权
6.做过那些兼容性测试
1.云测:针对App兼容性测试
2.Web:自动化测试 RobotFrameWork
7.是否了解package与activity的定义和关系
Pyhotn是一种很依赖第三方函数包(package)的程序语言
activity是视图
使用monkey命令做稳定性测试
-p
用此参数指定一个或多个包(Package)。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP;
–ignore-crashes
用于指定当应用程序崩溃时(Force & Close错误),Monkey是否停止运行。如果使用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成;
–ignore-timeouts
用于指定当应用程序发生ANR(Application No Responding)错误时,Monkey是否停止运行。如果使用此参数,即使应用程序发生ANR错误,Monkey依然会发送事件,直到事件计数完成;
–ignore-security-exceptions
用于指定当应用程序发生许可错误时(如证书许可,网络许可等),Monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,Monkey依然会发送事件,直到事件计数完成。
-v
用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示0,1,2分别以-v,-v -v,-v -v -v 表示,建议多以level 2记录测试日志:
接口请求的六种常见方式详解(get、post、head等)
1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)
2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改
3、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)
4、Head 与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)
5、Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)
6、opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)
开发环境、生产环境、测试环境的区别
开发环境:开发环境时程序猿们专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是最基础的环境。开发环境的分支,一般是feature分支。
生产环境: 生产环境是指正式提供对外服务的,一般会关掉错误报告,打开错误日志,是最重要的环境。部署分支一般为master分支。
测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产服务器上,是开发环境到生产环境的过度环境。
软件测试怎么去介绍一个项目的测试流程?
1、对项目进行基本介绍
2、说明自己负责测试的模块
3、针对部分模块展开进行说明
我们项目后台订单处理主体流程是:
商家确认订单–发货–判断用户是否是线下支付–如果线下支付,就先确认收款,再进行收货;如果是线上支付,直接进入收货—订单处理结束—后续有售后和评价相关流程。
如何成为一个优秀的测试人员
1、逻辑思维很重要
2、灵活的工作方式
3、基础很重要
4、懂一些代码
5、进阶高级测试
6、了解测试市场的发展
如果项目上线出现bug,测试人员该怎么办?
追查原因及处理方法:这个BUG出现的原因是什么。这有分为几种情况:
1)测试环境无法重现:可能是线上的环境造成的BUG或者是测试环境无法模拟的情况。
解决方法:尽量完善测试方法、尽量模拟测试环境、增加线上测试。
2)漏测:
a.测试用例裁剪过度:错误预估优先级或者时间过于紧迫裁剪了用例
解决方法:在后续版本或者其他项目启动时重新评估测试时间,要求专家介入对优先级进行评估,避免此类事件再次发生。
b.测试用例执行期间遗漏:由于测试人员疏忽造成测试用例执行遗漏。
解决方法:调查该名测试人员的整个测试过程的工作情况,并随机抽测其他模块,对该名测试人员进行综合评估,给出结论,是因为偷懒漏测,还是因为负责模块过多漏测,还是有其他原因,对该名测试人员发出警告,对相关测试主管,项目经理,产品经理发出警告。
c.测试用例覆盖不全:由于用例评审的不严格造成的;中途需求变更造成的;由于某些其他因素造成的。
解决方法:找到原因,并进行记录,在以后的项目或者下一版本重点关注。
最最重要的:补测试用例!
到底什么是软件测试?
咱们来看看软件测试的职业定义:在软件生产过程中,手工或者利用软件测试工具(自动)有计划地检查程序代码和用户文档,检查软件功能和软件性能,
来发现软件产品中存在的问题(bug),并追踪和验证问题(bug)的处理。
测试是为发现错误而执行一个程序或者系统的过程,测试是为了证明程序有错,而不是证明程序无错误。
测试用例的基本介绍
1.什么是测试用例?
测试用列(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。
2.测试用例的要素
测试用例的标题、测试思路、预设条件、步骤、预期输出
一个好的测试用例是一个不熟悉业务的人也能依据用例来很快地进行测试。
评价测试用例的标准:
用例表达清楚,无二义性
用例可操作性强
用例的输入与输出明确,一条用例只有一个预期结果
用例的可维护性好
用例对需求的覆盖率高
暴露程序bug的能力强
如何测试一个web网站?
UI用户界面测试,主要检测前端页面展示效果的,测试关注的点有如下几方面:
各页面的风格是否统一
各页面的大小是否一致;同样的LOGO图片在各个页面中显示是否大小一致;页面及图片是否居中显示 、各页面的title是否正确
栏目名称、文章内容等处的文字是否正确,有错别字或乱码;同一级别的字体、大小、颜色是否统一
提示、警告或错误说明应该清楚易懂,用词准确,摒弃模棱两可的字眼
切换窗口大小,将窗口缩小后,页面是否按比例缩小或出现滚动条;
各个页面缩小的风格是否一致(按比例缩小或出现滚动条,不可二者兼有)
父窗体或主窗体的中心位置应该在对角线交点附近;子窗体位置应该在主窗体的左上角或正中;多个子窗体弹出时应该依次向右下方偏移,以显示出窗体标题为宜
按钮大小基本相似,忌用太长名称,免得占用太多的页面位置;避免空旷的页面放置很大的按钮;按钮的样式风格要统一;按钮之间的间距要一致
页面颜色是否统一;前景色与背景色搭配合理协调,反差不宜太大,最好用深色或刺目的颜色
若有滚动信息或者图片,将鼠标放置其上,查看滚动信息或图片是否停止
导航处是否按栏目相应的级别显示;导航文字是否在同一行显示
所有的图片是否被正确装载,在不同的浏览器,分辨率下图片是否能正常显示(包括位置、大小)
文章列表页,左侧的栏目是否与一级、二级栏目的名称、顺序一致
调整分辨率验证页面风格是否有错误现象
鼠标移动到Flash焦点特效上是否实现,移出焦点特效是否消失
安全测试有哪些测试方法和手段
目前有许多种的测试手段可以进行安全性测试,安全测试方法分主要为三种:
①静态的代码安全测试:主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安 全漏洞。
静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决潜在的安全问题。
而正因为如此,静态代码测试比较适用于早期的代码开发阶段,而不是测试阶段。
②动态的渗透测试:渗透测试也是常用的安全测试方法。是使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。
这种测试的特点是真实有效,一般找出来的问题都是正确的,也是较为严重的。但渗透测试一个致命的缺点是模拟的测试数据只能到达有限的测试点,覆盖率很低。
③程序数据扫描。一个有高安全性需求的软件, 在运行过程中数据是不能遭到破坏的,否则会导致缓冲区溢出类型的攻击。
数据扫描的手段通常是进行内存测试,内存测试可以发现许多诸如缓冲区溢出之类的漏洞,而这类漏洞使用除此之外的测试手段都难以发现。
例如,对软件运行时的内存信息进行扫描,看是否存在一些导致隐患的信息,当然这需要专门的工具来进行验证(比如:HP WebInspect、IBM Appscan和Acunetix Web Vulnerability Scanner)
什么是并行测试?
Selenium中的并行测试是一个在不同环境中同时运行多个测试的过程。并行执行测试的主要目的是减少自动化浏览器测试的总时间和工作量,同时通过使用Selenium Grid确保产品的质量。
测试结束的标准主要有哪些?
1.测试用例执行比例,一般功能测试用例全部执行完毕,非功能测试用例执行达95%以上
2.测试缺陷修改数量,一般及以上的用例全部修复并验证通过,已修复缺陷占比95%以上
3.测试覆盖需求程度,测试覆盖全部的需求且达到上线的要求或标准
软件测试面试——如何测试一个杯子
如果让我回答这个问题, 我会从软件测试的各种不同方法来联想, 具体如下:
功能测试
能否装水,
除了装水, 能否装其他液体。比如可乐,酒精
能装多少ML的水
杯子是否有刻度表
杯子能否泡茶,跑咖啡
杯子是否能放冰箱,做冰块
杯子的材质是什么(玻璃,塑料,黄金做的)
界面测试
外观好不好看。
什么颜色
杯子的形状是怎么样的。
杯子的重量是多少
杯子是否有异味
杯子的图案是否合理
性能测试
能否装100度的开水
能否装0度冰水
装满水,放几天后,是否会漏水
杯子内壁上的涂料是否容易脱落。
杯子上的颜色是否容易褪色或者脱落
被一个大人压下,是否会碎
安全性测试
制作杯子的材料,是否有毒
放微波炉里转的时候,是否会爆炸, 或者杯子是否会熔化。
从桌子上掉到水泥地上是否会摔碎。
杯子是否容易长细菌
杯子是否有缺口,会划坏嘴巴
杯子内壁上的材料,是否会溶解到水中
杯子破碎后,是否会对使用者造成伤害
可用性测试
杯子是否容易烫手
杯子是否好端,好拿
杯子的水是否容易喝到
杯子是否有防滑措施
购物车模块如何进行测试?
购物车测试可以参考如下思路展开:
•界面显示设计
•购物车功能
–购物车基本功能
–购物车业务关联
•购物车非功能
– 性能
– 兼容性等
购物车主界面
购物车迷你界面
一. 验证购物车界面设计
界面设计验证点如下:
1.界面设计是否美观,显示是否正常
2.界面布局是否合理
3.购物车入口数量设计是否合理(购物车需要引导用户付款,入口设计需要有此体现)
4.购物车图标链接显示是否明显
5.鼠标悬停购物车图标,是否有迷你购物车界面,显示是否正常
二. 购物车功能测试
功能测试可以分为两个部分,验证内容如下:
• 1.购物车基本功能
– 添加商品
1.是否能够添加商品
2.添加单个商品数量是否有上下限
3.添加商品种类是否有上下限
4.添加同类型商品的不同规格商品显示是否分条显示
5.加入购物车商品排序是否合理
• 删除商品
1.能否删除单类商品
2.是否有快速删除多种商品方式(全选,删除)
3.删除商品是否有确认提示
• 跳转商品详情
1.跳转商品图片显示是否正常
2.跳转商品链接显示内容是否完整,是否过长
3.点击图片或者链接是否能够跳转商品详情
•编辑商品数量
1.是否有通过+ -编辑商品数量方式
2.是否有通过输入直接编辑商品数量方式
3.编辑商品数量是否有上下限
4.编辑商品数量是否考虑库存情况
• 显示商品数量,金额,总额等
1.商品加入购物车内是否和原价格一致
2.商品数量显示是否正确
3.选择商品总数是否正确
4.选中商品价格总额是否正确
•进入商品购物或结算
1.购物车是否有进入购物链接
2.购物车是否有进入结算链接
• 2.购物车业务功能
– 购物车与用户模块关联
1.未登录用户是否可以添加商品到购物车
2.未登录用户添加商品到购物车,登录后是否将商品合并到用户购物车
3.若不允许未登录用户添加商品到购物车,点击加购物车后是否有登录提示
4.用户有会员折扣时,购物车内商品价格是否对应
• 购物车与商品订单模块关联
1.加入购物车商品有价格调整,购物车内商品价格是否跟随变化
2.加入购物车商品,库存变化时购物车是否有对应调整
3.购物车商品确认订单后是否会从购物车清除
4.订单价格是否与购物车内一致
• 购物车与优惠活动模块关联
1.商家发放用户优惠券购物车对应变化
2.商品满减活动,购物车价格对应变化
三. 购物车非功能
购物车非功能测试可以从多方面进行考虑,举出部分进行说明,验证内容如下:
• 1.性能
1.进入购物车页面 消耗时长
2.添加商品到购物车时长
3.进入购物车结算时长
4.对购物车页面内容变更,页面内容更新速度。(增加某个购买数量,页面对应显示更新速度)
• 2.兼容性
1.不同设备上显示和使用是否正常
2.不同浏览器显示和使用是否正常
如何做高并发测试?
1、不同省份、不同运营商CDN节点性能 此部分可以采用典型压力测试的方案。
2、核心机房BGP网络带宽 此部分重点在于测试各运营商BGP网络可靠性、实际速率等,一般采用smokeping、IxChariot等工具。
3、各类硬件设备性能 此部分一般采用专业的网络设备测试工具。
4、各类服务器(Web服务器、应用服务器、缓存服务器等)并发性能、分布式处理能力 此部分可以采用压力测试方案及工具。
6、业务系统性能 此部分可以采用业务系统压力测试方案。
7、数据库处理性能 大部分互联网公司都对数据库作了定制改造以满足业务需要,此部分测试需要结合业务系统进行测试,以获取核心业务场景下数据库的TPS/QPS,尤其是测试定制改造的地方。
8、支付渠道接口及分流测试 此部分相对而言可能是最大的瓶颈所在,也是互联网公司们无法完全掌控的地方,只能协调银行总部改造支撑。
另外还涉及备份方案、容灾方案、业务降级方案的测试。这里指的业务降级方案,是基于“有损服务、柔性可用”的策略,为保证核心服务可用的前提下,对部分服务的质量降级处理。
简述负载测试与压力测试的区别。
压力测试(Stress Testing)
压力测试的主要任务就是获取系统正确运行的极限,检查系统在瞬间峰值负荷下正确执行的能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;
或者不停地向服务器发送请求;或一次性向服务器发送特别大的数据等。看看服务器保持正常运行所能达到的最大状态。
人们通常使用测试工具来完成压力测试,如模拟上万个用户从终端同时登录,这是压力测试中常常使用的方法。
负载测试(Volume Testing)
用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。例如,对于信息检索系统,让它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都开动。
在使整个系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。
软件产品首要满足的是功能需求
单元测试中设计测试的依据是用户需求规格说明书
九、一个测试工程帅应该具备哪些素质札技能?(能)
(说多少算多少)
1-掌握基本的测试基础理论
2-本着找出软件存在的问题的态度进行测试,不要以挑刺的形象出现
3-可熟练阅读需求规格说明书等文档
4-以用户的观点看问题
5-有强烈的质量意识
6-细心和责任心
7-良好的有效的沟通方式(与开发人员及客户)
8-具有以往的测试经验能够及时准确的判断出高危险区在何处
(十、软件测试员自身素质培养(能说多少算多少)
1-首先,应对软件测试感兴趣和对自己有自信,如果具备了这两点,那么在开发过程中不管遇到什么样的困难,相信一定能克服
2-善于怀疑,实际上没有绝对正确的,总有错误的地方,具有叛逆心理,别人认为不可能发生的事情,我却认为可能发生,别人认为是对的,我却认为不是对的.
3-打破沙锅问到底的精神,对于只出现过一次的Bug-定要找出原因,不解决誓不罢休.
4-保持一个良好的心情,否则可能无法把测试做好不要把生活中的不愉快的情绪带到工作中来.
5-做测试时要细心,不是所有的bug都能很容易找出,一-定要细心才能找到这些虫
6-灵活一些,聪明一点,多造一-些容易产生BUG的例子。
7-在有条件的情况下,多和客户沟通,他们身上有你所需要的.
8-设身处地为客户着想,从他们的角度去测试系统。
9-不要让程序员,以“这种情况不可能发生”这句话说服你,相反,你应该去说服他,告诉他在客户心理,并不是这样的
10-考虑问题要全面,结合客户的需求,业务流程和系统的架构等多方面考虑问题.
11-提出问题不要复杂化,这点和前面矛盾,如果你是一个新手,暂时不要管这点,因为最终将有你的小组成员讨论解决.
12-追求完美,对于新测试员来说,努力追求完美,这对你很好,尽管有些事情无法做到,但你应该尝试.
13-幽默感,能和开发小组很好的沟通是关键,试着给你的开发小组找一个bug杀手,或对他们说“我简直不敢相信,你写的程序居然到现在没有找到BUG窃听器“。