软件测试~概念篇

此篇是测试的基础概念,希望你可以从这里入门~

1、软件测试的目的和原则

目的:验证软件是否存在问题

原则:以客户为中心,遵循软件测试的规范,流程,标准和要求。

2、需求是什么?

IEEE定义: 软件需求是 ① 用户解决问题或达到目标所需的条件或权能;② 系统或系统部件要满足合同、标准、规范或其他非正式规定文件所需具有的条件或权能; ③ 一种反映上述两者所述条件或权能的文档说明。 它包含功能性需求及非功能性需求。

总结 “需求” 是指:满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能。 包括用户需求和软件需求。

  • 用户需求: 牛逼轰轰的甲方提出的需求;或理解为终端用户使用产品时必须要完成的任务;较为简单。

  • 软件需求:会详细描述开发人员必须实现的软件功能。也是测试人员工作的基本依据。

从“用户需求”转到“软件需求”:需要 ——> 沟通!!

注:此处你可以想一下,不以测试人员的角度,对一个声控灯的需求。

3、什么是bug?

软件错误的定义:
当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。当没有需求规格说明书时,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。

4、什么是测试用例?

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

最初的测试用例是用Excel写的~

测试用例解决的问题:衡量测试的覆盖率,可以实施新版本的重复测试,避免大量冗余的测试影响测试效率。

此处你可以试着用Excel写一个“苹果手机中新建联系人”的测试用例。

5、开发模型和测试模型

软件的生命周期

是指从软件产品的设想开始到软件不再使用而结束的时间。

分为6个阶段:
== 需求分析–>计划–>设计–>编码–>测试–>运行维护 ==

模型1:瀑布模型

瀑布模型是所有其他模型的基础框架,每一个阶段都只执行一次,是线性顺序进行的软件开发模式。

优点:强调–>开发的阶段性、早期计划及需求调查、产品测试。
缺点:不能适应需求变化。因为是单一流程,开发的经验不能反馈应用于本产品的过程。bug到最后一步才暴露出来。“集成之日就是爆炸之日。”

适合于:需求相对稳定,变更小的项目

模型2:螺旋模型

采用渐进式的开发模式。

优点:强调–>严格的全过程风险管理、各开发阶段的质量。
缺点:引入–>极严格的风险识别、风险分析和风险控制。

适合于:规模大、复杂度高、风险大的项目

模型3:增量模型

增量开发能显著降低项目风险,结合软件持续构建机制。它鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。

模型4:迭代模型

迭代是反复求精的概念。

模型5:敏捷模型(当前较流行)

《敏捷宣言》(http://agilemanifesto.org/):

① 个体与交互重于过程和工具–>“人与人之间的沟通”

② 可用的软件重于完备的文档–>“轻文档”

③ 客户协作重于合同谈判–>“客户参与”

④ 响应变化重于遵循计划–>“拥抱变化”

⑤ 上面的每对比较中,后者并非全无价值,但我们更看重前者。

敏捷的特点:周期短(14周)、人员(59人)、固定站会(10~15分钟)

6、软件测试模型

V模型

目的是改进软件开发的效率和结果,是瀑布型的变种。

如下图:在这里插入图片描述

W模型

又叫“双V模型”,它增加了软件各开发阶段中应同步进行的验证和确认活动。

如下图:
在这里插入图片描述

特点:测试与开发同步执行,即每个环境都要进行测试,避免了线型顺序的缺点。

优点:尽早发现问题;缺点:研发和测试分开来看,仍为串行的;不能满足需求频繁变更。

7、配置管理

定义:通过对在软件生命周期不同的时间点上的软件配置进行标识,并对这些贝表示的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可塑性的过程。

配置项:代码、文档、使用工具、程序等。

实施好处:软件配置管理(SCM)实施可以 ① 对配置项进行有效管理;② 方便重现历史版本; ③ 可重新编译历史版本; ④ 可实现异地多团队开发、并行开发; ⑤ 提高工作效率。

猜你喜欢

转载自blog.csdn.net/Hannah_Hsq/article/details/84075746