为什么要学软件测试?
软件测试是产品质量的保证,是控制成本的关键,是软件可靠性确认。
软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。
软件 = 文档 + 程序集合
程序是软件的一部分,而软件是程序以及开发、使用和维护所需要的所有档案的总称。
文档用来描述程序功能需求以及程序如何操作和使用
软件项目文档有:
客户需求 - Customer Requirements
市场需求文档 - MRD (Marketing Requirement Document)
软件规格说明书 - Specifications
技术设计文档 – Technical Design Docs
测试文档 Test Documents
测试报告 Test Reports
产品发布注释 - Release Notes / Read Me
产品软件包 - Release packages
第一阶段:程序设计阶段,软件产品为专用软件,规模较小,功能单一,开发者即使用者,软件只有程序,无文档。软件设计在人们的头脑中完成,形成了“软件等于程序”的错误观念 。(从20世纪50年代初期至60年代中期)
第二阶段:程序系统阶段,多道程序设计技术、多用户系统、人机交互式技术、实时系统和第一代数据库管理系统的出现,出现了专门从事软件开发的“软件作坊”,软件广泛应用,但软件技术和管理水平相对落后,导致 “软件危机”出现(20世纪60年代中期至70年代末期)
第三阶段:软件工程阶段,以软件的产品化、系列化、工程化和标准化为特征的软件产业发展起来,软件开发有了可以遵循的软件工程化的设计准则、方法和标准(20世纪70年代中期至80年代中期)
第四阶段:面向对象阶段(20世纪80年代中期至今)
软件缺陷:从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
软件测试的目的就是及早发现软件缺陷并确保这些软件缺陷被修复。
软件未达到软件规格说明书中规定的功能
软件出现了产品说明书中指明不会出现的错误;
软件功能超出了产品说明书中指明的范围
软件测试人员认为软件难于理解,不易使用,运行速度慢,或者最终用户认为软件使用效果不好
软件开发过程自身的特点(软件的逻辑性和需求)
软件项目管理的问题
团队工作的问题
缺陷分析,常用的主要缺陷参数有四个,分别是状态、优先级、严重性、起源。
状态:缺陷的当前状态(打开的、正在修复或关闭的等)。
优先级:必须处理和解决缺陷的相对重要性。
严重性:缺陷的相关影响。对最终用户、组织或第三方的影响等等。
起源:导致缺陷的起源故障及其位置,或排除该缺陷需要修复的构件。
缺陷报告:缺陷分布(密度)报告显示缺陷在不同模块,业务单元中的分布情况。缺陷龄期报告是一种特殊类型的缺陷分布报告。 缺陷龄期报告显示缺陷处于特定状态下的时间长短,如“提出的”。在龄期类别中,缺陷还可以按其他属性分类,如“拥有者”。缺陷趋势报告按状态(新的、已打开的或关闭的)将缺陷计数作为时间的函数显示。趋势报告可以是累计的,也可以是非累计的。