陆兴东的个人博客

软件测试基本概念

作者:陆兴东  阅读量:565  时间:2年前

一、什么是需求

1、用户需求

甲方爸爸提出的需求,一般来说比较粗略


2、软件需求

开发人员需要实现的功能。大多数公司在软件开发的时候把用户需求转化为软件需求,开发人员和测试人员工作的直接依据就是软件需求


软件需求是测试人员进行测试工作的基本依据!


二、什么是bug

bug就是软件错误,无法根据程序的到正确的执行结果,这里提一个关于bug的小故事:


软件测试基本概念


三、什么是测试用例

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

测试用例的意义:当不知道是否全秒的测试了所有功能-测试的覆盖率无法衡量-对新版本的重复测试很难实现-存在大量的冗余测试影响效率,测试用例就是为了解决上述的问题!


四、开发模型和测试模型

1、项目开发的生命周期

需求分析 —— 计划 —— 设计 —— 编码 —— 测试 —— 运行维护


2、瀑布模型(Waterfall Model)

软件测试基本概念


优点:强调开发的阶段性 阶段独立 强调早期计划和需求调查 强调产品测试


缺点:1、测试在编码过后才进行,没有预留足够的时间给测试  


           2、依赖早期进行的唯一一次需求调查,不能适应需求变化


           3、可运行的产品上线太晚,给项目带来很大的风险,尤其是集成的风险。


3、螺旋模型(Spiral Model)

适用场景:一般在软件开发初期阶段需求不是很明确的时候,采用渐进式的开发模式。


螺旋模型是渐进式开发模型的代表之一。因此螺旋模型适用于那些规模大、复杂度高、风险大的项目


优点:强调严格的全过程风险管理 强调各开发阶段的质量 


缺点: 更多人员、资金、时间的投入


4、增量、迭代模型

比如我们要在纸上画一个人


增量:我们先画头,再画身子,再画......


迭代:我们先画轮廓,再画基本雏形,再上色.....


优点:能显著降低项目风险


缺点:测试需要频繁进行,测试人员需要与开发人员更加紧密地协作


5、敏捷模型

在学习这个知识点之前,请和我大声地朗读《敏捷宣言》地价值观:


个体与交互重于过程和工具!


可用的软件重于完备的文档!


客户协作重于合同谈判!


响应变化重于遵循计划!


在每对比对中,后者并非全无价值,但我们更看重前者!


敏捷开发有很多种方式,scrum是其中比较流行的一种


特点:轻文档,快速迭代


三人五会


三人:产品经理,项目经理,研发团队


产品经理整理user story,形成左侧product backlog


 五会:


1、发布计划会议:产品经理收集用户需求,对其进行估算和排序,发布计划会议的产出就是指定出这一期迭代要完成的 story 列表,sprint backlog


2、迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初估计


3、每日例会:每个scrum master召集站立会议,相关人员都收邀参加,团队成员回答昨天做了什么,今天计划做什么,有什么问题


4、演示会议:迭代结束之后,召开演示会议,相关人员都能受邀参加,团队给大家展示迭代成果,记录反馈形成新的story


5、回顾会议:项目团队对本期迭代做总结,发现不足


五、配置管理和软件测试

1、V模型

明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了测试阶段和开发过程对应关系


单元测试和集成测试:检测程序的设计是否满足软件设计的要求


系统测试:检测系统功能,性能的质量特性是否满足系统要求的指标


验收测试:是否满足用户需求


缺点:仅仅把测试作为编码之后的一个阶段 失去错误补救机会


2、W模型

开发测试同时进行,保证前期问题及时解决


缺点:测试和开发保持线性的前后关系,不支持敏捷开发,不拥抱变化



文章目录导航[+]