1、什么是软件测试,软件测试的目的。
使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试的目的:
以最少的人力,物力和时间找出软件中的各种错误和缺陷,保证各种错误和缺陷得以修复,避免软件发布后由于潜在的软件错误和缺陷造成的隐患所带来的的商业风险。
利用测试过程中得到的测试结果和测试信息,作为后续项目开发和测试过程改进的重要输入,避免在将来的项目开发和测试中重复同样的错误。
采用更加高效的测试管理手段,提高软件测试的效率和软件产品的质量。
2、软件的生存周期及模型。
需求分析---概要设计---详细设计---编码---测试---验收
3、软件测试流程。
需求分析---制定测试计划---制定测试方案---编写测试用例---评审测试用例---冒烟测试---执行测试---提交缺陷报告与跟踪---回归bug---提交测试总结---准备下个版本测试
4、软件测试模型。
V模型
解释了开发过程与测试过程中各阶段的对应关系
缺点与不足
v模型仅仅把测试过程作为在需求分析、系统设计及编码之后的一个阶段,忽视了测试对需求分析、系统设计的验证
需求的满足情况一直到后期的验收测试才被验证
没有体现出“尽早地和不断地进行软件测试”的原则
W模型
由两个V字型模型组成,分别代表测试与开发过程,明确表示了测试与开发的并行关系。
优点:
测试的活动与软件开发同步进行
测试对象不仅仅是程序,包括需求和设计
尽早发现软件缺陷可降低软件开发的成本
局限性:
在W模型中,需求,设计,编码等活动被视为串行的,这样就无法支持灵活的迭代。
H模型
H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。
H模型揭示了一个原理:软件测试是一个独立的流程!
H模型指出软件测试要尽早准备,尽早执行;只要某个测试达到准备就绪点,测试执行活动就可以展开,并且不同的测试活动可按照某个次序先后进行,也可以反复进行。
X模型
X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码,此后通过频繁的交接,通过集成最终合成为可执行的程序。
X模型还定位了探索性测试,这是不进行实现计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。
5、软件测试的分类。
按照开发阶段分类:单元测试、集成测试、系统测试、验收测试。
单元测试:单元测试又称模块测试,是针对软件设计的最小单位--程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现个模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
集成测试:集成测试也叫做组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是<u>检验程序单元或部件接口关系</u>,逐步集成为符合概要设计要求的程序部件或整个系统,它是一个持续不断的过程。
系统测试:系统测试是在真实的系统运行的环境下,检查完整的程序系统(包括硬件、外设、网络的系统软件、支持平台等)正确配置、连接,并最终满足用户需求。
验收测试:是软件产品检验的最后一个环节。按照项目任务书或合同。供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒收系统。
按照测试技术分类:黑盒测试,白盒测试,灰盒测试
黑盒测试:通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行测试,他只是检查程序是否按照需求规格说明书的规定正常实现
白盒测试:通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明的盒子里,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称为结构测试。
灰盒测试:介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,知识通过一些表征性的现事件、标志来判断内部的运行状态。
6、什么是测试用例?
设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果,如果程序在这种情况下不能正常运行,而且这种问题会重复发生,那就表示软件程序人员已经测出软件有缺陷,这时候就必须将这个问题标示出来,并且通知软件开发人员。软件开发人员接获通知后,将这个问题修改完成与下一个版本测试,软件测试工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已经修改完成
7、你写过测试计划吗?包含什么内容?测试计划可以被修改吗?
测试范围 :明确测什么?比如:产品的具体业务需求有哪些?产品是web端的还是移动端的,还是两者都有?
测试策略 :明确怎么测?对不同业务需求,具体要有哪些测试类型、测试场景、测试方法。
资源安排 :包括测试人员的安排,测试环境是怎样的,测试⼯具的选择等。
进度安排 :在明确测试范围、方法和人员之后,我们要考虑什么时候开始测试,预计要测试多久?以便和开发计划、上线计划衔接。
发布标准 :发布标准是测试完成和产品上线需要满⾜的条件,以便项⽬内所有⻆⾊都有⼀致认可的目标。怎样才算是测完了?达到怎样的标准才可以上线?
风险预防 :最后,我们需要对整个测试过程中可能存在的⻛险,以及当这些⻛险发⽣时的应对措施提前进行⼀些考虑 和准备,并在测试计划中体现出来。
8、测试用例测要素。
测试用例编号、测试项、测试用例标题、优先级、预置条件、测试输入、操作步骤、预期结果
9、设计测试用例的作用。
有效性:测试用例是测试人员测试过程中的重要参考依据。
可复用性:良好的测试用例具有重复使用的功能,是的测试过程事半功倍,提高测试效率。
易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至你念的测试过程中被创建和使用。
可评估性:从测试的项目管理角度来说,测试用例的通过是检验代码质量的保证。
可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪、管理测试人员的工作效率的标准。
10、测试用例编写注意事项。
不要设计“穷举测试用例”
在详细测试用例与有效测试的时间找到平衡点(时间不够尽可能全面,时间够尽可能深入)
好的测试用例应该多关注“反向测试问题”
测试用例库应该不断更新和维护
测试用例可以复用,但要注意数据有效性与环境变化
测试用例式设计出来的,不是写出来的
多去学习经验丰富的测试工程师所设计的测试用例
针对不同的需求类型和测试对象,应该采用不同的测试用例设计方法
11、测试用例的设计方法有哪些?
黑盒测试:等价类、边界值、因果图、判定表、场景法、正交实验法、功能图法、错误推测法
白盒测试:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件覆盖。