项目问题:
1:如何评价一个软件系统的质量,从哪些维度进行考虑?
答案:软件系统的质量要从以下的6个维度进行考虑
1、功能性:软件所实现的功能满足用户需求的程度,功能性反映了所开发的软件满足用户需求的程度,即用户要求的功能是否都全部实现了。
2、可靠性:也即软件除了满足用户需求之外,另外要求软件在发生故障时能继续运行程度。
3、易用性:它反映了软件与用户友善性,即用户在使用本软件的时候,是否方便。
4、效率:在指定的条件下,用软件实现某种功能,所需的计算机资源(包括时间)的有效程度,在完成功能的时,有没有资源浪费。
5、可维修性:可维修性反映了在用户需求或者软件环境发生改变时,对软件系统进行相应修改的容易程度。
6、可移植性:从一个计算机系统或者环境转移到另一个计算机系统或者环境的容易程度。
2:给你一个登录页面,一个水杯,一支笔,如何进行测试?
答案:
登录页面:
功能测试(Functiontest)
1、输入正确的用户名和密码,点击提交按钮,验证是否能正确登录
2、输入错误的用户名或者密码,验证登录会失败,并且提示错误的响应信息
3、登录成功后能否跳转到正确的页面
4、用户名和密码,如果太短或者太长,系统应该怎么处理
5、用户名和密码,中有特殊字符,和其他非英文的情况
6、记住用户名的功能
7、登录失败后,不能记录密码的功能
8、用户名和密码前后有空格的处理
9、密码是否以星号显示
界面测试(UItest)
1、布局是否合理,2个textbox和一个按钮是否对齐
2、textbox按钮的长度,高度是否符合要求
3、界面是否好看
4、图片、颜色、字体、超链接,是否都显示正确
性能测试(performancetest)
1、打开登录页面,需要几秒
2、输入正确的用户名和密码,登录成功后,跳转至新页面,需要几秒(按照2-5-8的原则)
3、能支持多少个用户同时登录
安全性测试(Securitytest)
1、用户名和密码是否通过加密的方式传输
2、用户名和密码的验证,应该是用服务器端验证,而不是单单在客户端通过javascript验证
3、用户名和密码的输入框,应该屏蔽Sql注入攻击
4、用户名和密码的输入框,应该禁止输入脚本(防止Xss攻击)
5、错误登录次数的限制(防止暴力破解)
可用性测试(Usabilitytest)
1、输入用户和密码后,直接按回车键(Enter键)是否可以直接登录
2、是否支付Tab键的顺序
兼容性测试(Compatibilitytest)
1、主流的浏览器下能否显示正常,并且功能正常(IE系列、Firefox、chrome,Safari等)
2、不同的工作平台是否能正常工作(Windows机器,Mac)
3、移动设备上是否正常工作(比如安卓、Iphone)
4、不同的分辨率
5、不同的浏览器大小(浏览器最大化,和非最大化)
水杯:
功能测试(Functiontest)
1、能否装水
2、除了装水之外,能否装其他的液体,比如装可乐,酒精
3、能否装多少ML的的水
4、杯子是否有刻度表
5、杯子能否泡茶、泡咖啡
6、杯子能否放冰箱、做冰块
7、杯子的材质是什么(比如玻璃、塑料、陶瓷)
界面测试(UItest)
1、外观好不好看
2、什么颜色
3、杯子的形状是怎么样的
4、杯子的重量是多少
5、杯子是否有异味
6、杯子的图案是否合理
性能测试(performancetest)
1、能否装的开水(泡茶)
2、能否装0度冰水
3、装满水后,放几天,是否会漏水
4、杯子内壁上的涂料是否容易脱落
5、杯子上的颜色是否容易褪色或者脱落
安全性测试(Securitytest)
1、制作杯子的材料是否有毒
2、放微波炉里转的时候,是否会爆炸,或者杯子是否会熔化
3、从桌子上掉到水泥地上是否会会摔碎
4、杯子是否长细菌
5、杯子是否有缺口,是否伤害嘴巴
6、杯子内壁上的材料,是否会溶解到水中
7、杯子破碎后,是否会对使用者造成伤害
可用性测试(Usabilitytest)
1、杯子是否容易烫手
2、杯子是否好端,好拿
3、杯子的水是否容易喝到
4、杯子是否有防滑措施
3:你们公司的测试流程是什么样的?
答案具体流程如下:
1、测试人员参加需求评审
2、编写测试计划
3、编写测试用例(TestCase测试用例需要评审)
4、测试环境的搭建
5、执行测试对缺陷进行跟踪验证
6、5轮左右测试结束
4:你在项目组中扮演一个什么样的角色
答案:我在项目担当软件测试工程师角色:
1、编写测试用例(TestCase)
2、执行测试用例
3、提交缺陷(到缺陷管理系统、比如禅道、bugzilla)
4、软件的回归验证测试
5、提交当日的工作测试记录
6、不同测试任务之间的交叉测试
5:给你一个项目你觉得应该怎么做?
答案:
1、从最初的阶段介入到需求,越早介入到需求对产品的业务了解的越透彻,能够测试出关于业务上更有价值的缺陷
2、保证软件产品质量手段有二种方式:评审和测试,多参与项目中各个阶段的评审工作
3、通过尽早测试、经常测试、和不同工程师之间的交叉测试,提高软件测试的质量
4、在测试过程中要提交《测试进度报告》(1-2天提交1次,数据来源于缺陷管理系统)告知项目组中所有项目成员的项目测试进度情况
6:你们的测试组长都做哪些事情?
答案:
1、制定测试计划
2、统合软件测试用例
3、分配并指导测试工程师具体测试工作
4、与开发人员的沟通协调
5、编写项目的《进度测试报告》和《总结性测试报告》(系统测试报告)
7:你在项目中写过测试计划吗?
写过。测试计划中包含哪些5W1H的要素:
Why:为什么要进行这些测试
What:测试哪些方面内容,不同阶段的工作内容
When:测试不同阶段的起始时间
Where:响应的文档、缺陷存放的位置,测试环境等
Who:相关的人员组成,安排哪些测试人员进行测试
How:如何去做,包括使用哪些测试工具和测试方法
8:你们的项目做了多久?测试了多久?
答案:正常的一般4个月左右的时间,测试的执行时间1.5个月左右(不包括前期的参加需求评审和编写测试计划和编写测试用例时间)。
9:你们的项目组有有多少人?
答案:大约十多个人,,包括:java开发2个、Web前端开发2个、安卓开发1个、ios开发1个、产品经理1个,和UI设计1个,测试人员2个。
10:你们一般测试几轮?
答案:5轮左右。
11:你们开发测试比例是多少?
答案:1:4(测试人员:开发人员)
12:遇到项目延期吗?你们怎么处理的?
答案:引起项目的延期最主要的原因一般是用户需求频繁的变更,或者是在项目后期用户又提出增加新的需求。
新的需求需要放在下一个版本中解决发布。
13:jmeter工具你是如何使用的?
答案:jmeter是基于接口层面的测试工具,它的使用步骤如下:
1、增加线程组
2、增加HTTP请求
3、添加查看结果树
14、你们项目一般如何跟进进度,有过项目延期吗?
答案:
1、传统的项目,一般是项目经理通过Project跟踪项目进度
2、敏捷项目:通过每日的站立会议(会议不超过15分钟)
3、测试人员跟踪测试进度是通过《测试进度报告》跟踪
15、你一天能写多少测试用例?
答案:一天只能写50-80条,平均每条用例5-6条步骤
16、你负责的模块写多少条测试用例?
答案:这个要根据模块的复杂程度,最简单的模块20条,多的50-60条测试用例
17、你是如何进行测试的?
答案:我在项目初期参与需求评审熟悉需求业务,编写测试用例,参加测试用例评审,对缺陷进行跟踪验证,执行回归测试。
18、你一天能执行多少条测试用例?
答案:大约50-80条测试用例。
19、你印象深刻的bug有哪些?
答案:
1、挑货网的平台在大量用户同时购买同一件商品,库存显示为负数。
2、豪康金服P2P平台,借款人还钱的时候,还款失败,是没有考虑到边界值测试。
3、上海市食药监项目,在查询文本框里输入单引号进行查询,在用户暴露出数据库的字段,而且暴露出该开发框架用Strus2开发框,是安全漏洞。
20:一般都评审哪些内容,请你举例说明?
答案:《需求文档》、《测试用例》和一些重要的《设计文档》是一定需要评审的。
21:测试用例如何划分优先级?
答案:测试用例一般分为以下几个等级:
P0:核心功能的测试用例(冒烟测试smoketesting),确定此版本是否可测的测试用例,此部分测试用例如果失败,会阻碍其他大部分测试用例的验证。
P1:高优先级的测试用例,最常执行已保证功能性是稳定的;最基本的功能测试,和重要的错误,边界测试。
P2:中优先级的测试用例,更全面地验证,功能的各个方面,异常测试,边界、中断、断网、容错、UI等测试用例
P3:优先级低的测试用例,不常常被执行,性能、压力、兼容性、稳定性、安全性、可用性。
22:你是如何做的需求评审?
答案:在参加需求评审会议之前,是要熟悉该次评审对象的业务,是带着提问题的角度去参加需求评审,而不是站在在培训者的角度参加需求评审。
是从分析和找问题的角度参加的。
23:讲解项目组共有多少条用例?
答案:测试用例是有项目模块的数量和复杂程度决定的,最简单的模块20条,多的60条测试用例。
24:你负责的项目发现了多少条bug?
答案:我在测试豪康金服P2P金融系统(前台PC端,后台PC端、安卓端、IOS端、M站)的时候,缺陷的总数量大约多(包括一些建议性的内容)。
你们测试的实际项目不肯能有这么多的bug,需要让学员自己动手做项目。
25:考虑哪些异常测试场景,举例说明?
答案:
1、环境异常:断网、断电、中断测试(比如在测试APP的过程中,来电话、收到短信、闹钟响)
2、重复提交
3、并发测试
4、交换测试(在测试过程中调用相机、分享功能)
等等
26、缺陷多怎么办?
导致软件缺陷的原因有很多,最主要的包括以下二点:
软件需求规格说明书编写不全面、不完整,不准确,而且经常修改,——遇到这样的情况产品经理重新确认需求
开发人员不能很好的理解需求规格说明书和沟通不足——需要产品经理对开发人员重新评审需求
另外对于软件测试人员来说,软件缺陷有群集现象(80%的问题是集中在20%的模块里面,如果某个模块问题较多,那么说明该质量较差,该模块可能有更多的问题暂时未被发现),所以对模块哟啊进行更深入、更充分的测试。
27、和以及、、、表示什么错误?
答案:
:找不到网页
:服务器错误
:网关错误
:网关超时
:重定向
:正常
28:缺陷的流程,知道状态是如何流转的,每个状态是由谁修改的?
1、激活(测试人员做)——确认(开发确认)——已解决(开发人员)——关闭(测试人员)
2、激活(测试人员)——拒绝修改(开发人员)
3、激活(测试人员)——确认(开发确认)——已解决(开发人员)——激活(测试)——确认(开发人员)——已解决(开发人员)——关闭(测试人员)
29:Web测试与APP测试的区别?
答案:Web测试与APP测试在流程和功能测试上测试没有区别。
Web是B/S架构,APP是C/S架构,Web测试需要操作系统和浏览器兼容性测试,APP测试需要考虑系统安装、卸载、升级、自动更新、APP对于各种机型的适配性测试(借助于云测试技术),各种干扰性测试(比如中断,来电、短信、关机、重启)、弱网络测试(移动数据,Wifi)以及电量测试、流量测试。
30:版本配置管理工具有哪些?
答案:SVN和Git
31:Fiddler怎么抓包的?
答案:
1、启动Fiddler
2、打开浏览器输入要测试网址:比如输入: