软件评测师教程——软件测试基础

本文全面解析软件测试的基础知识,涵盖软件测试与质量的概念,测试的目的、原则与对象,以及测试的分类、过程模型和生命周期策略。深入探讨了V模型、W模型、H模型等测试模型的优缺点,为软件测试提供了实用的指导。

1. 软件测试与软件质量

1.1 什么是软件测试

测试(test)最早出于古拉丁字,它有“端”或“容器”的含义。在工业制造和生产 中,测试被当作一个常规的检验产品质量的生产活动。测试的含义为“以检验产品是否 满足需求为目标”。而软件测试活动包括了很重要的任务,即发现错误。

“软件测试”的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质 量进行评估。

随着人们对软件工程化的重视以及软件规模的日益扩大,软件分析、设计的作用越 来越突出,而且有资料表明,60%以上的软件错误并不是程序错误,而是分析和设计错 误。因此,做好软件需求和设计阶段的测试工作就显得非常重要。这就是我们提倡的测 试概念扩大化,提倡软件全生命周期测试的理念。

1.2 什么是软件质量

2001年,软件“产品质量”国际标准ISO 9126定义的软件质蛍包括“内部质量”、 “外部质量”和“使用质量”三部分。也就是说,“软件满足规定或潜在用户需求的能力” 要从软件在内部、外部和使用中的表现来衡量。

1.3 软件测试与质量保证的区别

软件测试人员的一项重要任务是提高软件质量,但不等于说软件测试人员就是软件 质量保证人员,因为测试只是质最保证工作中的一个环节。软件质量保证和软件测试是 软件质量工程的两个不同层面的工作。

质最保证(QA):质量保证的重要工作通过预防、检査与改进来保证软件质量。QA的工作是软件生命周期的管理以及验证软件是 否满足规定的质量和用户的需求,因此主要着眼于软件开发活动中的过程、步 骤和产物,而不是对软件进行剖析找出问题或评估。

软件测试:测试虽然也与开发过程紧密相关,但关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员必须假设软件存在潜在的问题,测试中所作的操作是为了找出更多的问题,而不仅仅是为了验证每一件事是正确的。对测试中发现的问题的分析、 追踪与回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。

2. 软件测试的目的

测试的目的,是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷, 通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造 成的隐患所带来的商业风险。

3. 软件测试原则

  • 1.所有的软件测试都应追溯到用户需求。
  • 这是因为软件的目的是使用户完成预定的任务,并满足用户的需求,而软件测试所 揭示的缺陷和错误使软件达不到用户的目标,满足不了用户需求。
  • 2.应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
  • 由于软件的复杂性和抽象性,在软件生命周期各个阶段都可能产生错误,所以不应 把软件测试仅仅看作是软件开发的一个独立阶段的工作,而应当把它贯穿到软件开发的 各个阶段中。在软件开发的需求分析和设计阶段就应开始测成工作,编写相应的测试文 档。同时,坚持在软件开发的各个阶段进行技术评审与验证,这样才能在开发过程中尽 早发现和预防错误,杜绝某些缺陷和隐患,提高软件质量。只要测试在生命周期中进行 得足够早,就能够提高被测软件的质凰,这就是预防性测试的基本原则。
  • 3.完全测试是不可能的,测试需要终止。
    ①输入量太大:
    ②输出结果太多:
    ③路径组合太多。
    一个适度规模的程序,其路径组合近似天文数字,对于每一种可能的路径都执行一 次的穷举测试是不可能的。此外,测试也是有成本的,越是测试后期,为发现错误所付 出的代价就会越大,因此也要根据测试错误的概率以及软件可靠性要求,确定最佳停止 测试时冋,我们不能无限地测试下去。
  • 4.测试无法显示软件潜在的缺陷。
  • 进行测试是可以査找并报告发现的软件缺陷和错误,但不能保证软件的缺陷和错误 全部找到,继续进一步测试可能还会找到一些,也就是说测试只能证明软件存在错误而 不能证明软件没有错误。
  • 5.充分注意测试中的群集现象 (二八定律)
  • 经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目或检错率成 正比。根据这个规律,应当对错误群集的程序段进行重点测试,以提高测试投资的效益。
    在所测程序段中,若发现错误数目多,则残存错误数目也比较多。这种错误群集性 现象,已为许多程序的测试实践所证实。例如,在美国IBM公司的OS/370操作系统中, 47%的错误仅与该系统的4%的程序模块有关。这种现象对测试很有用。如果发现某一程 序模块似乎比其他程序模块有更多的错误倾向,则应当花费较多的时间和代价测试这个 程序模块。
  • 6.程序员应避免检査自己的程序。
  • 基于心理因素,人们认为揭露自己程序中的问题总不是一件愉快的事,不愿否认自 己的工作;由于思维定势,人们难于发现自己的错误。因此,为达到测试目的,应由客 观、公正、严格的独立的测试部门或者独立的第三方测试机构进行测试。
  • 7.尽量避免测试的随意性。
  • 应该从工程的角度去理解软件测试,它是有组织、有计划、有步骤的活动。

4.软件测试对象

根据软件定义,软件包括程序、数据和文档,所以软件测试并不仅仅是程序测试。 软件测试应贯穿于整个软件生命周

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值