5  /  9  页   «23456789 跳转 查看:3419
发表新主题 回复该主题

标题: 每日一“贴”

回复: 每日一“贴”

第40贴:自动化测试中常见的问题


在软件测试自动化的实施过程中会遇到许多问题,以下是一些比较普遍的问题:



不现实的期望。一般来说,业界对于任何新技术的解决方案都深信不疑,认为可以解决面临的所有问题,对于测试工具也不例外。但事实上,如果期望不现实,无论测试工具如何,都满足不了期望。



缺乏测试实践经验。如果缺乏测试的实践经验,测试组织差,文档较少或不一致,测试发现缺陷的能力较差,那么首先要做的是改进测试的有效性,而不是改进测试效率。只有手工测试积累到一定程度,才能做好自动化测试。



期望自动测试发现大量的新缺陷。测试第一次运行时最有可能发现缺陷。如果测试已经运行,再次运行相同的测试发现新缺陷的概率就小得多。对回归测试而言,再次运行相同的测试只是确保修改是正确的,并不能发现新的问题。



安全性错觉。如果自动测试过程没有发现任何缺陷,并不意味着软件没有缺陷。可能由于测试设计的原因导致测试本身就有缺陷。



自动测试的维护性。当软件修改后,通常也需要修改部分测试,这样必然导致对自动化测试的修改。在进行自动化测试的设计和实现时,需要注意这个问题,防止自动化测试带来的好处被高维护成本所淹没。



技术问题。商业的测试工具也是软件产品,并不能解决所有问题,通常在某些地方还会有欠缺。测试工具都有适用范围,要很好的利用它,对使用者进行培训是必不可少的。



组织问题。自动测试实施并不简单,必须有管理支持及组织艺术。

 

回复: 每日一“贴”

第40贴:自动化测试中常见的问题


在软件测试自动化的实施过程中会遇到许多问题,以下是一些比较普遍的问题:



不现实的期望。一般来说,业界对于任何新技术的解决方案都深信不疑,认为可以解决面临的所有问题,对于测试工具也不例外。但事实上,如果期望不现实,无论测试工具如何,都满足不了期望。



缺乏测试实践经验。如果缺乏测试的实践经验,测试组织差,文档较少或不一致,测试发现缺陷的能力较差,那么首先要做的是改进测试的有效性,而不是改进测试效率。只有手工测试积累到一定程度,才能做好自动化测试。



期望自动测试发现大量的新缺陷。测试第一次运行时最有可能发现缺陷。如果测试已经运行,再次运行相同的测试发现新缺陷的概率就小得多。对回归测试而言,再次运行相同的测试只是确保修改是正确的,并不能发现新的问题。



安全性错觉。如果自动测试过程没有发现任何缺陷,并不意味着软件没有缺陷。可能由于测试设计的原因导致测试本身就有缺陷。



自动测试的维护性。当软件修改后,通常也需要修改部分测试,这样必然导致对自动化测试的修改。在进行自动化测试的设计和实现时,需要注意这个问题,防止自动化测试带来的好处被高维护成本所淹没。



技术问题。商业的测试工具也是软件产品,并不能解决所有问题,通常在某些地方还会有欠缺。测试工具都有适用范围,要很好的利用它,对使用者进行培训是必不可少的。



组织问题。自动测试实施并不简单,必须有管理支持及组织艺术。

 

回复: 每日一“贴”

第41贴:测试自动化的限制


测试自动化可以带来非常明显的收益,但也有其限制,主要有:



1.
不能取代手工测试



2.
手工测试比自动测试发现的缺陷更多



3.
对测试质量的依赖性极大



4.
测试自动化不能提高有效性



5.
测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。



6.
工具本身并无想像力



另外,人工测试比测试工具更优越的另一个方面是可以处理意外事件。虽然工具也能处理部分异常事件,但是对真正的突发事件和不能由软件解决的问题就无能为力。

 

回复: 每日一“贴”

第42贴:什么是应首先被自动化的测试?


软件测试的自动化过程是一个渐进的过程,并不需要一开始就对所有的测试进行自动化,这通常也是不现实的。如何选择首先被自动化的测试成了最先遇到的问题。




有些测试,完全没有必要进行自动化,因为自动化它们所需的时间比手工运行它们全部的次数所需的时间总和还长。例如,手工运行一个测试要10分钟,而且一般每个月运行1次,那么一年需要120分钟。但如果自动化这测试需要10小时,那么这个测试需要连续不断运行5年才能收回成本。



