软件测试就是根据需求文档证明程度不存在错误。
用户的一系列预期达到的效果
在规格说明正确的前提下,程序的结果与预期结果不一样时,就产生了Bug
测试用例就是为了实施测试而为测试系统提供的一组集合
软件的生命周期就是指软件产品的设想开始到整个软件不再使用而结束的时间。分为六个步骤:需求分析、计划、设计、编码、测试、运维
是直接流线型进行产品的开发
优点:强调了开发的阶段性,强调了早期的计划,强调产品测试
缺点:没办法即使发现和检测到风险,失去了及早纠正的机会
在开发初期需求不够明确,采用渐进式开发模式。测试要跟着开发的迭代而迭代
优点:强调严格的全过程风险管理,强调各阶段开发的质量
缺点:对风险管理的技能水平提出了很高的要求,这需要人员、资金和时间的投入
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户的协作 重于 合同的谈判
响应变化 重于 遵循计划
scrum:
product owner产品经理、scrum master 项目经理、team 研发团队
产品经理:整理用户需求,定义商业价值
项目经理:负责召开各种会议,协调项目,为研发团队服务
研发团队:实现功能,完成迭代目标,交付产品
迭代开发: 与瀑布模式不同,scrum把产品的开发分解为若干个小的sprint(迭代),周期从一周到四周,但不会超过四周,每期迭代要完成的user story式固定的,每次迭代都会产生一定的交付。
轻文档和快速迭代是很大的挑战,测试人员对测试用例的依赖减弱,而是根据测试结果来不断调整测试计划。敏捷开发讲究合作,在项目组中,测试人员应该更加主动,多向开发了解需求研讨Bug
在单元测试和集成测试时测试是否符合软件的设计。在系统测试时测试系统的功能、性能是否达到要求的指标。在验收测试时,测试系统是否满足用户的各项需求。
缺点:把测试作为编码的后一个阶段,无法在制定需求文档时就接入测试
W模型是增加了软件各开发阶段中应该同步的测试工作,测试和开发工作是并行的。测试的对象不仅仅是开发的程序,还包括了需求、设计都要一起测试。
优点:有利于尽早发现解决问题
缺点:需求、设计、编码等活动被视为串行进行,测试和开发也保持着一种现性前后的关系,一个阶段结束才能进行下一个阶段。
测试的生命周期是:需求分析、测试计划、测试设计、测试开发、测试执行、测试评估
是对程度的一段代码或一个功能进行测试,它是检验软件基本组成单位的正确性。
通常使用白盒测试,依据代码和详细的设计文档
集成测试是对拼接起来的不同模块的进行测试,主要检查软件单位之间的接口是否正确
通常使用黑盒和白盒测试相结合,依据概要设计文档和单元测试的模块。测试模块间的数据传输、功能冲突以及模块组装功能的正确性等
是将软件看成是一个系统的测试,包括对功能、性能以及软件所运行的环境的测试,包括回归测试和冒烟测试
是在整个集成测试通过后,一般使用黑盒测试来测试整个软件的功能、界面、可靠性等
指的是之前出现的bug被开发人员修改后,重新进行测试看是否修改以及是否引入新的bug。
在测试开始前对基本功能进行测试保证正常,不会阻碍后续测试。
验收测试是部署软件前的最后一个测试操作,是技术测试的最后一个阶段。目的是为了保证软件准备就绪,满足原始的用户需求。
是在整个系统测试后,对包括硬件软件进行的总体测试,依据用户需求和验收标准。一般使用黑盒测试
自动化测试就是预先根据需要测试的流程编写好代码后,让程序代替人工来执行测试用例。有功能测试自动化、性能测试自动化和安全测试自动化。常用在兼容性测试和回归测试中。
它的优点:可以多次运行重复繁琐的代码,可以执行到一些手工测试困难或不可能的任务,可以更好的利用资源也增加了测试的可信度。
它的缺点:始终无法代替手工测试,手工测试比自动化测试发现的缺陷更多。
性能测试一般情况关注:
等…
请求响应时间(time to last byte):表示对请求做出响应所需要的时间。这个时间包括了网络传输时间和服务器处理时间以及数据库处理时间。
TPS指的是每秒事务通过数目(Transaction Per Second),它是衡量系统处理能力的重要指标。当压力加大时,TPS曲线如果变化缓慢或者有平坦的趋势,有可能服务器已经出现了瓶颈,对于同一个系统会存在一个最大处理事务的能力,它不随着用户并发的增加而增加。
性能测试可以分为:基准测试、负载测试、压力测试、并发测试、配置测试、可靠性测试
欢迎阅读我的其它文章:
计算机网络 面试高频考点总结
Java基础 面试高频考点总结
并发篇 面试高频考点总结
有任何问题欢迎指正,也欢迎点赞收藏!如果想加一波关注那就再好不过了