一、面试基础题
简述测试流程:
1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。
2、参加需求评审会议。
3、根据最终确定的需求文档编写测试计划。
4、编写测试用例(等价类划分法、边界值分析法等)。
5、用例评审(主要参与人员:开发、测试、产品、测试leader)。
6、开发提交代码至SVN或者GIT,配管搭建测试环境。
7、执行测试用例,记录发现的问题。
8、验证bug与回归测试。
9、编写测试报告。
10、产品上线。
补充测试用例设计过程:
根据需求得出测试需求
设计测试方案,评审测试方案
方案评审通过后,设计测试用例,再对测试用例进行评审
什么是软件测试?软件测试的目的与原则
使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试的目的:
测试是程序的执行过程,目的在于发现错误。
一个成功的测试用例在于发现至今未发现的错误。
一个成功的测试是发现了至今未发现的错误的测试。
确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
确保产品满足性能和效率的要求。
确保产品是健壮的和适应用户环境的。
问:软件生存周期及其模型是什么?
软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(LifeCycleModel)。
什么是软件质量?
软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。
自动化测试脚本开发的主要步骤:
1、通过某些方式定位到我们要执行的对象、目标(Target)
2、对这个对象进行什么操作( 1、静态与动态测试
2、黑盒与白盒测试
3、手工和自动测试
4、冒烟测试
5、回归测试;
按测试阶段分类:单元测试、集成测试、系统测试;
其他常见测试方法:1、功能测试2、性能测试3、压力测试4、负载测试5、易用性测试6、安装测试7、界面测试8、配置测试9、文档测试10、兼容性测试11、安全性测12、恢复测试
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
回归测试(对软件的新版本测试时,重复执行上一个版本测试时的用例,是为了验证缺陷是否真正修复,确认修复后是否影响其它功能);
冒烟测试:对新版本测试之前,先验证下软件的基本功能是否实现,是否具备可测性。
单元测试的策略有哪些?
逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析
正交表测试用例设计方法的特点是什么?
答:用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。
补充:什么时候用系统测试,测试的每个阶段是什么,比如单元、集成、系统、公测,每个阶段需要什么技术,有什么要求
软件的安全性应从哪几个方面去测试?
(1)用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议
(2)加密机制
(3)安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描
(4)数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理
(5)防病毒系统
软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
用户认证安全的测试要考虑问题:
明确区分系统中不同用户权限
系统中会不会出现用户冲突
系统会不会因用户的权限的改变造成混乱
用户登陆密码是否是可见、可复制
是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
系统网络安全的测试要考虑问题
测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
模拟非授权攻击,看防护系统是否坚固
采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是NBSI系列和IPhackerIP)
采用各种木马检查工具检查系统木马情况
采用各种防外挂工具检查系统各组程序的外挂漏洞
数据库安全考虑问题:
系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
系统数据可管理性
系统数据的独立性
系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
需求测试的注意事项有哪些?
是否使用了公司的模板
文档内容是否符合规范
所有的需求是分级是否清晰适当?
所有的需求是否具有一致性
需求是否可行(即,该需求组合有解决方案)
需求可否用己知的约束来实现
需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性)
所有的其它需求是交叉引用是否正确
用户描述是否清楚
是否用客户的语言来描述需求
每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解
是否所有的需求都是可验证的
是否每条需求都具有独立性,即使发生了变化也不会影响其它需求
性能指标是否明确
非功能性需求是否得到充分表现
是否完整列出适用的标准或协议
标准和协议之间是否存在冲突
问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。
将问题提交到缺陷管理库里面进行备案。
要获取判断的依据和标准:根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;根据用户的一般使用习惯,来确认是否是缺陷;
与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。
问:给你一个网站,你如何测试?
1、查找需求说明、网站设计m等相关文档,分析测试需求。
2、制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
3、设计测试用例:
功能性测试可以包括,但不限于以下几个方面:
链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。提交功能的测试。
多媒体元素是否可以正确加载和显示。多语言支持是否能够正确显示选择的语言等。
界面测试可以包括但不限于一下几个方面:
页面是否风格统一,美观
文字检查
对于必须但为安装的空间,是否提供自动下载并安装的功能
控件是否正常使用
页面布局是否合理,重点内容和热点内容是否突出
问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。个用户在一个客户端上,需要更大的带宽。IP地址的问题,可能需要使用IPSpoof来绕过服务器对于单一IP地址最大连接数的限制。所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。
你工作中遇到最具价值的bug,就是重大bug咯,例如app性能测试测哪些,那你就看一看性能测试的视频咯
软件的安全性应从哪几个方面去测试?
软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
用户认证安全的测试要考虑问题:
明确区分系统中不同用户权限
系统中会不会出现用户冲突
系统会不会因用户的权限的改变造成混乱
用户登陆密码是否是可见、可复制
是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)
用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
系统网络安全的测试要考虑问题
测试采取的防护措施是否正确装配好,有关系统的补丁是否打上
模拟非授权攻击,看防护系统是否坚固
采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,
现在最常用的是NBSI系列和IPhackerIP)
采用各种木马检查工具检查系统木马情况
采用各种防外挂工具检查系统各组程序的外挂漏洞
数据库安全考虑问题:
系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)
系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)
系统数据可管理性
系统数据的独立性
系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)
软件质量保证体系是什么国家标准中与质量保证管理相关的几个标准是什么??他们的编号和全称是什么??
SQA由一套软件工程过程和方法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。
测试人员在软件开发过程中的任务是什么?
1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、
转载请注明:http://www.0431gb208.com/sjszlff/1535.html