有些测试,虽然执行的时间不长,但过程繁琐,需要执行的动作非常多。比如,一个运行10分钟的测试,可能需要击键150次,打开4~5个窗口,切换操作。如果将其自动化,可以提高可靠性,也是值得的。



对软件进行的功能性测试,是测试软件系统在做什么。这些测试可以明确的知道应该在什么情况下输入什么,会有什么样的输出。这样的测试是非常容易被自动化的,也能从自动化中获得较大的收益。



对软件进行的性能测试,包括在不同的系统负载下进行的测试。这些测试需要采用工具辅助完成,非常适合进行自动化。



如果在测试中,运行10%的测试需要花费90%的时间,那么将这10%的测试自动化是值得的。



以下列出了选择首先进行自动化时要考虑的因素:



非常重要的测试



涉及范围很广的测试



对主要功能的测试



容易自动化的测试



很快有回报的测试



运行最频繁的测试



应该注意避免一口气自动化太多的测试。太多的工作导致参与人员工作积极性下降,可维护性下降,增加工作的风险。寻找可快速制胜的测试,尽快让大家看到工作成果,有助于获得更多的工作支持。

 

回复: 每日一“贴”

第42贴:什么是应首先被自动化的测试?


软件测试的自动化过程是一个渐进的过程,并不需要一开始就对所有的测试进行自动化,这通常也是不现实的。如何选择首先被自动化的测试成了最先遇到的问题。




有些测试,完全没有必要进行自动化,因为自动化它们所需的时间比手工运行它们全部的次数所需的时间总和还长。例如,手工运行一个测试要10分钟,而且一般每个月运行1次,那么一年需要120分钟。但如果自动化这测试需要10小时,那么这个测试需要连续不断运行5年才能收回成本。



有些测试,虽然执行的时间不长,但过程繁琐,需要执行的动作非常多。比如,一个运行10分钟的测试,可能需要击键150次,打开4~5个窗口,切换操作。如果将其自动化,可以提高可靠性,也是值得的。



对软件进行的功能性测试,是测试软件系统在做什么。这些测试可以明确的知道应该在什么情况下输入什么,会有什么样的输出。这样的测试是非常容易被自动化的,也能从自动化中获得较大的收益。



对软件进行的性能测试,包括在不同的系统负载下进行的测试。这些测试需要采用工具辅助完成,非常适合进行自动化。



如果在测试中,运行10%的测试需要花费90%的时间,那么将这10%的测试自动化是值得的。



以下列出了选择首先进行自动化时要考虑的因素:



非常重要的测试



涉及范围很广的测试



对主要功能的测试



容易自动化的测试



很快有回报的测试



运行最频繁的测试



应该注意避免一口气自动化太多的测试。太多的工作导致参与人员工作积极性下降,可维护性下降,增加工作的风险。寻找可快速制胜的测试,尽快让大家看到工作成果,有助于获得更多的工作支持。

 

回复: 每日一“贴”

第43贴:工具的选择:创建还是购买


在评估了商业市场后,你可能会发现在你的限制之内没有符合你需求的工具。这时需要考虑是否自行开发自己的工具,还是等待市场上出现满足要求的新工具。



自行开发新工具有以下特点:



1
、它将是最合适你的需求的



2
、可以在工具中补偿被测软件缺乏的可测试性



3
、工具可以假设很了解被测程序,因而减少了实现测试自动化所需的工作



4
、在文档、帮助和培训方面可以不用提供很好的支持



5
、工具可能具有某些典型的问题,如结构、可扩展性等



6
、用户界面不友好



商业工具有以下特点:



1
、获得一个指定功能和性能标准的工具的费用可能比自行开发一个工具的成本要低



2
、在文档、帮助和培训方面必须提供良好的支持



3
、工具通常应该很有吸引力



4
、即使使用一个商业工具,可能无法完全避免建立自己的工具



但即使决定自行开发测试工具,也不要试图生产一个可以广泛使用的商业工具。

 

回复: 每日一“贴”

第44贴:自动化脚本之线性脚本


线性脚本是录制手工执行的测试用例得到的脚本。这种脚本包含所有用户的键盘和鼠标输入。如果仅使用线性脚本技术,每个测试用例可以通过脚本完整地被回放。线性脚本中也可能包括比较,比如检查某个窗口是否弹出。



