Q1. 简述性能测试过程中测试脚本的编写过程。
- 设计环境、用户数量等 2. 录制并跟踪记录脚本 3. 部分修改脚本,增加验证点 4. 测试运行修改后的脚本。5. 进一步优化并构建复杂脚本。
Q2. 简述SQL 注入攻击 (SQL Injection)攻击原理及过程。
根据SQL语句的编写规则,精心构造带有SQL 控制命令的字符串,并将其在应用程序的输入部分注入(Injecte)了,这些注入的串将被传递到后台数据库服务器,并被数据库服务器加以执行,导致了信息泄露,或者威胁到信息安全。
Q3.什么是软件缺陷?
遵循IEEE1983,从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题(3分)。从产品外部看,软件缺陷是系统所需实现的某种功能的失效或违背(2分)。
Q4. 简述软件测试过程模型。
软件测试过程模型包括V模型、W模型、H模型等,是软件测试专家通过实践活动总结出的很好的测试过程模型,能大大提高测试质量,提高测试结果的准确性和有效性
Q5. 黑盒测试主要是为了发现哪几类错误?
黑盒测试力图发现下述类型的错误: ①功能不正确或遗漏了功能; ②界面错误; ③数据结构错误或外部数据库访问错误; ④性能错误; ⑤初始化和终止错误。
Q6.什么是蜕变关系?如何利用蜕变关系展开软件测试?
- 蜕变关系: 描述程序的多组执行结果之间的关系,如 • sin(x)-sin(x+2π)=0 • 自动驾驶的输入 2. 测试过程中,首先寻找不同输入变量与输出结果之间的关联,构建蜕变关系;其次,应用蜕变关系,构造测试用例;最好,运行测试,检测程序执行是否违背了已知的蜕变关系;若违背,则发现一个Bug。
Q7.简述跨站脚本攻击(XSS)的攻击原理及过程
在页面某些输入域中使用跨站脚本(写入一段 javascript )来发送恶意代码给没有发觉的用户,让浏览器执行document.write等危险指令 ,窃取用户的资料或信息。
Q8. 举例说明Fault、Failure、Error的区别
依据PIE模型,Fault指软件内部错误根源;Error指软件出错的状态;Failure指软件出错的输出。
Q9.软件测试的作用?
证明程序正确;发现程序错误;预防程序缺陷产生。
Q10.简述在线测试的原理。
1.软件开发速度快,快速迭代来不及仔细测就需要上线运行 2. 很多应用本身是基于Internet的,用户可以直接联网使用
Q11. 简述探索式测试的基本思想及其优缺点?
开发人员多、测试人员少,测试更关注效率 整个开发节奏很快,测试要跟上这个节奏 测试时间很少,需要快速完成测试 对产品或业务不够熟悉,需要操作或使用它来熟悉 产品某些部分复杂,需要不断探索,才能很好地完成测试
Q12. 静态白盒测试?
不需要设计和执行测试用例,它主要是通过小组评审讨论的方式来进行(4分)。优点:直接定位缺陷缺陷预防(1分)
Q13. 用图形描述PIE模型,要求包括4种可能执行情形。
执行-感染-传播模型
Q14. 简述Ad-hoc测试方法的基本原理。
一种随机测试方法。
Q15. 缺陷管理的目标?
确保每个缺陷都被解决。而且应确保针对每个缺陷的解决方案在整个开发组内部达到一致(2分)。收集缺陷数据,根据缺陷趋势曲线来识别测试过程,了解软件质量,确定软件测试是否可以结束。(2分)根据收集的缺陷数据进行数据分析,作为过程财富(1分)
Q16. 什么是灰盒测试,它与白盒测试及黑盒测试的区别。
灰盒测试指在可执行程序基础上,通过反编译获得部分程序的控制逻辑,基于黑盒测试的基本原理,借鉴白盒测试的一些方法和原理开展测试。并不是白加黑测试。
Q17. 简述软件质量的度量方法。
- 可以定义不同维度,分别度量;2.已有ISO 9126、McCall、Bohem等质量模型;3. 还可以从软件内部质量、外部质量、使用质量角度度量。
Q18. 负载测试?
负载测试与压力测试十分相似,通常是让被测系统在其能忍受的压力极限范围内连续运行,来测试系统的稳定性(3分)。其目的是找到系统的处理极限,为系统调优提供依据(2分
Q19. 常见的黑盒测试用例的设计方法?并分别简单介绍一下各自的思想。
等价类划分:等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。 边界值分析:对输入输出的边界值进行测试的一种黑盒测试方法。 决策表法:决策表是分析和表达多逻辑条件下执行不同操作的情况的工具 因果图分析法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。
Q20. 简述Fuzz 测试的原理及过程?
在一个被测试程序中附加上随机数据(fuzz)作为程序的输入。如果被测试程序出现问题(例如 Crash ,或者异常退出),就可以定位程序的缺陷。 模糊测试的巨大优势是,测试设计极其简单,系统的行为先入为主。
Q21. 做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果 黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
Q22. 简述随机测试(Random Testing)的原理、前提条件及优缺点.
已知输入域;容易求得Oracle;易于自动化实现,优点:成本低廉;缺点:测试代价高,有些执行路径很难覆盖到。
Q23. 单元测试主要测试那几方面的问题?
模块接口、局部数据结构、边界条件、独立的路径和错误处理
Q24. Alpha测试与beta的区别?
Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。 Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。
Q25. 正交类测试?
根据正交性原理,从全面试验中挑选部分有代表性的试验点,并能求出最佳工艺参数和工艺条件。
Q26. 简述测试用例设计时应包括的内容。
- 标志符(Identification) 2. 测试项(Test Items) 3. 测试环境要求 4. 输入标准(Input Criteria) 5. 输出标准(Output Criteria) 6. 测试用例之间的关联 ……
Q27.简述性能测试中描述软件响应速度的2-5-10原则。
就是当用户能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;当用户在5-10秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;而当用户在超过10秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求
Q28. 测试结束的标准是什么?
用例全部测试。 覆盖率达到标准。 缺陷率达到标准。 其他指标达到质量标准
Q29. 列举常见的组合测试技术
- 判断表、判定树;2.因果图;3.两两组合法;4. 正交试验方法
Q30. 简述错误猜测方法的基本原理。
错误推测法是测试者根据经验、知识和直觉来发现软件错误,来推测程序中可能存在的各种错误,从而有针对性的进行测试。
Q31. 结合你参加软件测试大赛的经历,请举例说明移动应用测试的困难之处?
机型多、系统多、传感器类型繁多,有些应用跟地理环境相关
Q32. 请列举你日常使用软件时碰到的性能问题(不少于5种)
操作系统启动越来越慢;网页访问数据库迟迟不返回页面数据;网络下载速度很慢,如5kb/s;CPU使用率100%;空闲内存极小;等等。
Q33. 简述程序性能监控时通常采用的两种抽样方式,以及这两种方式的优点和缺点。
插桩和随时间片轮转抽样。前者插桩的代码部分必须被执行,导致性能受影响;后者可能有遗漏,导致抽样结果不准确。
Q34. 目前移动应用测试存在的困难有哪些?
- 机型多 2. 系统多 3. 有些应用与地理位置等外在环境密切相关
Q35. 阐述回归测试中,测试人员需要研究和解决的工作任务。
- 测试数据生成; 2. 测试Oracle的生成;注:1、2中可答成『自动生成』 3. 测试用例修复; 4. 测试用例选择、约减和排序
Q36. 简述系统测试阶段的开展性能测试的原因?
- 发现性能问题(瓶颈),以优化系统配置,避免这些问题;2. 获取系统性能相关的指标;3. 验证用户是否达到性能指标。
Q1. 回归测试 Regression Testing
Q2. 桩程序 stub
Q3. 缺陷修正 Bug fix
Q4. 可用性 Usability
Q5. 边界值分析 BVA
Q6. 冒烟测试 Smoke Testing
Q7. 软件错误定位 Fault Localization
Q8. 零缺陷反弹 Zero bug bounce(ZBB)
Q9. 内存泄漏 Memory leak
Q10. 等价类 Equivalence class
Q11. 随机测试 Ad-hoc Testing
Q12. 工作分解结构 WBS
Q13. 缺陷报告 Bug report
Q14. 修改的条件/判定覆盖 MC/DC
Q15. 测试覆盖 Test Coverage
Q16. 测试用例排序 Test Case Prioritization (TCP)
Q17. 分支覆盖 Branch coverage
Q18. 测试谕言 Test Oracle
Q19. 软件多样性 Software diversity
Q20. 代码风格 Code Style
Q21. 符号执行 Symbolic execution
Q22. 软件可用性 Software Usability
Q23. 基本验证测试 Basic Verification Test
Q24. 可执行语句 Executable statement
Q25. 持续集成 Continuous Integration
Q26. 等价类划分法 Equivalence partitioning
Q27. 组合测试 Combinatorial Testing
Q28. 安全性测试 Security testing
Q29. 同行评审 Peer review
Q30. 白盒/黑盒测试 White/Black - Box Testing
Q31. 不可达路径 Infeasible path
Q32. 可复用性 Reusability
Q33. 演化测试 Evolutionary Testing (ET)
Q34. 静态分析 Static Analysis
Q35. 缺陷跟踪 Defect tracking
Q36. 蜕变测试 Metamorphic Testing
Q37. 压力测试 Stress Testing
Q38. 系统测试 System Testing
Q39. 代码审查 Code Review
Q40. 测试驱动开发 TDD
Q41. 性能测试 Performance Testing
Q42. 变异测试 Mutation Testing
Q43. 错误注入 Fault Injection
Q44. 测试环境 Test environment
Q45. 验证与确认 Verification & Validation
Q46. 测试自动化 Test automation
Q47. 穷举(尽)测试 Exhaustive Testing
Q48. 测试套件 Test Suite
Q49. 缺陷预测 Fault Prediction
Q50. 有效性确认 Validation
Q51. 拒绝服务 DOS
Q52. 探索式软件测试 Exploratory Software Testing
Q53. 集成测试 Integration Testing
Q54. 容错性测试 Fault-tolerance Test
Q55. 质量保证 Quality Assurance
Q56. 模糊测试 Fuzzing Testing
Q57. 螺旋模型 spiral model
Q58. 单元测试 Unit Testing
Q59. 可测试性 Testability
Q60. 数据流测试 Data Flow Testing