软件评测笔记1

软件测试概论

1.1 概述

《软件测试艺术》一书中定义:测试是为发现缺陷而去执行一个程序或系统的过程。

《系统的软件测试》指出;测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计、实施和维护的整个生命周期过程。

 

软件测试在今天面临着很大的挑战,主要体现在以下几个方面

  1.软件在国防现代化、社会信息化和国民经济信息化领域中的作用越来越重要,由此产生的测试任务越来越繁重。

  2.软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题。

  3.面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步。

  4.对于分布式系统整体性能还不能进行很好的测试。

  5.对于实时系统来说,缺乏有效的测试手段。

  6.对着安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成为世界性难题。

1.2国内外现状

  国外

    软件测试在软件公司中占据重要地位

    软件测试理论研究蓬勃发展

    软件测试市场繁荣

  国内

    中国的软甲你测试研究技术起步与“六五”期间,主要随着软件工程的研究而逐步发展起来,起步晚,差距大,随着软件产业的发展,软件测试逐渐成为一个新兴的产业,我国正迈入测试时代。

1.3软件测试与软件项目的关系

  软件测试是为软件项目服务的,其根本目的是为了提高软件质量,降低软件项目的风险。

  软件测试只能证明软件存在错误,而不能证明软件没有错误。

1.4软件测试的发展趋势

  软件测试有以下的发展趋势

  1.测试工作将进一步前移。

  2.软件架构师、开发工程师、QA人员、测试工程师将更好的融合

  3.测试职业将得到充分的尊重

  4.设置独立的测试部门将成为越来越多的软件公司的共识。

  5测试外包服务将快速增长。

1.5第三方测试

  这里的第三方测试是指独立与软件公司自身测试的测试,在软件公司和软件用户之间的一方。

 

软件测试基础

2.1软件测试与软件质量

  什么是软件测试?

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

  什么是软件质量?

  1999年经典定义是:软件特性的总和,软件满足规定或潜在用户需求的能力

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

  质量保证的重要工作通过预防、检查与改进来保证软件质量。

  软件测试是对过程的产物以及开发出的软件进行刨析。

2.2软件测试的目的

  早期的软件测试的目的是寻找错误,并尽最大的可能找出最多的错误

  当前就软件测试有如下观点:

    1.测试时程序的执行过程,目的在于发现错误

    2.一个好的测试用例在于能发现至今为止未发现的错误

    3.一个成功的测试是发现了至今未发现的错误的测试

    4.测试不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量和评估,以提高软件质量

2.3软件测试原则

  1.所有的软件测试都应追溯到用户需求

  2.应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭

  3.完全测试时不可能的,测试需要终止

  4.测试无法显示软件潜在的缺陷

  5.充分注意测试中的集群现象

  6.程序员应避免检查自己的程序

  7.尽量避免测试的随意性

2.4软件测试对象

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

2.5软件测试分类

按照开发阶段划分:单元测试、集成测试、系统测试、集成测试和验收测试

  1.单元测试

    又称模块测试,是针对软件设计的最小单位-----程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。

  2.集成测试

    又称组装测试。通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集合成符合概要设计要求的程序部件或系统。

  3.确认测试

    通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。

  4.系统测试

    是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试是在真实或模拟真实运行的环境下,检查完整的程序系统能否和系统正确配置、链接,并满足用户需求

  5.验收测试

    按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接受或拒绝接受系统。

 

按照测试实施组织划分

  1.开发方测试

    也叫验证测试 或α测试。开发方通过检验和提供客观证据,证实软件的实现是否满足规定的需求

  2.用户测试

    也叫β测试。在用户的应用环境下,用户通过运行和使用软件,检验与核实软件是否符合自己预期的要求。

  3.第三方测试

    也称为独立测试。介于软件开发方和用户之间的测试组织的测试。

按照测试技术划分:白盒测试、黑盒测试、灰盒测试。

  1.白盒测试

    对程序内部结构的分析、检测来寻找问题。

  2.黑盒测试

    通过软件的外部表现来发现其缺陷和错误。

  3.灰盒测试

    介于白盒测试和黑盒测试之间,灰盒测试关注输出对于输入的正确性,同事也关注内部表现。

 

2.6软件测试过程模型

 

2.7软件生命周期测试策略

  测试过程按照4个步骤进行,即单元测试、集成测试、确认测试和系统测试。

  1.测试信息流

  

    软件配置:包括软件需求规格说明、软件设计规格说明、源代码等。

    测试配置:包括测试计划、测试用例、测试驱动程序等。

    测试工具:为提高软件测试效率,可使用测试工具支持测试工作,其作用就是为测试的实施提供某种服务,以减轻测试任务中的手工劳动。

 2.分析设计阶段

  主要包括需求说明书评测、概要设计说明书评测、详细设计说明书评测以及软件编程规范评测

  (1)需求说明书评测

    此阶段评测的工作重点是与承建单位的分析人员、设计人员一起对需求说明书进行评审,并协调业主单位完成需求说明书的评审确认

    编写良好的需求说明书 8 条原则

    

posted @ 2019-12-16 20:14  向日葵的部落  阅读(119)  评论(0编辑  收藏  举报