【转】功能测试的经验总结

 测试准备:

  1、实际测试总比你预想的要花更多的时间,遇到更多的麻烦,所以要尽量争取足够的测试时间,不要不加思索的说这个东西我一星期肯定可以测完。还要尽可能考虑到测试过程中的风险,比如测试环境的问题、部署失败的问题、开发延期的问题、人员变动的问题等等。

  2、实际上从来都没有过完善的需求,可惜的是教科书从来也没讲过如何应对不完善的需求。我曾不止一次的想如果让做需求的和编程人员都来做两个月的测试,他们的工作能力肯定会有质的飞跃,可惜这只是我的梦想。需求说明书中总会遗漏很多细节,通常需求人员认为那些地方都是理所当然无需赘言的,但开发人员却会有不同的理解,所以测试人员要尽可能的在开始编程之前找出需求中所有不明确、有遗漏的地方。如果能在讨论需求的时候就提出问题那比从已经写好的需求说明书中挑错要好的多。问题越早发现越容易解决。

  3、测试人员最好能在开发开始之前,总结出一个列表,列表中列出需要开发人员统一处理的一些细节,比如表单中表头和表内容用什么字体字号;是左对齐还是居中;翻页控件是放在表单左下角还是右下角还是居中;标点符号是用中文半角还是全角;选择框和下拉菜单中的内容按什么排序;搜索结果是否需要排序;错误提示是弹出窗口还是显示在原界面;错误提示语也应尽量统一风格;查询后是否要保存查询条件;浏览器的前进后退是否需要限制等等。项目经理最好统一给开发人员讲一下这些规矩,这样会在测试时省很多事。

  测试用例:

  1、测试用例要因人而异,如果自己已经很熟练了,测试用例可以只是简单的提示,不需写出详细的执行步骤和测试数据,以免因为无谓的文档浪费太多时间。如果很可能别人还要复用你的测试用例而且有充足的时间,这时就可以把测试用例写详细点。

  2、至于测试数据需不需要在设计测试用例时就写出需要根据实际项目情况来定,我一般认为最好把测试用例都写完之后,再准备测试数据,一条数据可以覆盖多个测试用例,这样很可能四五条数据就可以覆盖十几个测试用例,这样可以提高效率。教科书通常认为一条测试数据最好对应一个测试用例,这样测试执行失败时就容易定位问题出在哪里。但实际情况是只有极少数的测试会执行失败并因此发现bug,但如果因为这极少数的失败的情况来降低整个测试执行的效率就显得缺乏实践性了,况且并不是说一条测试数据覆盖了多个用例时就不容易定位错误的根源。所以测试要根据实际情况灵活进行。

  3、如果要写详细的测试用例,就一定要写的非常的清楚明了,最好让一个不懂项目情况的人也能根据用例执行测试。而且测试用例和测试数据中的关键值一定要用颜色标出。最好还能写出每条用例的测试目的,这样方便日后别人补充你的测试用例。

  测试执行:

  1、如果时间允许,测试一个页面时,要把这个页面的所有功能点的正常异常情况都测完之后再去测下一个页面,这样不容易遗漏。大多时候时间都不很充足,这时要先测主要流程和主要的功能点,这些完成之后再去测细节和异常情况,因为并不是有bug就不能上线的。

  2、如果发现了很多界面性的小问题,不要连续提出,最好先提一两个功能性的问题,再提一两个界面性的问题,这样间隔着提bug有利于开发人员接收,免得他把你提的连续的四五个界面性的bug都拒绝了。另外,一个bug里最好不要既包括功能性问题又包括界面性问题,这样有可能开发人员只解决了功能性问题就把bug 关了。

  3、可以一条测试数据覆盖多个测试用例,这样可以提高效率,前提是程序的质量还可以或者可以根据测试结果(结果数据和log)定位是哪个功能点的问题。

  4、如果时间充足的话,测试要在安静的环境中不慌不忙地进行,这样容易联想到更多的测试功能点,也可能因此发现更多的bug。如果测试太匆忙,通常测试人员只是想尽快地执行完所有测试用例。

  5、如果测试还要进行多个版本,则需要不断完善测试用例,并总结为什么一开始会遗漏这些测试点。

  6、测试的目的是发现bug,不是执行完所有用例或者覆盖尽可能多的路径。所以如果全面的测试已无益于发现新的bug时,要让测试人员充分发挥自己的主观能动性,随机地对可疑的地方进行测试。

  7、发现bug时要确定自己操作和理解没有问题再向开发人员提出,而且要注意表达方式。

  8、平日最好能和开发人员保持不错的关系,这样有利于测试的进行。

  9、不要迷信功能测试的自动化,我认为只有在版本稳定后还需要进行多个版本的测试时才需要测试自动化,而且要求测试人员都可以熟练使用测试自动化工具。自动化测试的最大困难可能是需求和界面的频繁变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件IO——open函数的参数flags详解

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 前言 在命令行中使用“man 2 open”可以获知open这个文件IO API的使用方法。 open函数的模型有两种,根据需要选择其中一种即可。 int open(const char *pathname, int flags); int open(…

oracle建库及plsql建表空间的用法

所有程序—》ORACLE-JHEMR-----------》配置和移植工具-----》DataBase Configuration Assistant-------中间就需要改一个数据仓库即可,其他的都是下一步,统一口令为**然后建监听服务,测试时改登录为system **,之后用plsql登录上&…

USACO 1.5.4 Checker Challenge

题意:经典的八皇后问题 解法: 采用朴素的每一次放置都与前面的所有行进行比较,在N 13的时候时间会爆掉 《入门经典》上提供的方法很经典,vis数组的使用,具体见《入门经典》125页 /* ID:lsswxr1 PROG:checker LANG:C */…

Spark 1.1.1 Submitting Applications

回到目录 Submitting Applications The spark-submit script in Spark’s bin directory is used to launch applications on a cluster. It can use all of Spark’s supported cluster managersthrough a uniform interface so you don’t have to configure your applicatio…

如何描述变量:存储类、生命周期,作用域、链接属性

可以根据一个变量的存储类、作用域、链接属性、生命周期来描述该变量。 其中,存储类决定了生命周期,作用域决定了链接属性。 存储类 存储类表明变量在哪里存储。见博文Linux下C语言程序的内存布局_天糊土的博客-CSDN博客 作用域 作用域表明变量起作用的…

mysql 修改表名的方法:sql语句

在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有大量的数据了,如何保留数据,只更改表名呢? 可以通过建一个相同的表结构的表,把原来的数据导入到新表中,但是这样视乎很麻烦。 能否简…

java String类 常用函数

为什么80%的码农都做不了架构师?>>> 1. 获取 int indexOf(int c) int indexOf(int c, int start) char charAt(int index) 2.判断 判断是否包含一个字符串 boolean contains(CharSequence cs) indexOf() //也可以用来判断是否包含 判断是否有内容 boole…

设备驱动程序的简介

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、驱动的概念 设备驱动程序(Device Driver),简称驱动程序、驱动(Driver),指操作系统中用来操控硬件的代码。 驱动是硬件与操…

Android开发实践:掌握Camera的预览方向和拍照方向

Android的Camera相关应用开发中,有一个必须搞清楚的知识点,就是Camera的预览方向和拍照方向,本文就重点讨论一下这个问题。图像的Sensor方向:手机Camera的图像数据都是来自于摄像头硬件的图像传感器(Image Sensor&…

mknod命令:创建设备文件

参考博客:mknod_liangkaiming的博客-CSDN博客 参考资料:man手册 可以通过man 1 mknod查看mknod命令的内容。 1、mknod 命令的作用是make block or character special files,即创建块设备或者字符设备文件。 2、mknod 命令的格式是&#xf…

DreamWeaver使用技巧学习心得

全是我在平时学习网页时积累的,觉得会对遇到同样问题的友人有帮助,都是一些觉得困惑好久然后豁然开朗的心得。 希望大家都能体会到,解决难题后的快乐。 都是我恍然大悟的地方,不够恍然大悟的就不贴上来了。 1.让一个区块居中&…

【转】每天一个linux命令(39):grep 命令

原文网址:http://www.cnblogs.com/peida/archive/2012/12/17/2821195.html Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全…

SecureCRT显示乱码的解决办法

发现问题 在Ubuntu中编写代码,输出语句里带有中文,比如"printf("读出来的内容是:%s.\n", buf);"。使用交叉编译工具链编译后,将可执行程序转移至开发板系统运行,并使用SCRT来观测测试结果。此时发…

WCF数据契约

当使用DataMember时,和访问符无关,及时使用了private,成员都是可见的。相反如果使用static,为不可见。 上述的两个数据成员是等效的,如果是等效的话 数据成员的顺序也必须是相同的。 4.数据契约已知类型——使用KownTy…

Linux中NFS服务器的配置(/etc/export)

本文转载于NFS /etc/exports参数解释,有修改。 问题引入 之前利用NFS从ubuntu中下载根文件系统到开发板(见博客以NFS方式挂载rootfs的设置方法),但只是遵照教程安装的,对里面的设置含义不是很清楚。后来在开发板上上进…

cocos2d 很水很水的看法

这几天接了个扯淡的项目 cocos2d的 。 本来以为是Cpp的, 结果不是2dx ,而是OC的2d。看了几天的官方的dome ,大概知道是什么样子的。我就简单的纪录一下好了: cocos2d的整个框架呢, 分为3层 — 类似舞台剧 演戏嘛 肯定有个boss的 …

详解EBS接口开发之采购申请导入

更多内容可以参考我的博客 详解EBS接口开发之采购订单导入 http://blog.csdn.net/cai_xingyun/article/details/17114697 /*--将数据写入至采购申请接口表*/PROCEDURE insert_procure_main(errbuf OUT NOCOPY VARCHAR2,retcode OUT NOCOPY VARCHAR2)…

sys文件系统

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 前言 Linux2.6版本的内核引入了sys文件系统。 在 proc文件系统介绍和使用 中,介绍了sys文件系统与proc文件系统的差异。它们都是虚拟文件系统,都是内核中的数据结构的可视化接口。它…

spring mvc 配置解析之xml

2019独角兽企业重金招聘Python工程师标准>>> ##mvc.xml中可配置的元素## 既然是xml,当然是要遵循schema的规定. 那么schema文件在哪呢? 定位方法就是解开这个jar文件,找到META-INF/spring.schema文件,这是个文本文件,里面包含了namespace以及其对应的xsd文件的位置…

IOS-UITextField类

文字属性 text placeholder   //默认使用70%灰色 font textColor textAlignment 文字大小 adjustsFontSizeToFitWidth minimumFontSize 编辑行为 editing     //是否正在编辑(read-only) clearsOnBeginEditing 展现形态 borderStyle     //默认UITextBord…