一
软件测试基础概念
1.
测试的含义为“以检验产品是否满足需求为目标”。而软件测试活动包括了很重要的任务,即发现错误。
2、什么是软件测试
(1)广义的概念
指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认
(2)狭义概念
识别软件缺陷的过程,即实际结果与预期结果的不一致
**3、“软件质量”是:
软件满足规定或潜在用户需求特性的总和
4 软件质量包括(“内部质量”、“外部质量”、“使用质量”)
也就是说,“软件满足规定或潜在用户需求的能力”要从软件在内部、外部和使用中的表现来衡量。
5 质量
反映一个产品或服务满足明确和隐含需要的能力的特性总和
从客户的角度
满足要求
适用
从生产者的角度
以最经济的手段制造出市场上最有用的产品
6、任务
软件测试人员的一项重要任务是提高软件质量,但不等于说软件测试人员就是软件质量保证人员,因为测试只是质量保证工作中的一个环节。
7、测试的目的,
是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险
测试的目的就是发现软件中的各种缺陷
测试只能证明软件存在缺陷,不能证明软件不存在缺陷
测试可以使软件中缺陷降低到一定程度,而不是彻底消灭
8.软件测试的原则:
1) Good-enough: 一种权衡投入/产出比的原则
2)所有的软件测试都应追溯到用户的需求
3)应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
4)测试无法显示软件潜在的缺陷,即测试只能证明软件存在错误而不能证明软件没有错误。
5)保证测试的覆盖程度,但穷举测试是不可能的
6)越早测试越好,测试过程与开发过程应是相结合的
7)测试的规模由小而大,从单元测试到系统测试
8)为了尽可能地发现错误,应该由独立的第三方来测试
9)不能为了便于测试擅自修改程序
10)用例全面(有效数据、无效数据)
11)用例有预期结果
12)超出规格说明书的问题不容忽视
9.软件测试对象:
软件包括程序、数据、文档,所以软件测试并不仅仅是程序测试。软件测试应贯穿于整个软件生命周期中
10.软件测试的手段:
(1)软件测试通常包括验证(verification)和确认(validation):
1)验证指保证软件正确的实现了某一特定功能的一系列活动,目的是保证软件生命周期的每一个阶段的成果满足上一个阶段所设定的目标
2)确认指的是保证软件的实现满足了用户需求的一系列活动,目的是在软件开发完成后保证软件与用户的需求相符合。
验证与确认都属于软件测试,它包括对软件分析、设计以及程序的验证和确认。
(2)软件测试可以发现以下软件缺陷:
软件实现的功能不正确
“缺少”:软件没有实现某项功能
“多余”,软件实现的某项功能在需求中没有定义
发现第一类软件缺陷的过程 — “验证”
发现后两类软件缺陷的过程 — “确认
11测试的目标.
1)最终目的是确保软件的功能符合用户的需求,把尽可能多的问题在发布或交付前发现并改正:
确保软件完成了它所承诺或公布的功能
确保软件满足性能的要求
确保软件是健壮的和适应用户环境的
2)为软件的质量评估提供依据
3)为软件质量改进和管理提供帮助