软件测试相关概念

什么是软件测试

软件测试的特点

什么是需求

用户需求

软件需求

从软件测试人员角度看需求

需求对测试人员的重要性

测试用例

BUG

软件生命周期

开发模型

瀑布模型

螺旋模型

增量迭代

敏捷

测试模型

V模型

W模型(双V模型)


什么是软件测试

软件测试就是验证软件产品特性是否满足用户的需求.

从这句话中可以看出:测试试图验证软件是"工作的",也就是验证软件功能执行的正确性;测试的活动是以测试人员"预期的结果"为依据,这里的"预期结果"指的是需求定义.

最常见的理解软件测试就是找bug,发现缺陷.

软件测试的特点

软件测试只是一个样本试验,具有不可穷尽性.

什么是需求

满足用户期望或正式规定文档(合同,标准,规范)所具有的条件和权能,包含用户需求和软件需求.

用户需求

可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务,该需求一般比较简略.

软件需求

又叫功能需求,该需求会详细描述开发人员必须实现的软件功能.

大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员的直接依据就是软件需求.用户需求就是一句话,软件需求是一个文档(详细描述用户需求如何实现).

深入的了解需求一般需要召开需求评审会议,查阅文档和沟通.

从软件测试人员角度看需求

需求是软件测试人员开展软件测试工作的依据.

在具体设计测试用例的时候,需要先搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例.

流程:业务需求->软件功能需求点->测试需求点->测试用例

软件测试相关概念_第1张图片

需求对测试人员的重要性

从软件功能出发,无遗漏的识别出测试需求是至关重要的,这将直接关系到测试用例的测试覆盖率.

对于识别出的每个测试需求点,需要采用具体的设计测试用例的方法来进行测试用例的设计.


 测试用例

测试用例(Test Case)是为了实施测试而向被 测试的系统提供的一组集合,这组集合包含:测试环境,操作步骤,测试数据,预期结果等要素.

测试用例解决了两大问题:测什么和怎么测.

为什么要有测试用例

测试用例能够提高测试人员工作效率,降低测试人员工作的重复性问题.

测试用例是建立自动化的基础.


BUG

软件错误一般定义为程序与规格说明之间不匹配.

上述这个说法是片面的,准确的来说,当且仅当规格说明是存在并且正确,程序与规格说明之间的不匹配才是错误.

当需求规格说明书没有提到此功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误.


软件生命周期

软件生命周期是指从软件产品的设想开始到软件不在使用而结束的时间.

整个时间段可以分为6个阶段:需求分析,计划,设计,编码,测试,运行维护.

需求分析:分析需求是否合理,需求是否完整.

计划:谁来开发,谁来测试,开发多久,测试多久.

设计:技术文档(设计哪些接口,库表,定时任务等),UI视觉稿

编码:进行代码开发

测试:执行测试用例,提交bug,验收,生成测试报告.

运行维护:项目上线,如果有线上问题,此时测试人员需要协助开发问题+解决问题.


开发模型

瀑布模型

瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一 次,因此是线性顺序进行的软件开发模式。

特点就是线性的.

优点:每个阶段做什么,产出什么都非常清晰.

缺点:风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会.

适用的项目:小型的项目.


螺旋模型

软件测试相关概念_第2张图片

一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。
这对于那些规模庞大、复杂度高、风险大的项目尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。

优点:每个阶段都会进行风险分析,避免一些线上问题的发生.

缺点:风险分析可能分析不准确,需要人力财力的投入.

适用项目:适用于比较大,风险比较多的项目.


增量迭代

增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。

增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。


敏捷

2001年,以Kent Beck、Alistair Cockbum、Ward Cunningham、Martin Fowler等人为首的“轻量”过程派聚集在犹他州的Snowbird,决定把“敏捷”(Agile)作为新的过程家族的名称。
在会议上,他们提出了《敏捷宣言》(http://agilemanifesto.org/): 我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工怍,我们形成了如下价值观。

个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者。
敏捷是一种思想,敏捷开发有多种方式,其中scrum是比较流行的一种.
scrum
scrum product owner( 产品经理 ) scrum master( 项目经理 ) team( 研发团队 ) 组成。
其中 product owner 负责整理 user story( 用户故事 ) ,定义其商业价值,对其进行排序,制定发布
计划,对产品负责。
scrum master 负责召开各种会议,协调项目,为研发团队服务。
研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
迭代开发
与瀑布不同, scrum 将产品的开发分解为若干个小 sprint( 迭代 ) ,其周期从 1 周到 4 周不等,但不会超过 4 周。参与的团队成员一般是5 9 人。每期迭代要完成的 user story 是固定的。每次迭代会产生一定的交付。

软件测试相关概念_第3张图片

 产品经理收集用户需求,项目经理根据需求进行优先级的划分,计划项目何时开始何时结束,由谁完成.

每日站会汇报昨天工作情况和今天的计划.


测试模型

V模型

软件测试相关概念_第4张图片

特点:左边是开发,右边是测试,适用于瀑布模型.

优点:测试被划分成多个类型

缺点:测试人员介入台湾,实现问题的时机太晚.

W模型(双V模型)

软件测试相关概念_第5张图片

W模型由两个V字模型组成,分别代表测试与开发过程,图中也明显表示除了测试与开发的并行关系.

特点:测试的不仅是程序,需求,设计等同样要测试,测试与开发是同步进行的.

优点:测试人员介入的更早,能够及时发现问题.

缺点:测试人员和开发人员一定程度上还是串行的,不能拥抱变化,不能适用于敏捷.


你可能感兴趣的:(开发语言,测试用例)