软件测试的基本流程

软件测试和软件开发一样,是一个比较复杂的工作过程,如果无章法可循,随意进行测试势必会造成测试工作的混乱。为了使测试工作标准化、规范化,并且快速、高效、高质量地完成测试工作,需要制订完整且具体的测试流程。

软件测试的流程

不同类型的软件产品测试的方式和重点不一样,测试流程也会不一样。同样类型的软件产品,不同的公司所制订的测试流程也会不一样。虽然不同软件的详细测试步骤不同,但它们所遵循的最基本的测试流程是一样的:分析测试需求→制订测试计划→设计测试用例→执行测试→编写测试报告。下面对软件测试基本流程进行简单介绍。

(1)分析测试需求

测试人员在制订测试计划之前需要先对软件需求进行分析,以便对要开发的软件产品有一个清晰的认识,从而明确测试对象及测试工作的范围和测试重点。在分析需求时还可以获取一些测试数据,作为测试计划的基本依据,为后续的测试打好基础。

测试需求分析其实也是对软件需求进行测试,测试人员可以发现软件需求中不合理的地方,如需求描述是否完整、准确无歧义,需求优先级安排是否合理等。测试人员一般会根据软件开发需求文档制作一个软件需求规格说明书检查列表,按照各个检查项对软件需求进行分析校验,如表1-3所示。

表1-3列出了需要对软件需求进行什么样的检查,测试人员按照检查项逐条检查和判断,如果满足要求则选择“是”,如果不满足要求则选择“否”,如果某个检查项不适用则选择“NA"。表1-3只是一个通用的软件需求规格说明书检查列表,在实际测试中,要根据具体的测试项目进行适当的增减或修改。

在分析测试需求时要注意,被确定的测试需求必须是可核实的,测试需求必须有一个可观察、可评测的结果。无法核实的需求就不是测试需求。测试需求分析还要与客户进行交流,以澄清某些混淆,确保测试人员与客户尽早地对项目达成共识。

(2)制订测试计划

测试工作贯穿于整个软件开发生命周期,是一项庞大而复杂的工作,需要制订一个完整且详细的测试计划作为指导。测试计划是整个测试工作的导航图,但它并不是一成不变的,随着项目推进或需求变更,测试计划也会不断发生改变,因此测试计划的制订是随着项目发展不断调整、逐步完善的过程。

测试计划一般要做好以下工作安排。

① 确定测试范围:明确哪些对象是需要测试的,哪些对象不是需要测试的。

②制订测试策略:测试策略是测试计划中最重要的部分,它将要测试的内容划分出不同的优先级,并确定测试重点。根据测试模块的特点和测试类型(如功能测试、性能测试)选定测试环境和测试方法(如人工测试、自动化测试)。

③安排测试资源:通过衡量测试难度、时间、工作量等因素对测试资源进行合理安排,

包括人员分配、工具配置等。

④安排测试进度:根据软件开发计划、产品的整体计划来安排测试工作的进度,同时还要考虑各部分工作的变化。在安排工作进度时,最好在各项测试工作之间预留一个缓冲时间以应对计划变更。

⑤预估测试风险:罗列出测试工作过程中可能会出现的不确定因素,并制订应对策略。

(3)设计测试用例

测试用例(Test Case)指的是一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果。不同的公司会有不同的测试用例模板,虽然它们在风格和样式上有所不同,但本质上是一样的,都包括了测试用例的基本要素。

测试用例编写的原则是尽量以最少的测试用例达到最大测试覆盖率。测试用例常用的设计方法包括等价类划分法、边界值分析法、因果图与判定表法、正交实验设计法、逻辑覆盖法等。

(4)执行测试

执行测试就是按照测试用例进行测试的过程,这是测试人员最主要的活动阶段。在执行测试时要根据测试用例的优先级进行。测试执行过程看似简单,只要按照测试用例完成测试工作即可,但实则并不如此。测试用例的数目非常多,测试人员需要完成所有测试用例的执行,每一个测试用例都可能会发现很多缺陷,测试人员要做好测试记录与跟踪,衡量缺陷的质量并编写缺陷报告。

当提交后的缺陷被开发人员修改之后,测试人员需要进行回归测试。如果系统对测试用例产生了缺陷免疫,测试人员则需要编写新的测试用例。在单元测试、集成测试、系统测试、验收测试各个阶段都要进行功能测试、性能测试等,这个工作量无疑是巨大的。除此之外,测试人员还需要对文档资料,如用户手册、安装手册、使用说明等进行测试。因此不要简单地认为执行测试就是按部就班地完成任务,可以说这个阶段是测试人员最重要的工作阶段。

(5)编写测试报告

测试报告是对一个测试活动的总结,对项目测试过程进行归纳,对测试数据进行统计,对项目的测试质量进行客观评价。不同公司的测试报告模板虽不相同,但测试报告的编写要点都是一样的,一般都是先对软件进行简单介绍,然后说明这份报告是对该产品的测试过程进行总结,对测试质量进行评价。

一份完整的测试报告必须包含以下几个要点。

·引言:描述测试报告编写目的、报告中出现的专业术语解释及参考资料等。

·测试概要:介绍项目背景、测试时间、测试地点及测试人员等信息。

·测试内容及执行情况:描述本次测试模块的版本、测试类型,使用的测试用例设计方法及测试通过覆盖率,依据测试的通过情况提供对测试执行过程的评估结论,并给出测试执行活动的改进建议,以供后续测试执行活动借鉴参考。

