软件测试之面试汇总(持续更新中)

1. 软件的生命周期(prdctrm)

计划阶段(planning) -> 需求分析(requirement) -> 设计阶段(design) -> 编码(coding) -> 测试(testing) -> 运行与维护(running maintrnacne)

软件测试之面试汇总(持续更新中)

2. 在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?

1.将问题提交到缺陷管理库里面进行备案。

2.要获取判断的依据和标准:

3.根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

4.如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

5.根据用户的一般使用习惯,来确认是否是缺陷;

6.与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

7.合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

8.等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

3. 给你一个网站,你如何测试?

1. 查找需求说明、网站设计等相关文档,分析测试需求,制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:

功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试

2. 设计测试用例:(功能性测试可以包括,但不限于以下几个方面)

链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。

提交功能的测试。

多媒体元素是否可以正确加载和显示。

多语言支持是否能够正确显示选择的语言等。

界面测试可以包括但不限于一下几个方面:
  1.页面是否风格统一,美观页面布局是否合理,重点内容和热点内容是否突出,控件是否正常使用
  2.对于必须但为安装的空间,是否提供自动下载并安装的功能文字检查

性能测试一般从以下几个方面考虑:
  1.压力测试;2.负载测试;3.强度测试

数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。

3. 安全性测试:

1.基本的登录功能的检查 

2.是否存在溢出错误,导致系统崩溃或者权限泄露

3.相关开发语言的常见安全性问题检查,例如 SQL 注入等

4.如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性,开展测试,并记录缺陷。  合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。定期评审,对测试进行评估和总结,调整测试的内容。

4. 在搜索引擎中输入汉字就可以解析 到对应的域名,请问如何用LoadRunner进行测试?

  1. 建立测试计划,确定测试标准和测试范围
  2. 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等
  3. 根据测试用例,开发自动测试脚本和场景:
    1. 录制测试脚本
      1.新建一个脚本(Web/HTML 协议)
      
      2.点击录制按钮,在弹出的对话框的 URL 中输入”about:blank”。
      
      3.在打开的浏览器中进行正常操作流程后,结束录制。
      
      4.调试脚本并保存。可能要注意到字符集的关联。
    2. 设置测试场景
      1.针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标
      
      2.针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃。
    3. 执行测试
    4. 获取测试结果
    5. 分析测试结果

4. 一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?

1.资源方面:300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。

线程之间可能发生干扰,而产生一些异常。

2.带宽:300个用户在一个客户端上,需要更大的带宽。

3.IP地址的问题:可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。

所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

5. 试述软件的概念和特点?软件复用的含义?构件包括哪些?

软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、文档的完整集合。
软件复用(Software Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。可以被复用的软件成分一般称作可复用构件

5.1 软件生存周期及其模型是什么?(如1)

软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。

在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。

6. 什么是软件测试?软件测试的目的与原则?

  • 使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
  • 软件测试的目的:
    测试是程序的执行过程,目的在于发现错误
    一个成功的测试用例在于发现至今未发现的错误
    一个成功的测试是发现了至今未发现的错误的测试
    确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明;产品满足性能和效率的要求;产品是健壮的和适应用户环境的
  • 软件测试的原则:
    1.软件测试应尽早执行,并贯穿于整个软件生命周期;应追溯需求;应由第三方来构造
    2.穷举测试是不可能的,要遵循 Good-enough 原则
    3.必须确定预期输出(或结果);彻底检查每个测试结果;充分注意测试中的群集现象
    4.缺陷的二八定理
    5.严格执行测试计划,排除测试的随意性;注意合法合理的输入,也要注意非法的非预期的输入;检查程序是否做了不该做的
    6.测试应从“小规模”开始,逐步转向“大规模”;反复使用同样的测试会使软件具有抵抗力
    7.关注缺陷的修复

相关推荐