1.叙述测试流程
产品提出需求后,召开立项会谈论需求制定需求文档,开发根据文档进行软件编码,测试人员根据文档制定测试计划,并写出对应的测试用例。用例写完后,要开会进行用例评审,完善用例。开发提交代码进行冒烟测试,冒烟测试过程中发现bug 提交bug单,并对bug进行追踪,解决完之后关闭bug。最后将测试结果写到测试报告中
2.什么是软件测试,软件测试的目的与原则
1.软件测试(Software Testing),其经典定义或是标准定义:在规定的条件下对程序进行操作,以发现程序错误。
2.通俗来讲,就是通过“人工”或“自动化”的手段,来测试某个程序或系统,进而检验其是否满足规定的需求或是弄清预期结果与实际结果之间的差别
目的:发现软件的漏洞和缺陷,对软件质量进行评估,提升软件质量
原则:尽早原则,28原则,极端和边界原则,确认原则,回归关联原则
3.目前主要的测试用例设计方法是什么?
等价类、边界值、判定表、场景法、错误推测法
4.给你一个网站,你如何测试?
首先,查找需求说明、网站设计 等相关文档,分析测试需求。
制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
--------设计测试用例
功能性测试:
可以包括,但不限于以下几个方面:
链接测试:链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。
提交功能的测试。
多媒体元素是否可以正确加载和显示。
多语言支持是否能够正确显示选择的语言等。
界面测试:
可以包括但不限于一下几个方面:
页面是否风格统一,美观
页面布局是否合理,重点内容和热点内容是否突出
控件是否正常使用
对于必须但为安装的空间,是否提供自动下载并安装的功能
文字检查
性能测试:
一般从以下两个方面考虑:
压力测试;负载测试;
数据库测试:
要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
1 基本的登录功能的检查
2 是否存在溢出错误,导致系统崩溃或者权限泄露
3 相关开发语言的常见安全性问题检查,例如 SQL 注入等。
4 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
兼容性测试:根据需求说明的内容,确定支持的平台组合:
浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性
--------开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理
--------体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
--------定期评审,对测试进行评估和总结,调整测试的内容。
5.软件的安全性应从哪几个方面 去测试?
软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
用户认证安全的测试要考虑问题:
明确区分系统中不同用户权限
系统中会不会出现用户冲突
系统会不会因用户的权限的改变造成混乱
用户登陆密码是否是可见、可复制
是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
系统网络安全的测试要考虑问题
测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
模拟非授权攻击,看防护系统是否坚固
采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,
现在最常用的是 NBSI 系列和 IPhacker IP )
采用各种木马检查工具检查系统木马情况
采用各种防外挂工具检查系统各组程序的外挂漏洞
数据库安全考虑问题:
系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这
个系统的功能实现有了障碍)
系统数据可管理性
系统数据的独立性
系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
6.黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
一、黑盒功能测试法
所谓黑盒功能测试法,就是把要测试的软件看成一个黑盒子,不管其内部结构如何以及用什么算法实现需求提供的功能,而是按照需求的功能化要求,设计相应的测试用例,包括测试的输入数据与条件设置和所预期的软件运行输出结果,通过软件运行后所给出的输出(包括字符形式的输出与图象输出)与所预期的结果进行人工或者自动化比较,来验证被测试软件是否能给出正确的结果,从而判断该软件是否满足功能需求。
优点:
(1) 能最直观、最直接地反映出所设计的软件是否满足需求;
(2) 即使没有任何测试工具支援,也能靠人工测试的方法完成;
缺点:
(1) 难以找出某些特殊类型的错误。例如: 当对应于某组输入该被测软件并不提供任何输出信息时,可能只是改变了某种工作状态,如果其中的源代码处理部分有错误,就比较难找出来;
(2) 无法确定哪些测试用例有效或者无效 (所谓无效,并不是说单独使用某个测试用例时不能收到任何测试效果,而是在于它和前面已经使用过的测试用例一起使用时,毫无贡献,只是重复了前面的测试用例已经完成的测试);
(3) 具有无可避免的盲目性。当软件被修改后,由于不知道哪些测试用例能测试到被直接修改过的模块或者受修改过的模块影响的模块,于是只好将所有测试用例再从头运行一遍,而且是动态运行,非常费时费力。
二、白盒结构测试法
与黑盒子功能测试方法相反,白盒结构测试法不管所被测试的软件是否满足需求,是否实现了所设计的功能,而只注重该软件内部的结构,以便设计足够多的测试用例,使得百分百或者尽可能多的程序组成要素能被测试到最少一次,从而尽可能地将其中的软件错误暴露出来。
优点:
(1) 能够找出许多用功能测试方法找不出来的软件错误;
(B) 可以在整个软件系统还未完成之前就分别对各个单元进行测试;
(C) 可以通过测试用例的有效性分析而实现测试用例的最小化,以便大大地缩短软件修改后的回复测试时间和费用;
(D) 可以同时进行内存泄漏分析;
(E) 可以同时进行分支执行频度分析;
(F) 可以同时进行软件复杂度分析;
(G) 可以同时进行数据和变量分析;
(H) 可以同时进行性能分析;
(I) 可以同时进行动态运行错误定位与执行路径追溯等。
缺点:
(1)必须通过专门的测试工具来进行,需要在用户的软件的拷贝上进行插桩(插入纪录点)记录各分支/条件是否被执行过或者执行过多少次的信息;
(2)会使被测试的软件的运行速度减慢;
(3)需要增加被测试软件运行时的资源开销等
7.什么是并发和并行?
8.您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?
①尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。
②运用一些测试管理工具如TestDirector进行管理也是较有效的方法,
同时要注意在TestDirector中对BUG有准确的描述。
③在团队中建立测试人员与开发人员良好沟通中注意以下几点:
一真诚、二是团队精神、三是在专业上有共同语言、四是要对事不对人,工作至上
当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。
9.测试结束的标准是什么?
需求的覆盖率、⽤例的执⾏率和缺陷的遗留率达到质量⽬标。
通常来说:需求覆盖率和⽤例执⾏率需要达到100%
致命/严重的缺陷需要当天解决,轻微/⼀般遗留率不得超过30%
10.请你回答一下性能测试有哪些指标,对一个登录功能做性能测试,有哪些指标?
从外部看,主要有
1、吞吐量:每秒钟系统能够处理的请求数,任务数
2、响应时间:服务处理一个请求或一个任务的耗时
3、错误率:一批请求中结果出错的请求所占比例
从服务器的角度看,性能测试关注CPU,内存,服务器负载,网络,磁盘IO
对登录功能做性能测试
单用户登陆的响应界面是否符合预期
单用户登陆时后台请求数量是否过多
高并发场景下用户登录的响应界面是否符合预期
高并发场景下服务端的监控指标是否符合预期
高集合点并发场景下是否存在资源死锁和不合理的资源等待
长时间大量用户连续登录和登出,服务器端是否存在内存泄漏
怎么测出可同时处理的最大请求数量
可以采用性能测试工具(WeTest服务器性能),该工具是腾讯wetest团队出品,使用起来很简单方便,但测试功能相当强大,能提供10w+以上的并发量,定位性能拐点,测出服务器模型最大并发
11.如何测试一个纸杯?
测试项目:纸杯。
需求测试:查看纸杯说明书是否完整。
界面测试:观察纸杯外观,测试表面是否光滑、手感是否舒适。
功能测试:用纸杯装水,观察是否漏水。
安全测试:纸杯是否有毒或细菌。
可靠性测试:从不同高度摔下来,观察纸杯的损坏程度。
易用性测试:用纸杯盛放开水是否烫手,纸杯是否易滑、是否方便饮用。兼容性测试:用纸杯分别盛放水、酒精、饮料、汽油等,观察是否有渗漏现象。
可移植性测试:将纸杯放在温度、湿度等不同的环境中,查看纸杯是否还能正常使用。
可维护性:将纸杯揉捏变形,看其是否能恢复。
压力测试:用一根针扎在纸杯上不断增加力量,记录多大压强时针能穿透纸杯。
疲劳测试:用纸杯分别盛放水、汽油放置24小时,观察其渗漏情况(时间和程度)。
跌落测试:纸杯(加包装)从高处落下,查看可造成破损的高度。
震动测试:纸杯(加包装)六面震动,评估它是否能应对恶劣的公路/铁路/航空运输等。
测试数据:编写具体测试数据(略),其中可能会用到场景法、等价类划分法、边界值分析法等测试方法。
期望输出:期望输出需要查阅国际标准及用户的使用需求。
用户文档:使用手册是否对纸杯的用法、使用条件、限制条件等有详细描述。
说明书测试:查看纸杯说明书的正确性、准确性及完整性。
12.购物车功能怎么进行测试?
13.对于有系统大量并发访问,你会如何做测试,有什么建议
一般而言,整体测试策略是:先针对部分系统进行性能及压力测试,得到各部分的峰值处理性能;再模拟整体流程测试,此时倒不用按照峰值跑,重点测试整体业务流程及业务预期负荷。
在定义好各部分的测试策略后,具体的工具使用选择倒不是主要问题。
1、不同省份、不同运营商CDN节点性能
此部分可以采用典型压力测试的方案。
2、核心机房BGP网络带宽
此部分重点在于测试各运营商BGP网络可靠性、实际速率等,一般采用smokeping、IxChariot等工具。
3、各类硬件设备性能
此部分一般采用专业的网络设备测试工具。
4、各类服务器(Web服务器、应用服务器、缓存服务器等)并发性能、分布式处理能力
此部分可以采用压力测试方案及工具。
6、业务系统性能
此部分可以采用业务系统压力测试方案。
7、数据库处理性能
大部分互联网公司都对数据库作了定制改造以满足业务需要,此部分测试需要结合业务系统进行测试,以获取核心业务场景下数据库的TPS/QPS,尤其是测试定制改造的地方。
8、支付渠道接口及分流测试
此部分相对而言可能是最大的瓶颈所在,也是互联网公司们无法完全掌控的地方,只能协调银行总部改造支撑。
另外还涉及备份方案、容灾方案、业务降级方案的测试。
这里指的业务降级方案,是基于“有损服务、柔性可用”的策略,为保证核心服务可用的前提下,对部分服务的质量降级处理。
14.简述负载测试与压力测试的区别。
性能测试分为两种维度:访问时间和并发量;
负载测试是从并发量维度出发,不断增加并发量的情况下,系统的性能指标;
压力测试是从访问时间维度出发,在并发量一定的情况下,不断增加连续访问的时间,系统的性能指标;
压力测试关心的几个指标
15.假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。题是如何只用这2个水壶从池塘里取得3升的水。
第一步:先取来6升水,倒进5升桶的水桶里,即得到6升桶里余下的1升水;
第二步:把5L桶清掉,把取到的1升水放进5升的水桶里保留不动,然后再取6升水,倒进5升的水桶里,6升的桶得到的是2升水,把5L桶清掉,存放这2升水;
第三步:5升水桶有2升水.再取6升水,倒进5升水桶里,原有2L升+3升=5升,这时6升-3升=3升,5升就没用了,要的就是6升里余下的这3升水了.
网友评论