1、什么是软件测试?
**软件测试是一个过程,包含了若干活动,运行软件进行测试只是活动之一
**进行软件测试可以人工方式也可以借助于工具
**进行软件测试可以运行软件也可以不运行软件
**软件测试的目的不仅仅是为了发现错误
2、软件测试的目的?
软件测试的目的有三个,分别是:证明、检测、预防。
证明:
(1)获取系统在可接受风险范围内可用的信心;
(2)尝试在非正常情况和条件下的功能和特性;
(3)保证一个工作产品是完整的并且可用或者可被集成。
检测:
(1)发现缺陷、错误和系统不足;
(2)定义系统的能力和局限性;
(3)提供组件、工作产品和系统的质量信息。
预防:
(1)澄清系统的规格和性能;
(2)提供预防或减少可能制造错误的信息;
(3)在过程中今早检测错误;
(4)确认问题和风险,并且提前确认解决这些问题和风险的途径。
3、软件测试生命周期。(六个阶段)
第一阶段:计划(planning)
**确定软件开发总目标;
**给出软件的功能、性能、可靠性以及接口等方面的设想;
**研究完成该项目的可行性,探讨问题解决方案;
**对可供开发使用的资源、成本、可取得的利益多和开发进度做出评估;
**指定完成开发任务的实施计划。
第二阶段:需求分析(REquirement Analysis)
**对开发的软件进行详细的定义,由需求分析人员和用户共同讨论决定,哪些需求是可以满足的,并且给予确切的描述,写出软件需求说明书SRS(Software Requirement Specification)。
第三阶段:设计(Design)
**1.概要设计说明书(HLD),针对的是模块和接口。(在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块);
**2.详细设计说明书:针对的是算法和数据结构(对每个模块要完成的工作进行具体的描述)。
第四阶段:程序编码(Coding)
**把软件设计转换成计算机可以接受的程序,即写成以某个程序设计语言表示的源程序清单,使用RDBMS工具建立数据库;
第五阶段:软件测试(Testing)
**软件测试按照阶段可以划分为:单元测试、集成测试、系统测试。
第六阶段:运行和维护(Run and Maintenance)
**这个阶段将软件交付用户正式使用,以后便进入维护阶段,可能有很多种原因需要对它进行修改,如软件错误,系统软件升级、增强软件功能、提高性能等。
4、软件研发组织结构
工作内容:人员、过程、工具。
5、软件开发模型(三种)
第一种模型:瀑布模型
特点: 1、测试接入较晚;
2、下一个阶段依赖于上一个阶段的结束。
适用范围: 需求明确的小项目。
第二种模型:螺旋模型
特点:1、瀑布模型和原型法的结合;
2、风险分析;
3、迭代过程;
4、客户尽早参与,更能保证项目成功;
5、测试介入的比较晚。
第三种模型:RUP模型
特点:1、项目活动分为两个(工作流和支持流);
2、共有4个阶段(初始化、细化、构造、发布);
3、增量、迭代。
6、缺陷。
(1)缺陷的根源(有7个原因):
1.缺乏有效的沟通,或者没有沟通;
2.软件复杂度;
3.编程错误;
4.不断变更的需求;
5.时间的压力;
6.缺乏文档的代码;
7.软件开发工具。
(2)缺陷的类型
1.遗漏;
2.错误;
3.额外的实现。