软件测试基础(一)
一. 测试相关概念
IT:Information Technology,即信息科技和产业的意思。
软件:一系列按照特定顺序组织的计算机数据和指令的集合,程序+数据+文件。
产品:能够供给市场,被人们使用和消费,并能满足人们某种需求的任何东西,包括有形的物品,无形的服务,组织,观念或它们的组合。
项目:指一系列独特的,复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间,预算,资源限定内,依据规范完成。
二. 为什么做软件测试
1. 一个糟糕的测试程序可能导致任务的失败,影响操作的性能和可靠性,导致维护阶段的成本提高;
2. 一个好的测试程序可以降低项目的主要成本;
3. 一个好的测试程序可以极大地帮助你定义需求和设计;
4. 一个好的测试可以迫使你在工作时必须面对和处理问题,使得修改缺陷成本降低;
5. 一个好的测试不能弥补一个糟糕的软件项目,但是的确有助于发现许多问题,并且至少使得你尽早直到你处在问题当中。
三. 软件的生命周期
四. 项目组成员
五. 测试的基本原则
1. 测试是上下文相关的;
2. 穷尽测试是不可能的;
3. 测试尽早介入;
4. 杀虫剂悖论;
5. 缺陷群集性;
6. 测试证明存在缺陷;
7. 无错谬误。
六. 软件测试对象
七. 软件开发模型
1. 研发模型--瀑布型
2. 研发模型--原型
3. 研发模型--敏捷模型
敏捷开发(Agile Development)是一种以人为核心,迭代,循序渐进的开发方法。
4. 研发模型--其他模型
螺旋模型:适合与大型复杂软件系统。
RUP模型(Rational Unified Process):模型过于复杂,难于掌握,耦合度高不适合。
八. 软件测试模型
1. 测试模型--V模型
优点:既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。
局限性:把测试过程作为在需求分析,概要设计,详细设计及编码之后的一个阶段,不能体现“尽早地和不断地进行软件测试”的原则。
2. 测试模型--W模型
优点:
(1)如果测试文档能尽早提交,那么就有了更多的检查和检阅的时间,这些文档还可用于评估开发文档;
(2)测试者可以在项目中尽可能早地面对规格说明书中的挑战;
(3)测试还可以尽可能早地找出缺陷所在,从而帮助改进项目内部的质量。
局限性:无法支持迭代,自发性以及变更调整。
3. 测试模型--H模型
优点:
(1)软件测试不仅仅指测试的执行,还包括很多其他活动;
(2)软件测试是一个独立的过程,贯穿产品整个生命周期,与其他流程并发地进行;
(3)软件测试要尽早准备,尽早执行;
(4)软件测试是根据被测物的不同而分层次进行的;
(5)不同层次的测试活动可以是按照某个次序进行的,但也可能是反复的;
(6)软件测试模型是一个独立的流程,贯穿于整个产品周期,与其他流程并发地进行。
4. 测试模型--X模型
5. 测试模型--前置模型
优点:
(1)体现开发与测试相结合;
(2)对每一个交付内容进行测试;
(3)在设计阶段进行测试计划和测试设计;
(4)测试和开发结合在一起;
(5)让验收测试和技术测试保持相对独立。