文章目录
常考问题(重点)
1.需求的概念
满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权限;包括用户需求和软件需求。
软件需求:软件需求是由用户需求转化而来,它是用户需求的细化,是用户需求的实现细节和规范;
用户需求:用户需求一般比较粗略,直接实现会有困难,因为没有具体实现细节,所以需要软件需求将用户需求细节实现和规范, 把用户需求变成一个具体的可实现的过程文档。
2.需求是软件测试的依据
验证需求,保证需求正确可实现;细化需求,从需求中提炼出一个个测试项。
3.软件测试人员如何深入了解需求
从需求分析阶段就开始介入了解需求
站在用户需求的角度展开测试
4.软件缺陷的概念(BUG)
(1)当且仅当规格说明书存在并且正确,程序与规格说明不匹配,才是错误;
(2)当程序没有实现其最终用户的合理预期的功能要求时,就是软件错误。
5.测试用例的概念
测试用例(Test Case)是为了实施测试而向被测试系统提供的一组集合,这组集合包括:测试环境、操作步骤、测试数据、预期结果等要素。
6.软件开发的生命周期
需求分析 ——> 计划 ——> 设计 ——> 编码 ——> 测试 ——> 运行与维护(发布)
7.软件开发的五个模型
7.1瀑布模型(Waterfall Model)
(1)瀑布模型在软件工程中占主要地位,是其他所有模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。如图:
(2)优点:强调开发的阶段性;强调早期计划及需求调查;强调产品测试。
(3)缺点:依赖于早期唯一一次需求调查,不能适应需求的变化。
7.2螺旋模型(Spiral Model)
(1)一般在软件开发阶段需求不是很明确的,采用渐进式的开发模式,螺旋模型就是渐进式开发模式的代表之一。
这对那些规模庞大、复杂度高、风险大的项目尤其合适,这种迭代得开发模式给软件测试带来了新要求,它不允许有一段独立的测试阶段和时间,测试必须跟随开发的迭代而迭代。因此,回归测试的重要性就不言而喻了。
(2)优点:强调严格的全过程风险管理,强调各开发阶段的质量,提供机会检讨项目是否有价值继续下去。
(3)缺点:引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求,需要人员、资金和时间的投入。
7.3增量、迭代模型
(1)增量模型:增量开发能够显著降低项目风险,结合软件持续构建机制。
(2)迭代模型:迭代模型相较于增量模型抗风险能力要强一些。
举例:某个公司需要在两个周之内完成A、B、C、D四个模块的开发
此时采用增量模型的开发流程为:
第一周完成A、B两个模块的功能,第二周完成C、D两个模块的功能。
采用迭代模型的开发流程为:
第一周完成A、B、C、D四个模块的基础功能,第二周在第一个周的基础上完成其他的功能。
7.4敏捷开发模型(重中之重)
1.敏捷宣言:个体与交互重于过程和工具;可用的软件重于完备的文档;客户协作重于合同谈判;响应变化重于遵循计划。
2.Scrum工作流程:
(1)产品负责人负责整理user story,形成左侧的product backlog。
(2)发布计划会议:product owner负责讲解user story,对其进行估算和排序,发布计划会议的产出就是制定出这一期迭代要完成的story列表,sprint backlog。
(3)迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计。
(4)每日例会:每天scrum master召集站立会议,团队成员回答昨天做了什么今天计划做什么,有什么问题。
(5)演示会议:迭代结束之后,召开演示会议,相关人员都受邀参加,团队负责向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由po整理,形成新的story。
(6)回顾会议:项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,已达到持续改。
其中,需要清楚scrum中各个角色的职能
8.软件测试的两个模型(重中之重)
8.1 V模型
(1)特点:明确标注了测试过程中存在的不同类型的测试,并清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。
(2)局限性:仅仅把测试作为编码之后的一个阶段,为从需求阶段就开始测试。
8.2 W模型
(1)特点:测试的对象不仅是程序,需求,设计同样需要进行测试,开发和测试是同步的,有利于尽早地全面地发现问题。
(2)局限性:需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持敏捷开发模式。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临的困惑。