·缺陷统计与分析:统计本次测试所发现的缺陷数目、类型等,分析缺陷产生的原因,给出规避措施等建议,同时还要记录残留缺陷与未解决问题。

·测试结论与建议: 从需求符合度、功能正确性、性能指标等多个维度对版本质量进行总体评价,给出具体明确的结论。

·测试报告的数据是真实的,每一条结论的得出都要有评价依据,不能是主观臆斯的。

软件测试的流程是什么?软件测试的基本流程相关推荐

  1. RELL软件测试初学者化妆品,浅析软件测试流程在高校软件测试工作室中的应用...

    [摘要] In view of the typical problems existing in the implementation of the standard testing process ...

  2. 软件开发流程与初始软件测试

    一.项目成员(公司组织架构) 二.项目开发流程 项目开发流程 三.软件测试关于人格品质 几乎所有公司都是把人品考核放在第一位. 1. 为人诚实 要正确地认识自己,在面试或者工作的过程中,应如实表达自己 ...

  3. 软件测试论坛_浅谈软件测试的未来,我们该如何做好准备

    (松勤软件测试讯)如果你打算从事软件测试工作,那么了解这个行业的发展方向以及软件测试的未来是很重要的.当我10年前开始作为软件测试员的职业生涯时,测试并没有现在那么重要.虽然,每个有开发人员开发应用程 ...

  4. 【软件测试工程师】关于软件测试术语的定义,软件测试中的分类

    01. 为什么要在一个团队中开展软件测试工作? 因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作.在测 ...

  5. 软件测试c语言代码_软件测试理论知多少?

    有源医疗器械很多都是带有软件的,今天一起了解下软件测试理论:软件测试目的,软件测试定义,软件测试原则,软件测试分类,软件测试方法,测试基本流程. 软件测试定义:软件测试(英语:software tes ...

  6. 软件测试需要什么思维,做软件测试需要学习什么

    软件测试入门需要具备测试理论.测试工具.黑白盒测试.数据库知识操作系统等专业知识.以下是关于做软件测试需要学习什么的具体介绍,来看看吧! 一.软件测试学习内容 1. 专业技能 专业技能是必须掌握的知识 ...

  7. 【软件测试】快速入行软件测试

    快速入行软件测试 1.初识软件测试 软件测试的前景与现状 软件测试越来越被企业重视,人才稀缺,市场需求扩大. 软件测试人员的职业生涯规划 技术型路线.自动化测试工程师.性能测试工程师.安全测试工程师等 ...

  8. 软件测试需要学什么?软件测试技能图谱

    很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识.下面是根据本人的理解,粗略整理的一个学习大纲,基本上涵盖了软件测试工程师需要掌握的全部技能,希望对刚入行或者准备学习测试的朋友提供一点 ...

  9. 软件测试的“道”与“术” - 软件测试新观察(转载崔启亮的文章)

    软件质量是指软件的功能和性能满足用户需求和期望的程度.随着IT技术在各个行业的广泛深入地应用,软件质量成为普遍重视的因素.如何有效地提高软件质量,增强软件产品的竞争力,是软件企业管理和技术人员共同面对 ...

  10. 南京软件测试自学英语,南京软件测试培训班怎么样?南京软件测试培训班学什么?...

    南京软件测试培训班怎么样?软件测试再互联网行业中还算是一个新兴的行业,就业竞争压力比较小,薪资比较高.对于正在找工作,或者想要转行的人来说,或许是一个比较好的方向.那么在南京软件测试培训班中,大家都要 ...

最新文章

  1. r语言ggplot怎么把多个维度数据合并在一个图中表示_R语言作图——Histogram
  2. csu 1019 Simple Line Editor
  3. mvnrepository总是出现烦人的one more step验证
  4. SAP UI5 fullScreenPageRoutes in Component.js
  5. java 数组中某个数出现的概率_剑指Offer解题报告(Java版)——排序数组中某个数的个数 38...
  6. 使用WebClient请求WCF REST服务
  7. 使用python的openpyxl模块操作excel
  8. 【LeetCode笔记】56. 合并区间(Java、排序)
  9. C 温故知新 之 指针:函数指针变量、指针型函数
  10. 【干货】图文并茂生动详解命名实体识别NER理论与代码实战
  11. Android计算器(仿小米计算器)
  12. ln火线零线_插座怎么接LN线
  13. web小说目录倒序php实现,php实现WEB在线文件管理器
  14. 嵌入式软硬件模块化开发和工具性总结
  15. visio设置页元素组
  16. CPU架构解析:ARM和x86大比拼
  17. ionic3 封装http请求、创建provider
  18. 初始内省Introspection
  19. 首次使用HOOKAPI暴力破解SQLITE3加密的数据库
  20. Liteos-A任务调度之OsTaskStackInit函数

热门文章

  1. java mybatis 返回map_Mybatis中返回Map
  2. dj java实现_OpenJFX DJ 风格 Java 桌面音乐播放器
  3. 用了那么久的手机,你还不知道这样屏蔽广告?操作只要1步
  4. 常见主机漏洞及修复方案
  5. 使用win2012 与 Win2012搭建子域和 使用win2008与win2012 搭建域林,建立域信任关系
  6. NGINX的奇淫技巧 —— 5. NGINX实现金盾防火墙的功能(防CC)
  7. 古人云,德者本也,财者末也
  8. 咸鱼K210体验笔记—图片拍摄
  9. ESP8266 AT指令
  10. Rectangle类介绍