软件测试从零开始

目睹过很多测试新手的困惑:因为初涉软件测试行业,没有接受系统的培训,对软件测试一无所知,既不知道该测试什么,也不知道如何开始测试。此前给测试新手写过两篇文章,《测试职业规划》、《10年软件测试工作总结》,限于篇幅,泛泛而谈,对测试新手快速开展具体工作的帮助不大。今天本文分别讲一讲从测试前的准备工作、测试需求了解、测试用例设计、测试用例执行到测试结果分析的五个阶段中,测试新手需要注意的几个要点。

1、测试准备工作

我们测试人员的工作,就是为质量保证提供信息。作为一名软件测试新手,如何才能发现所有的 BUG ?如何开始测试工作?即便面对的是一个很小的软件项目,测试需要考虑的问题也是方方面面的,包括硬件环境、操作系统、产品的软件配置环境、产品相关的业务流程、用户的并发容量等等。该从何处下手呢?

1.1 向有经验的测试人员学习

这几年在带新人的过程中,整理了一些软件测试技术、测试流程、测试工具和质量管理相关文档资料,有兴趣的朋友可以评论里说一下。
     跟有经验的人学习大家都知道,不过需要注意的是,应时刻保持质疑和寻根究底的态度去学习。

1.2 阅读软件测试相关书籍

有人整理过一篇介绍测试书籍的文章:http://www.cnblogs.com/scios/articles/4977953.html。另外,多看看论坛和测试方面的公众号,如光荣之路、51testing。

1.3 查看历史bug

现在多数公司都有bug管理工具,里面的bug对我们了解项目是非常有价值的。这些bug是软件产品问题的集中体现。一般来说,我们需要关注这几个点:

  • bug描述:照着葫芦画瓢。
  • 开发对bug的解决方法:理解原理,积累经验。
  • 常见问题有哪几类,都是什么原因导致:总结并作bug预防
  • 哪些模块容易出问题:问题多的重点测
  • 哪些开发出的问题多:判断开发水平,水平低的重点测
  • 谁提的bug多/好:以后多跟他学习

1.4 走读历史用例

走读别人的用例来提升自己的用例编写水平。走读测试用例也是有技巧的。走读用例时除了学习别人的语言描述技巧,更重要的是多问几个为什么,为什么他要写这条用例,为什么把这个模块自动化而不是另一个?

测试用例编写有几个原则:准确性、简洁性、可重用性、适用性、可跟踪性、纯净性。当然这几个原则并不是在所有情况下都要遵守的,这取决于项目、执行人等多种情况。我计划于近期在我的qq群开一次测试用例的课程,欢迎有兴趣的来一起学习。

1.5 学习产品相关的业务知识

软件测试人员不仅要掌握软件测试技术相关知识,对产品相关的业务知识也要学习。这很好理解,如果从事财务软件的测试工作,一定要学习财务知识;如果从事通讯产品测试工作,那么相关的通讯理论知识也是必须的;如果从事银行软件的测试,银行的业务流程也是不可或缺的知识点。

2、识别测试需求

识别测试需求是软件测试的第一步。如果开发人员能够提供完整的需求文档和接口文档,那固然好。可以根据需求文档中描述的每个功能项目的输入、处理过程和输出,来设计测试用例。如果开发人员没有提供软件需求文档,那该如何是好?下面给出几个有效的方法:

2.1主动获取需求

