软件测试及常用测试方法解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于软件测试及常用测试方法解析
1.软件测试的背景
随着计算机技术的飞速发展,软件产品已经逐步渗入到国民经济和社会生活的各个方面,软件产业的兴起在关乎国计民生的各个行业中发挥了重要的作用,带动了传统产业的技术改革与科技创新。软件产品的成功引入和产生的巨大效益也使单位或企业对软件产品的需求与日俱增。软件产品也逐步朝着系统化规模化的方向发展,软件的生产成本、系统的维护成本也日益增加。
由于软件本身就是人脑的高度智力的反映和智慧的结晶,人脑会犯错,因此软件从本质上说就不可避免地存在缺陷,所以使用软件必然存在风险,只是风险大小不同,所造成的损失不同而已。在国防军事、金融交易、交通运输、电力水利、民航订票等等关键领域,因软件质量问题所造成的损失则可能是巨大的,甚至是灾难性的后果。
软件产品的质量是如此重要,那如何尽可能减少软件产品的缺陷,将其风险程度降到最低呢?软件测试的意义就体现出来了。软件测试是软件质量得以保证的一项关键活动,它是通过对软件的功能、性能、可靠性和安全性进行详细的验证,以保证在软件正式交付以前,尽可能多地发现软件产品中潜藏的缺陷和错误。
当前,软件测试的重要意义日益深入人心,新的测试理论、测试方法与技术手段都在不断出现,相关的软件测评机构和组织也在迅速发展,软件测试本身也成为一项专业的技术岗位,并且在单位和企业中发挥着日益关键的作用。
2.软件测试的定义与目的
究竟什么是软件测试,如何给“软件测试”一个确切的定义?
软件测试就是“使用人工或自动化手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是发现预期结果与实际结果之间的差别。”
软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(包括输入数据与预期输出结果),并利用这些测试用例运行软件,以发现软件错误的过程。
从广义上讲,软件测试包含三个方面的意义,一是确认:即评估将要开发的软件产品是否正确无误、可行和有价值的。确认意味着确保一个待开发软件是正确无误的,是对软件开
发构想的检测;二是验证:即检测软件开发的每个阶段、每个步骤结果是否正确无误,是否与软件开发各阶段的要求或期望的结果相一致。验证意味着确保软件会正确无误地实现软件的需求,开发过程是沿着正确的方向进行的。三是测试:即与狭隘的测试概念相统一。3.软件测试的流程
前面已经谈到,软件测试不仅针对程序代码的正确性验证,实际上,软件测试的工作贯穿于从软件需求分析到软件维护整个生命周期的过程中。一般来说,软件测试流程包含以下主要环节:需求分析、测试计划、测试设计、测试环境搭建、测试执行、软件评估。
一.需求分析
需求分析是软件测试流程中的第一个环节,也是一个重要的步骤。测试人员对需求的理解程度直接影响到接下来的其他环节和测试工作的最终效果。
所谓的“测试需求分析”,就是要搞清楚我们测试人员在一个具体的项目中,到底要测哪些内容。在具体的测试过程中,只有首先明确了测试需求,才能决定怎么测、测试时间、需要投入的资源、如何搭建测试环境等等问题。如果想要顺利地成功地完成一个项目的测试,就必须要先了解测试对象的规模、复杂程度、可能存在的风险等等,这些就需要通过详细的测试需求分析来进行了解。如果测试需求不明确,就会造成获取的信息不准确,无法对所测系统有一个清晰全面的认识,测试计划就没有依据可言。测试需求分析可主要通过以下途径来收集信息:1.与项目相关的产品需求规格说明书;2.界面设计;3.与客户沟通需求的会议;
4.其他项目会议或技术文档。在信息收集时,要充分保证项目组内的各个成员及客户对每一个需求点的理解是一致的。
二.测试计划
规范的软件测试必须要有一个好的测试计划。虽然具体测试过程中的每一个环节是独立的,但必须要有一个测试计划作为开展测试工作的基本刚要。测试计划是测试流程中的参考指南和重要工作步骤。测试计划同时也是软件测试工作中最基本的测试文档。那究竟什么是“测试计划”呢?测试计划是根据测试需求分析而编写的描述包括测试目的、具体测试内容、测试工具、测试时间和人员安排等内容的文档。
测试计划编制好以后,在具体项目工作过程中,可能遇到需求变更的情况,为满足客户的要求,就需要对前期制定的计划进行相应的修改,所以测试计划在项目开展过程中不是绝对不变的。
三.测试设计
测试设计是以上一步制定的测试计划作为输入文件,将需要测试的内容进行分解、细化
为若干个可执行的测试过程,并为每一个测试过程设计详细的测试用例。测试用例的设计是测试设计的主要内容,测试用例设计的优良程度直接关系到测试结果的有效性。
四.测试环境搭建
测试环境搭建是在正式执行测试之前必经的一个流程,测试环境就是被测软件所运行的平台。包括软件环境、硬件环境、网络环境等三个方面。软件环境:指的是软件所依附的操作系统。如windows xp、windows7等,因为应用软件可能会与操作系统存在兼容性的问题。软件环境还包括与其他各类软件共存同一系统时的兼容性问题。硬件环境:包括PC机、笔记本、服务器、其他终端接入设备等。由于不同的硬件配置下,软件的处理效率是不一样的。网络环境:主要针对的是C/S结构和B/S结构的软件。比如对于同一个要测试的软件,客户的网络环境是千兆以太网,而厂家测试地点的网络环境是百兆以太网,那在不同的网络条件下,系统的运行状态是有差异的。具体工作过程中,需要根据所编写测试用例中所要求的测试环境进行测试平台的搭建。
五.测试执行
执行测试是根据所制定的测试计划和测试用例,一步一步的完成各项测试内容,对于测试用例执行中所发现的缺陷进行跟踪管理。测试执行一般由单元测试、集成测试、系统测试、回归测试等步骤组成。
对于测试中发现的BUG,应该及时提交到缺陷管理系统,并跟踪开发人员的修改进度,开发人员对问题进行修正后,测试人员需要对修正版本进行回归测试,回归测试中除了要验证旧的问题是否得到解决外,还要注意是否产生新的BUG。
六.软件评估
测试执行完成后,要对测试的结果进行评估,具体体现在需要编制项目测试报告,测试报告是测试人员提交的重要文档,测试人员做了哪些工作,所测软件在功能和性能等各个方面的实际表现情况如何等信息都要清晰地体现在测试报告中。比如测试覆盖率、用例通过率、重点测试项通过率、遗留测试缺陷、软件质量总体评价等等。软件测试报告没有统一的模板,只要能明确体现上述关键信息即可。软件测试报告是测试人员向项目组提交的最终文档,是对测试活动和测试结果的全面总结,体现了测试人员的工作业绩和专业水准,必须引起测试人员的高度重视。
4.常用测试方法
软件测试是一项复杂的、系统化的工作,软件测试人员需要始终保持高度严谨、细致、周全的工作作风。为了达到不同的测试目的,我们有多种测试方法可以选择。从不同的角度