概述
对测试的一点思考
本文是对自己在实际产品中测试经验的一点总结,同时结合了从几个做测试的同学那里获得的心得。
1. 测试进入越早越好
软件工程是包括需求分析、设计、开发、测试这样一个流程的。测试并不应该放在最后,而是应该从需求分析就开始介入。从需求分析介入可以让测试人员获得最直接的产品功能定位,了解全面的程序功能,形成对产品全貌的认识。这样设计出来的测试案例,会在覆盖局部测试点之外,包括局部之间连接点的测试。
2. 单元测试是基础,必须做扎实
因为自己经验有限,之前很长一段时间的开发都是做一些原型而已,对于测试认识并不深入。通过对云同步客户端的开发,让我对单元测试有了很深刻的认识。单元测试必须做,还得做扎实的原因我认为有两个:
A. 如果不做单元测试,当把不稳定的代码集成在一起后,出现问题时将无法判断是哪一个模块的问题。
B. 开发团队中大家的开发水平是不一致的,通过单元测试保证大家编写出的代码处在一个质量水平线上。
从我实际开发和测试的经验看,有几个部分的代码必须做单元测试:
A. 字符串操作函数。字符串操作是程序中最常用的情况,最容易出现内容访问错误,所以必须测试。
B. 公共的函数库。公共函数是必须测试的。包括功能,调用方式,前后不同版本间的兼容性,多线程调用等问题。对于测试案例的设计我会再后面单独用一个小节分析。
C. 线程函数必须测。首先,需要单独测试每个线程函数本身,通过反复的创建、销毁线程来运行线程函数,检测内存使用情况等。其次,当该线程函数与其它线程有资源共享、或者互斥、同步的情况时,需要将相关联的线程联合在一起进行测试。从而发现是否存在死锁,共现资源耗尽等问题。
D. 网络通信代码必须测。网络通信也是问题的高发区,从字符的变化,参数的解析,网络的不稳定等等都会造成程序的不稳定,所以要及早进行测试。
3. 集成测试,需覆盖全面的功能点
当各个模块的功能完成后,就进入了集成测试阶段。之前需求分析文档,产品功能定位文档是这一阶段的测试纲领。关于集成测试有下面几点心得。
1. 结合功能文档,需要做十分细致的细化工作,细化到十分详细的测试功能点。不要有遗漏,要按照良好的操作调理进行整理,考虑充分的分支情况。
2. 测试案例的设计,需要能清晰的说明测试前置条件,测试步骤,预期的结果,以及最后所得的结果。通过对比测试所得的结果和预期结果发现问题。
3. 测试发现的问题不要直接提交,最好是在问题可以被准确重现时,再作为正式的Bug提交。不然开发人员很难理解问题出现在那里。如果Bug描述不清楚,容易造成测试人员和开发人员之间的争吵。
4. 当然有些Bug不容易进行重现,最好能保留故障发生时详细的现场环境。比如日志信息、转储文件(Windows下的崩溃处理机制)等等。
5. 这里需要补充说一点,程序里面对于输出的日志最好分级,同时允许通过外部的配置文件等方式控制程序输出日志的详细程度。比如,测试人员通过配置可以让程序输出十分详细的内部运行情况,而交付给用户的版本只用输出必要的运行信息。这样将给测试人员和程序发布都提供便利。
4. 性能测试与压力测试,调优程序
在功能测试完成后,进入性能和压力测试阶段。产品之前提出的性能指标要逐项进行测试。压力测试的目标是发现程序在稳定性、可靠性方面的不足。性能测试发现程序是否能够满足高标准的性能要求。
压力测试方面,我有几点体会:
1. 编写必要的程序,通过足够长时间运行来测试程序的稳定性。同时观察在这一段时间内程序对于资源的使用情况。可以得出程序是否能够稳定的长时间运行,内存是否存在泄漏等问题。
2. 足够的数据量给程序造成压力。程序在处理不同数据量的情况下,肯定会不同。不要只是简单地使用很少的数据进行测试。首先要模拟真实环境中的数据规模进行测试。然后进行高于真实情况下的数据规模测试。
3. 考虑极限情况。考虑极限情况下的压力。这一点需要结合不同的软件进行设计。
在性能测试方面,我的体会是:
1. 首先关注关键功能的性能。比如云同步客户端对监控目录下短时间,大规模文件的变化是否能够处理,是否存下一个性能的拐点。再比如,Robin的网络传输性能。什么时候样的情况下能达到最大的网络传输速度,什么样的文件最消耗网络带宽,等等。都需要通过性能测试进行发现。
2. 模拟真实环境的性能测试。在通常的性能测试中,会通过简化测试数据类型、测试操作、测试对象等方式获得最好的性能值。但真实的使用情况却不是这样,所以还是最好能使用真实的数据进行测试。
5. 测试案例的设计思路
这里想谈一谈对于测试案例设计的思路问题。对于一个产品,可以从内部和外部两个角度看。内部又包括两层含义,首先是产品本身的功能,性能,以及各个组成部分等等;其次是产品不同版本间的连续性问题。外部也包括两层含义,首先是产品所依赖的外部环境,以及对外部环境的影响,对资源的占用,对同一系统上其它程序的影响等;其次是外部环境对产品的影响,比如外部环境不友好的情况下对产品进行的攻击、破坏行为等等。
上面四个方面是设计测试案例需要思考的四个大方面。目前我能想到的就这么多了。太细节的点一时还没有整理清楚。
最后
以上就是暴躁乌龟为你收集整理的对测试的一点思考1. 测试进入越早越好2. 单元测试是基础,必须做扎实3. 集成测试,需覆盖全面的功能点4. 性能测试与压力测试,调优程序5. 测试案例的设计思路的全部内容,希望文章能够帮你解决对测试的一点思考1. 测试进入越早越好2. 单元测试是基础,必须做扎实3. 集成测试,需覆盖全面的功能点4. 性能测试与压力测试,调优程序5. 测试案例的设计思路所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复