开发人员通常不会更好地考虑软件测试,如果没有开发流程的强制规定,他们通常是不愿意提供任何开发文档,即便有强制规定,需求文档也未必能够真正指导软件系统测试工作。因此,需要测试人员发挥主观能动性,与相关的软件开发项目经理和软件开发人员保持沟通,了解软件实现的主要功能是什么,并记录得收集到的信息。一般来说,开发人员即便没有提供相关需求文档,也会保存一些简单的过程文档,主动向开发人员索要这些文档,可以作为测试的参考。此外,可以与公司的技术支持(业务/客服)人员交流,技术支持(业务/客服)人员是最贴近用户的人,因此,通过交流可以获取第一手的用户使用感受,在测试的过程中会更加贴近用户。
     当拿到相关的资料后,从哪些方面分析需求?如何与开发人员交流需求?其实,只要把握需求分析的几个关键的点就可以解决问题:输入、处理过程、输出、性能要求、运行环境,下面针对每一个项目逐一分析:
     输入: 与该需求相关的一切可能输入,可以从这几方面考虑,输入来源、输入参数的数量、输入参数的度量单位、输入参数的时间要求、输入参数的精度和输入参数的有效输入范围。在测试用例设计中,这部分内容作为测试用例输入的依据。
     处理过程: 描述对输入数据所执行的所有操作和如何获得输出的过程。测试人员了解处理过程即可,在测试过程中发现 BUG 时候,如果对处理过程了解的深入,对定位问题根源有很大的帮助。
     输出: 描述每个需求的输出结果,包括输出的位置,输出参数的数量、输出参数的度量单位、输出参数的时序、输出参数精确度、输出参数的有效输出范围、错误消息。在测试用例设计中,这部分内容作为测试用例的预期输出。
     性能要求: 与该需求相关的性能要求,比如 “ 插入 ATM 取款卡后, 3 秒钟内弹出提示用户取款的图形界面 ” 。 3 秒钟这一限制,就是对需求的基本性能要求。
     运行环境: 软件的运行所需的环境,包括硬件平台的要求、操作系统的要求、数据库的要求,以及其它相关支撑软件的要求。

2.2 确认需求的优先级

确认需求的优先级是很必要的,在产品进度比较紧的情况下,需要根据优先级来安排迭代频次。

有可能的话,推动公司规范的开发流程,让开发人员在编写软件需求文档的时即对需求排优先级。但是开发未能提供,那么需求的优先级只能由测试人员完成了。

2.3 加入开发小组的(邮件)群组

测试人员需要通晓被测试产品,但是,产品在开发的过程中往往是不断变化的。如果软件开发团队有一套变更控制流程,测试人员会对产品的变更了如指掌。如果没有变更控制,那就要采用其他的土方法了,不如申请加入开发的聊天群,或者邮件群组。当开发人员讨论问题、通知召开技术会议的时候,测试人员可以及时知晓,如果必要,可以参加开发人员的技术会议。

即便公司里面有了软件变更控制流程,加入到开发邮件群组也是一个很好的习惯。

2.4 与开发人员为邻

尽可能跟开发搞好关系,尽可能座次靠近开发。

(未完待续......)

时间: 2024-10-13 21:45:10

软件测试从零开始的相关文章

初学者入门:软件测试从零开始(作者:王威)

初学者入门:软件测试从零开始 作者:王威 本文面向软件测试新手,从测试前的准备工作.测试需求收集.测试用例设计.测试用例执行.测试结果分析几个方面给出建议和方法.鉴于国内的软件开发.测试不规范的现状,本文为软件测试新手提供了若干个软件测试的关注点. [关键词]软件测试.测试用例.测试需求.测试结果分析 引言 几年前,从学校毕业后,第一份工作就是软件测试.那时候,国内的软件企业大多对软件测试还没有什么概念,书店里除了郑人杰编写的<计算机软件测试技术>之外,几乎没有其它的软件测试相关书籍,软件测试

软件测试从零开始——走进软件测试[转]

背景1:大学刚毕业或者未毕业,觉得自己的coding能力一般或者对开发的工作不感兴趣.听说软件测试也不错,并且入门比开发要低,于是寻思着先找一份软件测试的工作. 背景2:本来在其他行业工作,但是发现对该工作没有兴趣或者觉得没有前途.并且听说软件测试很火,并且入门比开发要低,于是寻思着先找一份软件测试的工作. 那么这个行业是不是跟大家想像的一样呢?下面将为大家详细介绍下. 一.认识软件测试 当然,进入这个行业前需要先了解下这个行业的整个发展方向和趋势,这样才能够更好的评估自己是否适合进入这个行业,

