公司测试的流程是什么?
需求评审
分析需求,编写测试用例
测试用例评审
执行测试用例
编写BUG单,提交BUG
回归测试,BUG追踪与管理
总结,编写测试报告
软件的概念是什么?
计算机系统中与硬件相互依存的一部分,它是包括程序、数据以及文档的完整集合。
你对软件测试的定义是什么?
是软件质量保证的一种手段,有计划有组织的,软件测试不是万能的,不可能发现全部缺陷,具有局限性,它的目的是验证被测对象是否实现用户需求,弄清实际结果和预期结果的差异。
你怎么定义是不是bug?
软件没有实现产品说明书所描述的功能
软件实现了产品说明书描述不应有的功能
软件执行了产品说明书没有的操作
软件没有实现产品说明书没描述但应该实现的功能(用户体验相关)
从软件测试员的角度看来看,软件难以理解。不易运用、运行缓慢或者最终用户认为不对的
Bug的类型有哪些?
Bug,由代码编写错误导致的功能问题
Defect,缺,实现与需求不一致
Fault,故障,由于环境系统问题引起运行失败
Error,错误,语法错误,逻辑错误,不易发现
软件的bug级别有几种?
微小的,一些小问题,错字,文字排版整齐等
一般的,不太严重的问题,功能模块部分丧失,提示信息不准确等
严重的,严重错误,功能模块和特性没有实现,主要功能部分丧失等
致命的,造成系统崩溃,数据丢失等,死机
软件的bug状态有哪些?
激活状态-----问题没解决
测试人员新报告的缺陷或者验证后缺陷仍然存在
已修正状态------开发人员针对缺陷
修正软件后已解决问题或已通过单元测试
关闭状态------测试人员经过验证后,确认缺陷不存在之后的状态
遗留状态------此次版本升级不修改,遗留到下一个版本修改
非错问题------就是此问题不是一个bug
你对软件质量是怎么定义的?
软件质量就是软件与明确和隐含的定义的需求相一致的程度
软件质量的特性有哪些?
功能性、可靠性、效率、易用性、可维护、可移植
软件的生命周期?
需求分析--------可行性分析-------概要设计-------详细设计------编码实现--------调试和测试---------软件验收和应用-------维护升级-------废弃
软件测试的目的?
测试的目的不仅仅是为了发现软件缺陷和错误,而且也是对软件质量进行度量和评估,以提高软件的质量
软件测试的原则?
测试证明软件存在缺陷
不可能执行穷尽测试,基于风险的测试时必须的
测试应该尽早启动,尽早接入
缺陷存在集群现象(82原则)
杀虫剂悖论
不同的测试活动依赖于不同的测试背景
不存在缺陷的谬论
基于上下文不断调整测试策略方式方法
测试分为哪几个阶段?
单元测试,集成测试,系统测试,验收测试
如何做好测试计划?
5W原则
What 明确测试什么
Why 明确测试目标
When 明确项目开始时间结束时间
How 明确测试方案
Where 明确资料的位置
测试执行的步骤是怎么样的?
部署测试环境-----对测试用例进行分类-----执行测试用例------记录测试结果,对缺陷进行分级分类--------反馈缺陷并跟踪直至缺陷关闭
测试用例是怎么设计的?
对需求进行模块化分解使用科学有效的设计方法
测试计划包含哪些内容?
概述----测试环境-----测试规划----测试策略---测试进度安排-----测试风险分析-----风险规避
测试方案包含哪些内容?
方案版本及时间
编写目的
编写人员
测试用例
测试报告包含哪些内容?
测试背景说明
测试范围说明
测试环境说明
测试方法说明
测试结果结论
质量或风险评估
BS和CS架构有什么区别?
B/S架构是Brower/Sever的缩写 浏览器服务器架构 例如:慕课网站
C/S架构是Client/Sever的缩写 客户端服务器架构 例如:杀毒软件
软件测试的分类?
按开发阶段划分:单元测试,集成测试,系统测试,验收测试
按照测试技术划分:白盒测试,灰盒测试,黑盒测试
Bug的生命周期?
发现bug---提交bug---指派bug---研发确认bug---研发修复bug---回归验证bug----是否通过验证----关闭bug
你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别和联系。
测试类型有:功能测试、性能测试、界面测试
功能测试在测试工作中占有比例最大,功能测试也叫黑盒测试。
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。
区别在于,功能测试关注产品的所有功能,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注产品整体的多用户并发下的稳定性和健壮性。界面测试则关注与用户体验相关内容,用户使用该产品的时候是否已用,是否易懂,是否规范(用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)。做某个性能测试的时候,首先它可能是个功能点,首先要保证她的功能是没有问题的,然后再考虑性能的问题。
你们怎么确保用例覆盖率,确保不重复?
利用判定表法的思想,先穷举,再挑代表。然后案例评审时候,产品经理,开发组长,测试组长,还有对应模块的开发负责人也会把关,可以咨询他们的意见,确保案例覆盖完全,又没有多余的案例
数据库查找两个表
select 列1,列2 from 表1,表2 where 表1.列=表2.列
左联结和右联结的区别?
左联结保留左边表所有数据,右边表只显示符合匹配条件的数据,没匹配的以空值表示;右联结保留右表的数据,左边表只显示符合匹配条件的数据,没有匹配的以空值表示
Linux查看文件用什么命令?
查看文件内容的命令有 more less head tail cat
Linux查看进程用什么命令?
查看进程:ps -ef | grep 进程号
Linux查看日志用什么命令?主要查看什么内容?
查看日志文件常用:less、view
主要查看程序运行的记录,比如支付失败,后台就有报错信息打印到.log日志文件中,就可以通过分析日志信息来初步定为问题。(补充:同时也去查询数据库,分析订单数据,查看支付状态等等
如何查找a.log日志文件的error字符串?
第一种方式:(建议说第一种方式)
cat a.log | grep error;
第二种方式:
1 less a.log;
2 /error;
Linux如何搭建测试环境?
1 通过winscp上传tomcat,MySQL安装包,JDK(Java开发环境工具包)到linux下
2 利用tar -zxvf解压缩包命令对jdk,tomcat,mysql进行解包、安装,再配置jdk环境变量。
3 把war包(web程序)放到tomcate指定目录webapps下,再启动服务器即可。(输入startup.sh的路径,直接回车即可运行)
视图是什么?
视图记录了一条SQL语句,当查询时才有数据返回。表就是一张具体的表。视图只能查询数据,表可以增删改查。
Tcp/ip协议有几层?端口在哪层?Ip协议在哪层?
网络接口层:负责接收和发送物理帧
网络层:负责相邻节点之间的通信
传输层:负责起点到终点的通信
应用层:提供诸如文件传输、电子邮件等应用程序
端口在传输层
Ip协议在网络层
http网页返回码代表什么意思?
101 请求者已要求服务器切换协议,服务器已确认并准备切换
200 服务器已成功处理了请求
303 请求者应当对不同的位置使用单独的get请求来检索响应时,服务器返回此代码
307 服务器目前从不同位置的网页响应请求,但请求者应当继续使用原有位置来响应以后的请求
400 服务器不理解请求的语法
401 次页要求授权
403 服务器拒绝请求
404 服务器找不到请求的网页
405 禁用服务器中指定的方法
500 服务器遇到错误,无法完成请求
503 服务器目前无法使用
性能测试要关注哪些点?
硬件资源指标和系统指标
资源指标:CPU使用率、内存使用率、网络宽带
系统指标:并发用户数、在线用户数、平均响应时间、事务成功率、超时错误率
Cookie和session的区别?
cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
session会在一定时间内保存在服务器上,当访问增多,会比较占用你的服务器性能,考虑到减轻服务器性能方面,应当使用cookie
单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie
Beta测试和alpha测试的区别?
Beta测试 是软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发通常不在测试现场
Alpha 测试 是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试
Get和post的区别?
(1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
(2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
(4) 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。换句话说,GET 请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过 POST 请求实现,因为在注解提交之后站点已经不同了
当开发人员说不是bug时你如何应对?
开发人员说不是BUG,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动。3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的一句是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是BUG,我也只是建议的方式写进测试文档中,如果开发人员不修改也没有大问题。如果不是BUG的话,一定要坚持自己的立场,让问题得到最后的确认
工作非常努力了,还是没完成上级交代的任务,怎么办?
要分析原因,如果是能力不够的愿意,要表示愿意且一直在提高能力,希望领导谅解
如果是因为领导安排的任务过多,则要委婉的表达自己的能力有限,不希望自己的能力影响项目的进度,另外也请领导多给点提高效率的建议
如果领导分配你的任务超出负荷,领导高估了你的能力,怎么办?
首先表达态度,态度上愿意通过加班来完成,还可以请求测试同事支援,让组长协调。
高估了能力,能力可以在工作中通过自己的努力来达到领导的要求。
总而言之基本的思路是态度要端正。
不能直接拒绝任务。但也同时表达万一做不好还请领导包容。
假设你是组长,团队中有一个员工无法按时完成交付的任务,你如何处理?
首先先检讨自己是否任务安排超过了这个员工的能力。
如果没有超过,首先表示关心身体和状态,了解未及时完成任务的原因,如果原因是客观原因则一起加班跟员工来完
成任务。
如果是态度原因,则指出利害关系,责令其通过加班来完成。
如果因为你的错误导致工作发生问题,你怎么办?
首先要表达在过去的工作中从未发生过类似事情,因为自己工作态度还是很端正的。
万一因为自己的错误导致工作发生问题,首先应该把问题上报给领导,争取把问题的影响降到最低程度。
给你一个模块测试,只有一个星期的时间,你如何高效地完成?
在有限的时间里,明确需求的情况下,制定工作计划,把每天任务细分,先保证重要功能,跟进修复情况,及时验证bug。每天发工作日报,汇报进度,如果遇到风险,及时汇报领导。
如果给你一个没有需求的app测试项目,你应该怎么测?
权限测试---安装、运行、卸载测试---UI测试---功能测试---性能测试---中断测试---兼容测试---安全测试---回归测试---升级更新测试---用户体验测试
如果你和开发的意见产生分歧,你怎么处理?
对事不对人,首先尝试站在开发的角度接受对方的意见和建议,同时控制好自己的情绪,在对方情绪可控的情况下表达自己的意见
如果你组长的用例写错了。但他认为是对的,你怎么处理?
通常情况下,领导看问题的角度会比我们更全面,所以我首先得确保领导的用例是否真的有考虑不到的地方
我不会坚持自己是对的,但是在合理的情况下表达自己的观点
你同时负责功能和性能,你怎么做?
先测试功能,保证功能的完成,再做性能,在提交bug后,开发还没有改好时,可以准备性能测试,在工作时间很紧的情况下会主动加班