操作方法
软件开发过程及软件质量保证 1.软件开发过程的几个主要阶段: 1)定义。明确开发的目标,软件的需求。 2)计划。制订软件开发所涉及到的计划。 3)设计。设计、编码、编写文档等,完成要求的软件特性。 4)稳定化。主要是测试和缺陷修复,确保软件的质量。 5)安装。安装、提交完成的软件,为客户提供运行环境。 2.几种常用的软件生命周期模型: 1)瀑布模型。 2)原型模型。 3)增量模型。 4)螺旋模型。 从软件测试人员的角度来看软件开发过程,需要注意的是:测试贯穿在整个开发过程中,而不是在某个阶段集中地做一下测试而其它阶段不用理会测试工作。 一个软件之所以被认为为质量优秀,是它内在具备了这样一些特性: 满足用户的需求; 合理进度、成本、功能关系; 具备扩展性和灵活性,能够适应一定程度的需求变化; 能够有效地处理例外的情况; 保持成本和性能的平衡。 软件质量保证(Software Quality Assurance-----SQA)是为了确保软件开发过程和结果符合预期的要求而建立的系列规程,以及依照规程和计划采取的一系列活动及其结果评审。 软件质量保证的活动主机包括: 技术方法的就用; 正式技术评审的实施; 软件测试; 标准的执行; 修改的控制; 度量; 记录和记录保存。 软件错误的定义:软件错误是软件产品中存在的导致期望的运行结果和实际结果间出现差异的一系列问题,这些问题包括故障、失效、缺陷。 软件测试: 软件测试就是为了发现软件中存在的错误而分析或执行程序的过程。具体地说,领测认为软件测试是分析程序或根据软件开发各阶段的规格说明和各程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。 软件测试有两个基本的功能:验证(Verification)和确认(Validation)。 验证指保证软件正确地实现了特写功能的一系列活动。 确认指保证最终的产品满足系统需求。 通俗的说:验证保证产品的正确性;确认保证生产了正确的产品。 软件测试人员应该至少具备以下两个关键领域方面的知识: 1)软件测试技术; 2)被测应用程序及其相关应用领域知识。 理解以下的描述: 测试能提高软件的质量,但是提高质量不能依赖测试; 测试只能证明错误存在,不能证明错误不存在; 测试的主要困难是不知道该如何进行有效地测试,也不知道什么时候能够放心的结束测试; 每个程序员都应当测试自己的程序(份内事),但不能作为程序已通过测试的依据(所以项目需要独立的测试人员); 80-20原则:80%的错误聚集在20%的模块中,经常出错的模块改错后还是会经常出错; 测试应当循序渐进,不要企图一次性做完。"欲速则不达"。 测试人员的目标和主要工作: 目标:(1).基本目标是发现软件错误; (2).要尽可能早的找出软件错误; (3).必需确保找出的软件错误得以关闭。 主要工作: 1)规划测试任务 2)设计测试(包括编写测试用例等等) 3)建立一个合适的测试环境 4)评估、获取、安装和配置自动测试工具 5)执行测试 6)撰写适当的测试文档 软件测试的分类 1.从是否需要执行被测试软件的角度分:有静态测试和动态测试。 2.从测试是否针对软件结构和算法的角度分类分:白盒测试和黑盒测试。 3.从测试的不同阶段分:单元测试、集成测试、系统测试和验收测试四个阶段。 其中系统测试有:功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等等。 针对某些功能作用的测试: 回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试。 功能测试:测试软件的功能是否符合功能性需求,通常采用黑盒测试方式。 负载测试:测试软件系统的最大负载,超出此负载软件有可能会失常。 压力测试:与负载测试差不多,叫法不同。 易用性测试:测试软件是否易用,主观性比较强。一般要根据用户的反馈信息来评价。 安装与反安装测试:测试软件在"全部、部分、升级"等状况下的安装/反安装过程。 恢复测试:测试系统从故障中恢复的能力。 安全性测试:测试系统防止非法侵入的能力。 兼容性测试:测试系统与其它软件、硬件兼容的能力。 内存泄漏测试:测试软件在运行过程中是否会造成内存泄漏。 比较测试:通过与同类产品比较,考察该产品的优点、缺点。 Alpha测试:一种先期的用户测试,此时系统刚刚开发完成。 Beta测试:一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。同Alpha测试一样都由用户进行,场地不同,Alpha测试一般是把用户请到开发方的场地来测试,Beta测试是指在一个或多个用户的场所进行测试。 测试工作的主要步骤: 1)测试计划:测试人员要首先对需求进行分析,最终定义一个测试集合。 2)测试设计与开发:根据软件需求、说明书完成测试用例设计并编写必要的测试驱动程序。 3)执行测试:需要做的工作是,建立测试环境;根据前面编写的测试计划和测试用例运行测试;记录测试结果;报告软件缺陷;跟踪软件缺陷直至其被处理;分析测试结果