从零开始编写自己的C#框架(24)——测试

导航 1.前言 2.不堪回首的开发往事 3.测试推动开发的成长——将Bug消灭在自测中 4.关于软件测试 5.制定测试计划 6.编写测试用例 7.执行测试用例 8.发现并提交Bug 9.开发人员修复Bug 10.对已修复Bug进行返测 11.将修复完成的Bug关闭,对未修复的Bug重新激活 12.灵活使用压力测试工具 13.测试与版本控制 14.小结 15.附件下载 1.前言 对于测试,很多公司并不看重,接触过不少朋友或客户,打开网站随便点击一下,就可以很容易发现爆黄页.404.UI变型(浏览器

20部软件测试视频教程整合

1.软件测试基础及项目实战课程 课程观看地址:http://www.xuetuwuyou.com/course/22 2.性能测试之Tomcat性能调优 http://www.xuetuwuyou.com/course/36 3.性能测试之Apache性能调优 http://www.xuetuwuyou.com/course/37 4.性能测试之Nginx性能调优 http://www.xuetuwuyou.com/course/38 5.MySQL从入门到精通(性能测试与调优) 课程观看地址:

iOS block从零开始

iOS block从零开始 在iOS4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调. block的结构 先来一段简单的代码看看: void (^myBlock)(int a) = ^(int a){ NSLog(@"%zd",a); }; NSLog(@"旭宝爱吃鱼"); myBlock(999); 输出结果: 2016-05-03 11:27:18.571 block[5340:706252] 旭宝爱吃鱼

软件测试概述

• 不论软件的生产者还是软件的使用者,均生存在竞争的环境中: 软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局. 用户为了保证自己业务的顺利完成,当然希望选用优质的软件. 软件带来错误的原因很多,具体地说,主要有如下几点: • 交流不够.交流上有误解或者根本不进行交流 • 软件复杂性 • 程序设计错误 • 需求变化 • 时间压力 • 代码文档贫乏 • 软件开发工具 什么是软件测试 软件测试就是在软件投入运行前,对软件需求分析.设计规格说明和编码的最终复审

软件测试——Peer Review

一.什么是peer review peer review是一种通过作者的同行来确认缺陷和需要变更区域的检查方法.需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排的进度. 二.背景 这周三老师在课上安排了peer review,每5-6个人一个小组,自己进行分工,并对样例软件进行peer review. 三.peer review的图解及分工 Moderator (主持人) 主持人的主要职责,在评审会前负责正规技术评审计划和会前准备的检查:在评审会中负责调

从零开始学android&lt;android事件的处理方式.二十四.&gt;

在android中一共有 多种事件,每种事件都有自己相对应的处理机制 如以下几种 1 单击事件 View.OnClickListener public abstract void onClick (View v) 单击组件时触发 2 单击事件 View.OnLongClickListener public abstract boolean onLongClick (View v) 长按组件时触发 3 键盘事件 View.OnKeyListener public abstract boolean

从零开始编写自己的C#框架(9)——数据库设计与创建

对于千万级与百万级数据库设计是有所区别的,由于本项目是基于中小型软件开发框架来设计,记录量相对会比较少,所以数据库设计时考虑的角度是:与开发相结合:空间换性能:空间换开发效率:减少null异常......当然不同的公司与项目要求不同,初学者要学会适应不同的项目开发要求,使用本框架开发时,必须严格按照本章节的要求来设计数据库,不然可能会产生不可控的异常. 从零开始编写自己的C#框架 数据库设计规范   文件状态: [√] 草稿 [  ] 正式发布 [  ] 正在修改 文件标识: C#框架 当前版本