手工运行10分钟的测试用例,可能需要20分钟到2个小时才能完成测试自动化的工作。因为录制的脚本需要维护,尤其是增加部分内容后的维护和测试需要花费很多时间。而且自动化以后的测试执行的时间会大于10分钟。



线性脚本有以下的优点:



1
、不需要深入的工作或计划



2
、可以加快开始自动化



3
、对实际执行操作可以审计跟踪



4
、用户不必是编程人员



5
、提供良好的(软件或工具)的演示





线性脚本适用于以下情况:



1
、演示或培训



2
、执行量较少,且环境变化小的测试



3
、数据转换,如将数据从Notes数据库中转换到EXCEL表格中



线性脚本有以下缺点:




1
、过程繁琐



2
、一切依赖于每次捕获的内容



3
、测试输入和比较是“捆绑”在脚本中的



4
、无共享或重用脚本



5
、线性脚本容易受软件变化的影响



6
、线性脚本修改代价大,维护成本高



7
、非常容易受意外事件的影响,引起整个测试失败

 

回复: 每日一“贴”

第45贴:自动化脚本之结构化脚本


结构化脚本类似于结构化程序设计,含有控制脚本执行的指令。这些指令或为控制结构,或为调用结构。控制结构中包括“顺序”、“循环”和“分支”,和结构化程序设计中的概念相同。调用结构是在一个脚本中调用另外脚本,当子脚本执行完成后再继续运行父脚本。



结构化脚本的优点是健壮性好。也可以通过循环和调用减少工作量。



结构化脚本的缺点是脚本更复杂,而且测试数据仍然“捆绑”在脚本中。



结构化脚本侧重于描述脚本中控制流程的结构化特性。

 

回复: 每日一“贴”

第46贴:自动化脚本之共享脚本


共享脚本是指脚本可以被多个测试用例使用,一个脚本可以被另外一个脚本调用。这样可以节省生成脚本的时间;当重复任务发生变化时,只需修改一个脚本。



建立共享脚本的时间可能更长,因为需要建立更多的脚本,且每个脚本需要进行适当的修改,达到脚本共享的目的。



共享脚本可以是在不同主机、不同系统之间共享脚本,也可以是在同一主机、同一系统之间共享脚本。



共享脚本的优点有:



1
、以较少的开销实现类似的测试



2
、维护开销低于线性脚本



3
、删除明显的重复



4
、可以在脚本中增加更智能的功能



共享脚本的缺点有:



1
、需要跟踪更多的脚本,给配置管理带来一定的困难



2
、对于每个测试,仍然需要特定的测试脚本,因此维护费用比较高



3
、共享脚本通常是针对被测软件的某部分,存在部分脚本不能直接运行



要获得高质量的共享脚本,需要接受一定的训练。在开始编写脚本时,多花些时间进行设计是值得的。通过共享脚本技术,还可以建立脚本库,达到最大程度的共享。由于共享脚本需要被多次使用,所以与脚本相配套的文档更应该引起注意。



共享脚本侧重描述脚本中共享的特性。

 

回复: 每日一“贴”

第47贴:自动化脚本之数据驱动脚本


数据驱动脚本技术将测试输入存储在独立的数据文件中,而不是绑定在脚本中。执行时是从数据文件而不是从脚本中读入数据。这种方法最大的好处是可以用同一个脚本允许不同的测试。对数据进行修改,也不必修改执行的脚本。



使用数据驱动脚本,可以以较小的开销实现较多的测试用例,这可以通过为一个测试脚本指定不同的测试数据文件达到。将数据文件单独列出,选择合适的数据格式和形式,可将用户的注意力集中到数据的维护和测试上。达到简化数据,减少出错的概率的目的。



数据驱动脚本的优点有:



1
、可以快速增加类似的测试



2
、测试者增加新测试不必掌握工具脚本语言的技术



3
、对第二个及以后类似的测试无额外的维护开销



数据驱动脚本的缺点有:



1
、初始建立的开销较大



2
、需要专业(编程)支持



3
、必须易于管理

 
5  /  9  页   «23456789 跳转
发表新主题 回复该主题

版权所有 凌阳教育   Sitemap

Powered by Discuz!NT 2.0.1123    Copyright © 2001-2009 Comsenz Inc.
Processed in 0.171875 second(s) , 4 queries.
返顶部