软件测试基础篇1,从产品到测试模型
做产品与做项目的区别
- 驱动因素:
- 做项目:侧重于在最短的时间内,按照客户的需求开发出操作敏捷,用户体验良好的软件。
- 做产品:侧重于市场驱动,时间相对充足,但要开发出有竞争力,有自身特色,且受客户欢迎的产品,要求功能响应速度快,操作简单,界面美观。
- 质量要求:
- 做项目:根据客户的要求进行定制开发,一定要满足与客户在合同中协定的质量要求。
- 做产品:需要适应或囊括当前行业可能涉及的需求,其产品必须具有竞争力,操作敏捷,不断的升级换代。
- 时间投入:
- 做项目:在客户规定的时间内完成软件开发,并要求质量达标。
- 做产品:没有具体时间限制,但要求不断的升级换代。
什么是软件测试(英语:Software Testing)
描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。
软件测试的目的:发现软件错误
调试(Debug):确保程序做了程序员想它做的事情
测试(Testing):确保程序解决了它该解决的问题
- 软件测试与软件调试的区别
- 软件测试:是软件测试人员和程序员都参与的一项工作,是贯穿整个生命周期的,只需要发现软件的错误
- 软件调试:主要是程序员自己参与,对程序(设计、编码)进行修改、排除错误,主要是在开发阶段。
- 软件测试与软件调试的区别
一个好的测试用例能够发现至今尚未发现的错误
一个成功的测试是发现了一个至今尚未发现的错误
软件生命周期
项目的周期:
- 项目的启动
- 需求的调研分析(可行性研究报告,需求规格说明书)
- 功能设计(概要设计,详细设计)
- 编码
- 测试
- 项目验收交付
- 后期维护
软件产品的周期:
- 产品构思
- 投资开发
- 初级版本
- 客户使用
- 根据客户反馈与技术的进步
- 对产品进行不断的升级
项目组成员及相关工作
- 产品经理:收集需求反馈、建立产品、整理需求
- 项目经理:立项、计划、关联产品、关联需求等
- 设计人员:设计系统架构、概设、详设
- 开发:编码
- 测试人员:设计用例、执行测试、提交bug
- 配置管理员:部署系统
- QA:贯穿全过程,制定规范、辅助、审计
软件测试的对象
- 文档:需求分析、概要设计、详细设计等各阶段文档。
- 程序:单元测试、集成测试、确认测试、系统测试等。
- 数据:输入与输出
测试的基本原则
测试应基于用户需求
做好软件测试计划是做好软件测试工作的关键
测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试
工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等以及评价标准。另外,回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
应尽早的开始软件测试并不断的进行软件测试
测试前必须明确定义好产品的质量标准
避免测试自己的软件
应充分注意测试中的集群现象:
一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。
必须检查每个实际输出结果
穷举测试是不可能的: 由于时间和资源有限,应避免冗余测试
测试设计决定了测试的有效性和效率
注意保留测试设计和说明文档,并注意测试设计的可重用性 为维护等提供方便
软件开发模型
研发模型 —瀑布模型
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:
各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;
由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从
而增加了开发的风险;
早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
研发模型—快速原型
快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。
快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。
研发模型— 敏捷模型
敏捷开发(Agile Development)是一种以人为核心、迭代、循序渐进的开发方法。Scrum是一个增量的、迭代的开发过程
在迭代过程中,Scrum团队从产品功能列表中挑选最高优先级的需求进行开发。
在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。
软件测试模型
测试模型— V模型
优点:既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。
局限性:把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,不能体现“尽早地和不断地进行软件测试”的原则。
测试模型— W模型
优点:
如果测试文档能尽早提交,那么就有了更多的检查和检阅的时间,这些文档还可用于评估开发文档。
测试者可以在项目中尽可能早地面的规格说明书中的挑战。
测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。
标注了生产周期中开发与测试之间的对应关系
局限性:需求,设计,编码等活动被视为串行的,测试和开发活动保持着一种线性的前后关系,无法支持迭代的开发模型 。
测试模型— H模型
- 优点:H模型下的测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行,不同的测试活动可以是按照某个次序先后进行的,只要某个测试达到准备就绪点,执行测试就开始进行,具有很强的灵活性。