软件测试培训之测试的常见问题

网友投稿 739 2022-11-10

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

软件测试培训之测试的常见问题

1 软件测试仅仅是为了发现软件缺陷

对软件测试略有了解的人都知道,在说到软件测试时,多数人都会强调软件测试的目的是为了发现软件中的缺陷。一个好的测试用例在于能发现至今未发现的缺陷。也就是人们常说的:软件测试可以说明软件存在缺陷,但不能说明软件不存在缺陷。

这种观点不能说是错误的,但至少是不全面的。如果从软件过程的角度来看,就可以看到一个被大多数人忽略的软件测试目的是:软件测试可以帮助发现当前开发工作所采取的软件过程的缺陷,以便进行改进。

具体的说,软件测试并不仅仅是为了要找到软件中的缺陷,而是分析错误产生的原因和其产生的阶段。通过分析结果,从软件过程方面去改进,从而避免今后有类似的错误出现,并能发现有关联的潜在缺陷。这样,就可以尽早的发现和修正缺陷,并可以预防某些缺陷的产生。因此,应该正确分析与利用测试的结果并有效地进行软件过程改进,从根本上提高软件质量,降低软件开发成本。

2 编码完成后再进行软件测试

根据软件生命周期的定义,软件项目开发过程一般要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,软件测试,软件发布。因此,许多人认为软件测试只是软件编码后的一个过程。这是不了解软件测试周期的真正含义造成的错误认识。

软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。因此,软件测试贯穿于软件项目的整个开发过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,以保证各个阶段的正确性。软件测试的对象不仅仅是软件代码,还包括软件需求文档和设计文档。软件开发与软件测试应该是交互进行的,例如,单元编码需要单元测试,模块组合阶段需要集成测试,系统集成阶段需要系统测试。如果等到软件编码结束后才进行测试,那么,测试的时间将会很短,测试的覆盖面将很不全面,测试的效果也将大打折扣。更严重的是如果此时发现了软件需求阶段或概要设计阶段的错误,要修复错误,将会耗费大量的时间和人力。

高效的系统测试有赖于高效的计划。测试用例像源代码一样,需要设计、评审和实施。如果不想让测试成为阻碍软件发布的关键路径,就要尽早开始测试计划。可以在了解了需求之后就开始。若采用分阶段交付使用的方法,在第一阶段中途就可获得可执行的软件,这时就可以开始系统测试。

3 测试代码随意编写

大家肯定知道测试代码是不能随意编写的,并且在编写测试代码时也不是抱着一种随意的态度,但是编写出来的测试代码以及测试代码运行的情况往往表现出了一种随意性和无序性。可能是因为没有弄清楚测试的真正意图所在。

测试是用来检验软件系统是否满足了需求。所以,测试代码一定要明确的表达出这一点来。如果测试者真正从用户的需求出发,那么他编写出来的测试脚本应该是每一个测试用例都清晰的刻画了一项用户的需求,然后检验系统是否实现了用户期望的功能。这样的测试才是有明确目的,才是最有效的测试。软件系统测试计划应能覆盖百分之百的软件功能。可以通过建立一个“跟踪需求能力矩阵”来保证。矩阵的行为测试用例,列为需求。矩阵中,用数字1标识该行的测试用例核实了该列的需求。根据矩阵中1的位置,我们可以判断出是否有需求未被核实,或是否有测试用例为无效用例。

在单元测试中,也经常会看到一些类似的错误测试方法。很多的测试者往往针对程序中每个特定的实现细节进行测试。然而特定的实现细节是很容易变化的,一旦测试的程序中某个实现细节发生了变化,原先的测试代码就要进行相应的更改,否则就失去了意义。这种频繁更改的代价是巨大的。

细想一下,造成容易陷入针对实现细节测试的原因主要是由于先编写完代码,然后才去进行测试,潜意识中就会不由自主的想去验证已经完成的某些实现细节。如果能够在编写代码前,首先编写针对该模块的测试代码,情况就会有很大的不同,因为这会迫使你从使用者的角度去考虑问题。结果就是会把关注点放在模块的功能上,而不是某种实现细节。这样写出来的测试代码要稳定的多,也有效的多。

4 不需专门的测试人员

了解软件测试的人都知道,测试是需要专门的测试工程师。然而事实上,多数软件测试的工作都是由编程人员自己进行的。但编程人员与测试人员的思维方式不同。编程人员的工作是编码,他们潜意识里进行测试是想验证自己的代码没有错误,而不是发现错误,有时可能会为了方便测试而修改源代码。测试人员则应该具有挑刺的性格,他的工作是否定生成的代码,找出代码中存在的缺陷。任何一个人都难以同时胜任这两种具有不同工作取向的任务。

所以,资深的程序员不一定是一名优秀的测试工程师,必需由独立的人员和小组来进行软件测试。并且单单指定一个或几个人,说他们现在就是测试小组的成员是不够的,应该培训该小组成员如何进行软件测试。

那么,在一个项目中开发人员与测试人员的比例为多少是比较合理的?一般情况下,对于生命悠关的软件,如航天飞机的飞行控制软件,每个开发者对应10名测试者;而不要求高可靠度的室内商业软件,一个测试者可以对应3到4个开发者。

上一篇:软件测试培训之测试要领
下一篇:软件测试培训之测试思想
相关文章

 发表评论

暂时没有评论,来抢沙发吧~