51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2553|回复: 3
打印 上一主题 下一主题

[讨论] 大家帮我评价一下!!!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-12-30 18:23:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是个应届毕业生,求职是,公司让我写一篇对测试的看法!!我就写了这些,大家帮我看看,可以合格不?
         测试是一系列可以事先计划并且可以系统的进行管理的活动,所以我们可以为软件工程过程定义一个软件测试的模板,就是可以把特定的测试用例设计方法放置进去的一系列步骤。而软件测试的模板要这样一些类属特性:(1)测试开始与模块层,然后延伸到整个基于计算机的系统集合中。(2)不同的测试技术适用于不同的时间点。(3)测试是由软件的开发人员和独立的测试组开管理的。(4)测试和调试是不同的活动,但是调试必须能适应任何的测试策略。而且软件测试的策略必须提供可以用来检验一小段源代码是否得以正确实现的低层测试,同时也要提供能够验证整个系统的功能是否符合用户需求的高层测试。在这里我所讲的测试是指结构化测试。
在测试中,有两种测试方法。白盒测试:知道产品的内部结构,构造测试,以确保内部操作依据规约执行,而且所有的内部构件被充分利用。黑盒测试:知道产品的特定功能,构造测试,以确保各功能完全可执行。
用白盒测试产生的测试用例,(1)要确保一个模块中所有的独立路径至少被使用一次(2)对所有逻辑值均需测试真和假(3)在上下边界及可操作范围内运行所有循环(4)检查内部数据结构以确保其有效性。白盒测试包括条件覆盖,路径覆盖,循环覆盖,数据流覆盖。一个测试用例不一定要包括上面所有的覆盖,只要在一定的时间和资源下找出尽可能多的错误就可以,而且测试用例不可以冗余。在白盒测试的路径覆盖中,有一个环行复杂度V(g)的概念。V(g)=判定节点+1。环行复杂度最重要的是提供了组成基本集的独立路径的上界,并由此得到覆盖所有程序语句所需的测试数量上界。
用黑盒测试主要是指测试(1)功能不对或遗漏(2)界面错误(3)数据结构或外部数据库访问错误(4)性能错误(5)初始化和终止错误。
在设计测试用例时,有一些基本原则,这里我引用一下Davie提出的一些原则:
(1)        所有的测试都应追溯到用户需求。正如我们所知,软件测试的目标在于揭示错误。而最严重的错误是那些导致程序无法满足需求的错误。
(2)        应该在测试工作真正开始的前较长时间内就进行测试计划。测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始,因此,所有测试可以在任何代码被产生前进行计划和设计。
(3)        Pareto原则应用与软件测试。简单而言,Pareto原则暗示着测试发现的错误中的80%很可能起源与程序模块中的20%。当然,问题在于如何孤立这些有疑点的模块并进行彻底的测试。
(4)        测试应从“小规模”开始,逐步转向“大规模”。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模型簇中寻找错误,最后在整个系统中寻找错误。
(5)        穷举测试是不可能的。甚至一个大小适度的程序,其路径排列的数量也是非常大的,因此,在测试中不可能运行路径的每一种组合,然而,充分覆盖程序逻辑,并确保程序设计中使用的所有条件是有可能的。
(6)        为了达到最佳效果,应该由独立的第三方来构造测试。
我认为这些原则非常符合测试的要求,指导着测试过程的始终。结构化测试基本上是顺序实现的4个步骤。最开始,是单元测试,测试着重于每一个单独的模块,以确保每个模块都能正确执行。单元测试一般都是使用白盒测试,检查每一个控制结构的分支以确保完全覆盖和最大可能的错误检查。接着就是集成测试,模块必须集成在一起形式完整的软件包里,集成测试解决的是验证与程序构造的双重问题。集成测试一般使用黑盒测试,当要保证覆盖一些大的分支时,也要用白盒测试。在软件集成构造完成之后,就该确认测试了。确认测试提供了对软件符合所有功能,行为和性能需求的最后保证。确认测试一般使用黑盒测试。最后,就是系统测试了。在上述的过程完成后,就是测试软件和硬件,数据库等元素是否吻合,从而完成整个系统的功能。
   单元测试是完成对最小的软件设计单元的验证工作。单元测试要考虑,对模块接口的测试保证在测试时进出程序单元的数据流是正确的。对穿越模块接口的数据流的测试需要在任何其他测试开始之前进行,因为如果数据不能正确的输入和输出的话,所有的其他测试就没什么意义了。对边界条件的测试保证模块在极限或严格的情形下仍然能够正确执行,在控制结构中的所有独立路径都要走遍,以保证在一个模块中的所有语句都能至少执行一次,最后,要对所有处理错误的路径进行测试。
   集成测试是通过测试发现和接口有关的问题来构造程序结构的系统化技术,它的目标是把通过了单元测试的模块拿来,构造一个在设计中所描述的程序结构。集成测试一般是把程序先分成小的部分进行构造和测试,这个时候错误比较容易分离和修正。接口也更容易进行彻底的测试,而且也可以使用一种系统化的测试方法。就是自顶向下集成和自底向上集成。这两种方式各有优缺点。所以一般都是两种方式同时用:在程序结构的高层使用自顶向下策略,在下满的较低层使用自底向上策略。在集中测试时,每当一个新的模块被当作集成测试的一部分加进来的时候,软件就会发生改变,新的数据流路径建立了起来,还可能激活新彻底控制逻辑,这些改变可能会使原来工作的很正常的功能产生错误。所以就应该有回归测试。回归测试是对某些已经进行的测试的某些子集再重新进行一遍,以保证上述改变不会传播副作用。
当集成测试结束的时候,软件就全部组装到一起了,接口错误已经被修正了,软件测试就到了确认测试这个阶段了。软件确认通过了一系列证明软件功能和需求一致的黑盒测试来达到。测试计划要列出进行的测试种类,定义为了发现和需求不一致的错误而使用详细测试用例的测试过程。计划和过程都是为了保证所有功能需求都得到满足,所有性能需求都达到了,文档是正确且合理的。还有比如可维护性,兼容性的需求也都满足了。
到最后就是系统测试了.系统测试是对整个基于计算机的系统进行考验的一系列不同测试.虽然每一个测试都有不同的目的,但所有都是为了整个系统成分能正常的集成到一起以完成分配的功能而工作.在系统测试要包括恢复测试,安全测试,压力测试和性能测试..
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
发表于 2004-12-30 18:36:41 | 只看该作者
测试是一系列可以事先计划并且可以系统的进行管理的活动——这不是测试的定义。
在测试中,有两种测试方法——提法不严谨哟。
用白盒测试产生的测试用例——没这么说——'为进行白盒测试而设计的用例'如何?
确认测试提供了……——确认测试?提供?——‘验收测试’更专业些吧
就是测试软件和硬件,数据库等元素是否吻合——兼容性测试是没这么说的哟

——从这篇文章看,我个人认为你看过一些测试的理论书籍,但仅限于理论,对软件工程缺也少了解。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-12-30 18:54:27 | 只看该作者
:,(
就是呀,我是应届毕业生,没做过一些实际的测试工作,就是平时改改自己写代码的一些bug,对测试的了解尽限与书本,没什么实际经验.可能又要被那个公司bs了!!!
:,(
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2004-12-31 09:38:30 | 只看该作者
有空多来论坛转转,对你会有帮助,对其它人也有帮助,不是么?

说实话在这个论坛中我也学了不少的东东……
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-10-5 20:25 , Processed in 0.120169 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表