问自己今天是否比明天进步了 !

发布新日志

  • 学习adroid遇到的问题记录!

    2011-04-15 10:59:58

    出现R.layout.main cannot be resolved. 
    解决方案
    (1) 删除第3行的 "import android.R;".
    (2) 勾选上Eclipse中的"Project->Build Automatically";

    原因分析
    (1) 删除"import android.R"之后工程就是从/res文件夹下自动生成的资源文件里去解析了,否则它会从Android的资源类里去找。
    (2) 但为什么勾选上动态构建"Build Automatically",我不是太清楚。刚接触Eclipse,稍后可能会更明白些。 
  • Android自动化测试可行性途径分析(转)

    2011-03-28 10:54:20

    1、安装JDK 6、Android SDK 2.3

    2、安装Eclipse 3.5.2、ADT8.0.1
    https://dl-ssl.google.com/android/eclipse/

    3、HelloAndroid
    E:/Program Files/Android/android-sdk-windows/docs/resources/tutorials/hello-world.html

    4、Android UnitTest
    hello testing:
    E:/Program Files/Android/android-sdk-windows/docs/resources/tutorials/testing/helloandroid_test.html

    Activity testing:
    E:/Program Files/Android/android-sdk-windows/docs/resources/tutorials/testing/activity_test.html

    5、Robotium
    Tutorial:
    D:/Android/robotium/RobotiumForBeginners.pdf
    http://code.google.com/p/robotium/wiki/Getting_Started

    example:
    http://wiebe-elsinga.com/blog/?p=300
    D:/Android/robotium/ExampleTestProject_v2.0.zip

    Robotium API帮助文档:
    robotium-solo-2.0.2-javadoc

    6、Monkey
    UI/Application Exerciser Monkey
    E:/Program Files/Android/android-sdk-windows/docs/guide/developing/tools/monkey.html

    monkey源代码:
    http://fanfq.javaeye.com/blog/781694
    Android SDK源代码:
    http://www.oschina.net/code/explore/android-2.2-froyo

    7、MonkeyRunner
    E:/Program Files/Android/android-sdk-windows/docs/guide/developing/tools/monkeyrunner_concepts.html

    8、adb shell sendevent
    http://blog.csdn.net/roger_ge/archive/2010/05/03/5552740.aspx


    9、辅助工具
    hierarchyviewer
    ddms
    adb

    -------------------------------------------------------------------------------------------------------------

    Android相关测试工具:

    robotium:
    http://code.google.com/p/robotium/

    autoAndroid:
    http://code.google.com/p/autoandroid/

    Android Scripting Environment:
    http://code.google.com/p/android-scripting/

    BSQUARE TestQuest CountDown and TestQuest Pro:
    http://www.bsquare.com/automated-testing-tools.aspx

    Jamo:
    http://www.jamosolutions.com/documents/android.html

    Test Automation for Smart Devices - Mobile Test Automation:
    http://www.deviceanywhere.com/mobile-application-testing-smart-devices.html

    QTP+SeeTest:
    http://experitest.com/download/ 
    http://experitest.com/support/tutorial/how-to/set-up-new-project/connect-an-external-device-e-g-android/ 
    http://www.advancedqtp.com/knowledge-base/articles/environment-techniques-id15/mobile-id777/test-android-with-qtp/

    Parasoft Mobile Test:
    http://www.automationqa.com/technicalprospect/automationnews/item/126-parasoft-mobile-test.html 

    ---------------------------------------------------------------------------------------------------------------------------

    测试手段1: CTS

    用来确保某设备符合Android兼容性规范。
     

    测试手段2: Monkey


    1) 应用程序的开发者可以测试自己应用的鲁棒性。

    [鲁棒是Robust的音译,也就是健壮和强壮的意思。 
    鲁棒性(robustness)就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。 ]

    2) 设备制造商可以使用猴子对自己的设配施行压力测试。看设备能坚持多久。

    Monkey测试即可以针对全局,也可以正对某个局部(某个 Category, package等等)。 
    执行简单,效果明显。


    测试手段3: ASE

    ASE 意思为 Android 脚本环境, 即我们可以通过脚本(比如 Python)调用 Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。

    我们可以扩充它的API(Java 部分), 并用python 脚本调用这些 API, 从而实现丰富的测试功能。 
    用于API 部分可以访问到Android全部API, python又能灵活部署测试,所以 ASE 的扩展性非常好。

    测试手段4: Robotium


    该工具用于黑盒的自动化测试。可以在有源码或者只有APK的情况下对目标应用进行测试。

    Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入 Text 等等。

    测试手段5: 单元测试

    Android 本身带有很多单元测试例子,我们可以按需要模仿它们,针对某个应用进行单元测试。

    注意 Android 的Instrument机制功能非常强大,可以测试 UI。

    总结

    对于 CTS/Monkey, 我们不需要开发,只要执行测试就可以了。

    对于 ASE, 我们可以扩充它的现有API(Java), 用Python调用这些API实现丰富的测试功能。

    Robotium 模仿普通用户行为,可以试着把一些原来由测试工程师做的测试变成Robotium自动化实现。


     

    测试手段1: CTS 
    
    用来确保某设备符合Android兼容性规范。
    
    CTS 原来只对 OHA 联盟开放。 最近 Google 把它 Release 出来了。 似乎做过一些裁剪 , 比如针对 Java 虚拟机的测试,似乎被删除了,但我们一般用不着这么高深的。 
    针对每个版本,比如 2.1, 2.2, Goolge 发布了一个兼容性规范,而 CTS 测试就是用来确保某手机或者模拟器符合该兼容性规范。 
    CTS 测试基于 Android instrumentation 测试, 其又基于 JUnit 测试。 说白了, CTS 就是一堆单元测试用例。 这也是 Java 语言的擅长部分。 
    在 2.1 模拟器上试验了一下, 有少数没有通过。 
    目前 CTS 主要包括功能方面的测试,有少数的性能方面的测试。 性能测试未来会越来越多。 
    总的来说, CTS 跟 WM 的 LTK 测试还是弱了一些, 毕竟还年轻。 它只包括自动化测试,目的主要是保证 API 的兼容性。由于基于单元测试, CTS 本身不能用于测试多应用交互的情况。 
    对我们的帮助: 
    1)   应用程序的开发者可以开发出自己应用的单元测试,并将其加入 CTS 测试集。 
    2)   设备制造商可以通过周期性运行 CTS 测试,确保没有对 Android 伤筋动骨。
    测试手段2: Monkey 1) 应用程序的开发者可以测试自己应用的鲁棒性。 [鲁棒是Robust的音译,也就是健壮和强壮的意思。 鲁棒性(robustness)就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”,是指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。 ] 2) 设备制造商可以使用猴子对自己的设配施行压力测试。看设备能坚持多久。 Monkey测试即可以针对全局,也可以正对某个局部(某个 Category, package等等)。 执行简单,效果明显。 测试手段3: ASE ASE 意思为 Android 脚本环境, 即我们可以通过脚本(比如 Python)调用 Android 的功能,从而定制一些测试。比如打电话,发短信,浏览网页,等。 我们可以扩充它的API(Java 部分), 并用python 脚本调用这些 API, 从而实现丰富的测试功能。 用于API 部分可以访问到Android全部API, python又能灵活部署测试,所以 ASE 的扩展性非常好。 测试手段4: Robotium
    该工具用于黑盒的自动化测试。可以在有源码或者只有APK的情况下对目标应用进行测试。 
    
    Robotimu 提供了模仿用户操作行为的API,比如在某个控件上点击,输入 Text 等等。 
    
    测试手段5: 单元测试


    Android 本身带有很多单元测试例子,我们可以按需要模仿它们,针对某个应用进行单元测试。 注意 Android 的Instrument机制功能非常强大,可以测试 UI。 总结 对于 CTS/Monkey, 我们不需要开发,只要执行测试就可以了。 对于 ASE, 我们可以扩充它的现有API(Java), 用Python调用这些API实现丰富的测试功能。 Robotium 模仿普通用户行为,可以试着把一些原来由测试工程师做的测试变成Robotium自动化实现。
  • 手机设置测试(转)

    2010-04-12 14:01:52

    手机测试之基本功能测试—系统设置


    1 时间设置进入此菜单,对时间、时间格式(12小时制、24小时制)分别进行设置、设置了超出范围的时间(错误的时间),其提示必须正确;不同的时间格式,其显示必须正确;检测时钟的走时必须正确(大小屏时间显示必须一致) 测试时钟的走时是否正确(包括大小屏时间显示是否一致)

    2 日期设置 1、进入此菜单,对日期、日期显示格式(数字、模拟)分别进行设置。

    1、设置了超出范围的日期(错误的日期),其提示必须正确;不同的日期显示模式,其显示必须正确;

    2、将手机中凡是可以设置的年份都必须测试一遍,具体方法为:在每年12个月份中抽取2天(第一天或者最后一天),参照万年历进行核对。 2、每年每个月份的日期和星期必须一一正确对应;特别注意闰年闰月的日期。

    3 闹钟设置进入此菜单,对每个闹钟(闹钟一、闹钟二或更多)的所有选项进行设置闹钟中的选项设置超出范围,其提示必须正确;设置时间到,闹钟提醒必须会实现(开机或关机);

    4 接听设置翻盖接听开启此功能打开翻盖必须能直接接听来电 应答键接听开启此功能有来电,必须按应答键才可以接听电话 任意键接听开启此功能有来电,必须按任意键才可以接听电话

    5 显示设置背景灯设置对背景灯各选项进行设置当背景灯设置为关闭时,对手机进行任何操作时不点亮背景灯;其他设置时,必须能按设置时间关闭背景灯,且一旦对手机进行操作时,能正常地点亮背景灯;若是翻盖手机,应能够在翻盖打开时自动点亮屏幕背景灯 显示调节用导航键或侧键调节显示的亮度和对比度必须能够随意调节并正确保存和实现 桌面设置对待机界面进行设置桌面显示与设置必须相符 色系选择逐一选择各色系  屏幕显示必须与所选色系相符 彩屏控制逐一选择各关屏时间实际关屏时间必须能与设置相符。

     6 语言选择逐一选择各语言手机菜单必须以所选语言正确显示,并且在所选的语言下,不能出现其它的语言

    7 开关机设置自动开关机时间设置设置自动开机、关机时间到设置时间,手机必须实现自动开/关机 开关机动画设置逐一设置各开/关机动画操作时实际动画必须与设置相符 开机问候语设置任意设置开机问候语开机时,实际问候语必须与设置相符

    8 自动重拨开启并设置该功能;关闭该功能开启时,手机必须能自动按设置重播未接通(拨出)电话;关闭时,该功能必须取消

    9 自动接听开启并设置此功能手机必须会在短暂铃声后自动接听电话(此接听方式仅在手机接上免持听筒或车用免持听筒时方有作用)

    10 分钟提醒开启/关闭该功能(开启此功能后,手机会在通话时间达到或接近一分钟(例如:50ms)时,提示通话者一分钟时间快到了)实际必须与设置相符

    11 触摸屏校正进行触摸屏校正校正完毕后,触摸屏精度必须符合要求

    12 恢复原厂设置选择该项并确定手机的每一项设置必须回到出厂时的默认设置

    13 省电模式设置对该菜单各选项逐一进行设置启动屏保时间必须与设置相符,按任意键必须能够恢复到最后一次操作时的界面。

    14 指示灯设置开启/关闭该功能必须能在搜寻网络、登陆网络、正常待机、无网络、来电或来短信、来电未接或短信未读、充电、电池电量低等不同状态下以不同方式正确显示。

    15 语音拨号开启/关闭该功能开启该功能后拨号,手机必须优先使用该功能,语音识别必须正确;关闭后,拨号


  • LoadRunner在性能测试工作中遇到的问题以及解决办法小结(转)

    2009-10-26 14:31:17

    引言:工作中遇到的问题,网上的解决办法很多,很多都具有参考意义,但不一定正确,以下是我实践中遇到大多数的问题都经过检验用以下方法基本解决,在此做出总结以便加深印象。
      一、Step download timeout (120 seconds)
      这是一个经常会遇到的问题,解决得办法走以下步骤:
      1、   修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为600、600、5000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数;
      2、   办法一不能解决的情况下,解决办法如下:
      设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。
      二、问题描述Connection reset by peer
      这个问题不多遇见,一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。
      解决办法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置高级选项),重新设置一下“HTTP-request connect timeout(sec),可以稍微设大一些”;
      三、问题描述connection refused
      这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的操作系统方式也不同;
      1、   首先检查是不是连接weblogic服务过大部分被拒绝,需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加 25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle数据库连接数最大值;
      2、   如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数,还有 tcp连接等待时间间隔大小,wiodows类似,只不过wendows修改注册表,具体修改方法查手册,注册表中有TcpDelayTime项;
      四、问题描述open many files
      问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法:
      1、   修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量对涉及到的服务器都作修改;
      2、   方法一解决不了情况下再去查看应用服务器weblogic的commonEnv.sh文件,修改其中的nofiles文件max-nofiles数增大,应该就可以通过了,具体就是查找到nofiles方法,修改其中else条件的执行体,把文件打开数调大;修改前记住备份此文件,防止修改出错;
      五、问题描述has shut down the connection prematurely
      一般是在访问应用服务器时出现,大用户量和小用户量均会出现;
      来自网上的解释:
      1> 应用访问死掉
      小用户时:程序上的问题。程序上存在数据库的问题
      2> 应用服务没有死
      应用服务参数设置问题
      例如:
      在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%
      Java连接池的大小设置,或JVM的设置等
      3> 数据库的连接
      在应用服务的性能参数可能太小了
      数据库启动的最大连接数(跟硬件的内存有关)
      以上信息有一定的参考价值,实际情况可以参考此类调试。
      如果是以上所说的小用户时:程序上的问题。程序上存在数据库的问题,那就必须采用更加专业的工具来抓取出现问题的程序,主要是程序中执行效率很低的sql语句,weblogic可以采用introscope定位,期间可以注意观察一下jvm的垃圾回收情况看是否正常,我在实践中并发500用户和600用户时曾出现过jvm锯齿型的变化,上升下降都很快,这应该是不太正常的;
      六、问题描述Failed to connect to server
      这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压力负载机器),一个网络延迟严重,解决办法:
      1、   修改负载机器的tcpdelaytime注册表键值,改小;
      2、   检查网络延迟情况,看问题出在什么环节;
      建议为了减少这种情况,办法一最好测试前就完成了,保证干净的网络环境,每个负载机器的压力测试用户数不易过大,尽量平均每台负载器的用户数,这样以上问题出现的概率就很小了。

    七,window对发出去的线程数有限制的所以要模拟大量的进程就要修改window的注册表 :

    1.打开注册表 

    路径 : HKEY_LOCAL_MACHINE

    下面的关键字 :

    System\CurrentControlSet\Control\Session Manager\SubSystems

    2)找到windows关键字,Windows关键字如下所示:

    SharedSection=1024,3072,512关键字的格式为XXXX,yyyy,zzz,其中xxx定义了系统范围的最大值(以KB为单位),yyy定义每个桌面堆的大小

    3)将yyy的设置从3072更改为8192,增加ShareSection参数值

    通过对注册表的更改,系统将允许运行更多的线程,因而可以在计算机上运行更多的Vuser,这意味着能够模拟的最大并发用户数量将不受windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束 !

  • 一位前辈工程师的忠告!(转载)

    2008-12-01 17:03:20

  •  

    [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

    [2]可以做技术,切不可沉湎于技术。千万不可一门心思钻研技术!给自己很大压力,如果你的心思全部放在这上面,那么注定你将成为孔乙己一类的人物!适可而止为之,因为技术只不过是你今后前途的支柱之一,而且还不是最大的支柱,除非你只愿意到老还是个工程师!

    [3]不要去做技术高手,只去做综合素质高手!在企业里混,我们时常瞧不起某人,说他“什么都不懂,凭啥拿那么多钱,凭啥升官!”这是普遍的典型的工程师的迂腐之言。

    很牛吗?人家能上去必然有他的本事,而且是你没有的本事。你想想,老板搞经营那么多年,难道见识不如你这个新兵?人家或许善于管理,善于领会老板意图,善于部门协调等等。因此务必培养自己多方面的能力,包括管理,亲和力,察言观色能力,攻关能力等,要成为综合素质的高手,则前途无量,否则只能躲在角落看示波器!技术以外的技能才是更重要的本事!!从古到今,美国日本,一律如此!

    [4]多交社会三教九流的朋友!不要只和工程师交往,认为有共同语言,其实更重要的是和其他类人物交往,如果你希望有朝一日当老板或高层管理,那么你整日面对的就是这些人。了解他们的经历,思维习惯,爱好,学习他们处理问题的模式,了解社会各个角落的现象和问题,这是以后发展的巨大的本钱,没有这些以后就会笨手笨脚,跌跌撞撞,遇到重重困难,交不少学费,成功的概率大大降低!

    [5]知识涉猎不一定专,但一定要广!多看看其他方面的书,金融,财会,进出口,税务, 法律等等,为以后做一些积累,以后的用处会更大!会少交许多学费!!

    [6]抓住时机向技术管理或市场销售方面的转变!要想有前途就不能一直搞开发,适当时候要转变为管理或销售,前途会更大,以前搞技术也没有白搞,以后还用得着。搞管理可以培养自己的领导能力,搞销售可以培养自己的市场概念和思维,同时为自己以后发展积累庞大的人脉!应该说这才是前途的真正支柱!!!
    [7]逐渐克服自己的心里弱点和性格缺陷!多疑,敏感,天真(贬义,并不可爱),犹豫不决,胆怯,多虑,脸皮太薄,心不够黑,教条式思维。。。这些工程师普遍存在的性格弱点必须改变!很难吗?只在床上想一想当然不可能,去帮朋友守一个月地摊,包准有效果 ,去实践,而不要只想!不克服这些缺点,一切不可能,甚至连项目经理都当不好--尽管你可能技术不错!
    [8]工作的同时要为以后做准备!建立自己的工作环境!及早为自己配置一个工作环境,装备电脑,示波器(可以买个二手的),仿真器,编程器等,业余可以接点活,一方面接触市场,培养市场感觉,同时也积累资金,更重要的是准备自己的产品,咱搞技术的没有钱,只有技术,技术的代表不是学历和证书,而是产品,拿出象样的产品,就可技术转让或与人合作搞企业!先把东西准备好,等待机会,否则,有了机会也抓不住!

    [9]要学会善于推销自己!不仅要能干,还要能说,能写,善于利用一切机会推销自己,树立自己的品牌形象,很必要!要创造条件让别人了解自己,不然老板怎么知道你能干?外面的投资人怎么相信你?提早把自己推销出去,机会自然会来找你!搞个个人主页是个好注意!!特别是培养自己在行业的名气,有了名气,高薪机会自不在话下,更重要的是有合作的机会...

    [10]该出手时便出手!永远不可能有100%把握!!!条件差不多就要大胆去干,去闯出自己的事业,不要犹豫,不要彷徨,干了不一定成功,但至少为下一次冲击积累了经验,不干永远没出息,而且要干成必然要经历失败。不经历风雨,怎么见彩虹,没有人能随随便便成功。

  • 测试的面试题 转载

    2008-12-01 16:46:06

    01. 为什么要在一个团队中开展软件测试工作
      因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

    02. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?
      我曾经做过web测试,后台测试,客户端软件,其中包括
    功能测试性能测试,用户体验测试。最擅长的是功能测试

    03. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同04. 的测试类型的区别与联系(如功能测试、性能测试……)
      测试类型有:功能测试,性能测试,界面测试。
      功能测试在测试工作中占的比例最大,功能测试也叫
    黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
      性能测试是通过自动化的
    测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
      界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
      区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

    04.您认为做好测试用例设计工作的关键是什么?
    白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
    黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题


    05. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

      黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
      白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

      软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
      1、是否有不正确或遗漏的功能?
      2、在接口上,输入是否能正确的接受?能否输出正确的结果?
      3、是否有数据结构错误或外部信息(例如数据文件)访问错误?
      4、性能上是否能够满足要求?
      5、是否有初始化或终止性错误?

      软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
      1、对程序模块的所有独立的执行路径至少测试一遍。
      2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
      3、在循环的边界和运行的界限内执行循环体。
      4、测试内部数据结构的有效性,等等。

      单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

      单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

      集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。

      系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)

      系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。

      验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
    验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

    06. 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?
      软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)

    07. 您认为做好测试计划工作的关键是什么?
      1. 明确测试的目标,增强测试计划的实用性
      编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确
      2.坚持“5W”规则,明确内容与过程
      “5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用 “5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。
      3.采用评审和更新机制,保证测试计划满足实际需求
    测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。
      4. 分别创建测试计划与测试详细规格、测试用例
      应把详细的
    测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

    08. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
      1.等价类划分
      划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类
    其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

      2.边界值分析法
      边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
      使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

    3.错误推测法
      基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
      错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

    4.因果图方法
      前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

    09. 请以您以往的实际工作为例,10. 详细的描述一次测试用例设计的完整的过程。
      就说最近的这次网站功能的测试吧
      首先:得到相关文档(需求文档和设计文档),理解需求和设计设计思想后,想好测试策略(测试计划简单点就OK了),考虑到测试环境,测试用例,测试时间等问题。
      第二步:设计测试用例,测试策略是:把网站部分的功能点测试完,然后在进行系统测试(另外个模块呢有另一个测试人员负责,可以进行联调测试),网站模块的测试基本是功能测试和界面测试(用户并发的可能性很小,所以不考虑):这次的网站的输入数据呢是使用数据库中的某张表记录,如果表中某一数据记录中新加进来的(还没有被处理的,有个标志位),网站启动后会立刻去刷那张表,得到多条数据,然后在进行处理。处理过程中,会经历3个步骤,网站才算完成了它的任务。有3个步骤呢,就可以分别对  这3个步骤进行测试用例的设计,尽量覆盖到各种输入情况(包括数据库中的数据,用户的输入等),得出了差不多50个用例。界面测试,也就是用户看的到的地方,包括发送的邮件和用户填写资料的页面展示。
      第三步:搭建测试环境(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,只有有机器能空于下来做该功能测试就可以做了),因为网站本身的环境搭建和其他的系统有点不同,它需要的测试环境比较麻烦,需要web服务器(Apache,tomcat),不过这次需求呢,网站部分只用到了tomcat,所以只要有tomcat即可
      第四步:执行测试

    11. 您以往是否曾经从事过性能测试工作?如果有,12. 请尽可能的详细描述您以往的性能测试工作的完整过程。
      是的,曾经做过网站方面的性能测试,虽然做的时间并不久(2个月吧),当时呢,是有位网站性能测试经验非常丰富的前辈带着我一起做。
    性能测试类型包括负载测试,强度测试,容量测试等
      负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
      强度测试: 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况
      容量测试:确定系统可处理同时在线的最大用户数  
      在网站流量逐渐加大的情况下,开始考虑做性能测试了,首先要写好性能测试计划,根据运营数据得出流量最大的页面(如果是第一次的话,一般是首页,
    下载页,个人帐户页流量最大,而且以某种百分比),

      Web服务器指标指标:
      * Avg Rps: 平均每秒钟响应次数=总请求时间 / 秒数;
      * Successful Rounds:成功的请求;
      * Failed Rounds :失败的请求;
      * Successful Hits :成功的点击次数;
      * Failed Hits :失败的点击次数;
      * Hits Per Second :每秒点击次数;
      * Successful Hits Per Second :每秒成功的点击次数;
      * Failed Hits Per Second :每秒失败的点击次数;
      * Attempted Connections :尝试链接数;  

    13. 您在从事性能测试工作时,14. 是否使用过一些测试工具?如果有,15. 请试述该工具的工作原理,16. 并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

    17. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

    18. 在您以往的工作中,19. 一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

    20. 您以往所从事的软件测试工作中,21. 是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,22. 请结合该工具描述软件缺陷(Bug)跟踪管理的流程。

    23. 您认为在测试人员同24. 开发人员的沟通过程中,25. 如何提高沟通的效率和改善沟通的效果?维持测试人员同26. 开发团队中其他成员良好的人际关系的关键是什么?

    27. 在您以往的测试工作中,28. 最让您感到不29. 满意或者不30. 堪回首的事情是什么?您是如何来对待这些事情的?

    31. 在即将完成这次笔试前,32. 您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)

    33. 你对测试最大的兴趣在哪里?为什么?
      最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了11,12点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的1,2点我没有把握,其他点我都很有信心做好它。
      刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。
      不到一年半的测试工作中,当时的感动和热情没有减退一点(即使环境问题以及自身经验,技术的不足,做测试的你一定也能理解)。
      我觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。
      第二是发现BUG的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug,还有一部分bug需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现bug了,每个用例都有可能发现bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也很有讲究,bug在什么情况下会产生,如果条件变化一点点,就不会有这个bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。

    34. 你的测试职业发展是什么?
      测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的11,12点要求自己,不断的更新自己改正自己,做好测试任务。

    35. 你自认为测试的优势在哪里?
      优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。

    36. 你以前工作时的测试流程是什么?
      公司对测试流程没有规定如何做,但每个测试人员都有自己的一套测试流程。我说下我1年来不断改正(自己总结,吸取同行的方法)后的流程吧。需求评审(有开发人员,产品经理,测试人员,项目经理)->需求确定 (出一份确定的需求文档)->开发设计文档(开发人员在开始写代码前就能输出设计文档)->想好测试策略,写出测试用例->发给开发人员和测试经理看看(非正式的评审用例)->接到测试版本->执行测试用例(中间可能会补充用例)->提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进TD)->开发人员修改(可以在测试过程中快速的修改)->回归测试(可能又会发现新问题,再按流程开始跑)。

    37. 当开发人员说不38. 是BUG时,39. 你如何应付?
      开发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。如果确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。

    38.你为什么想离开目前的职务?
      因为公司运作情况并不理想,公司需要调整部门体系,公司考虑到缩减部门人员,所以大批量的裁员(有6,7个),这是我的第一份工作,对公司也有较深的感情,因为在这里我找到了职业理想(就是测试),所以公司需要精简人员,我自愿退出。虽然很舍不得,但我将会有新的发挥能力的舞台。

    39.你找工作时,最重要的考虑因素为何?
      工作的性质和内容是否能让我发挥所长,并不断成长。

    40.为什么我们应该录取你?
      您可以由我过去的工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。

    41.请谈谈你个人的最大特色。
      我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。

    42.你们以前测试的流程是怎样的?
      <答:测试计划-测试用例设计-测试执行-测试分析报告>

    43.为什么选择测试这行?
      <答:它是一个新兴的行业,有发展潜力,而且很锻炼人,需要掌握更多的技能,比做开发要更难>

    44.如果你接到一个客户抱怨的电话,你确知无法解决他的问题,你会怎么处理
        为什么抱怨?是怎么样的问题?
        如果是客服问题,提交客服部门解决
        如果是质量问题,分析原因,下一版本改进

    45.通常你对于别人批评你会有什么样的反应
      虚心接受,有错即改,无措勉之

    46.你觉得什么样的人最难相处
        自以为是的人吧

    47.你在五年内的个人目标和职业目标分别是什么?
       从现在起的五年之内,我希望能够在一个很好的职位上待几年,而且最好有一次晋升,然后就期待着下一步。不管是向上提升,还是在企业内横向调动,对我个人来说,我希望找到一家企业——一家愿意做相互投入的企业——待上一段时间。

    48. 你都用什么测试方法
       针对不同的产品或者系统或者模块,有不同的测试方法。总体而言有白盒测试和黑盒测试。

    49.怎么编写案例
       案例的编写与测试阶段的定义有很大的关系。系统测试和unit测试的案例可能不同。总体而言测试案例根据系统的需求而定。

    50.怎么才能够全面的测试到每一个点
       测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。

  • 高手的面试总结

    2008-04-01 16:57:29

    经过三周的投简历面试我终于找到了满意的工作,谢谢一直关心我的人,也谢谢给我指点帮助我的人,在这三周里我成长了许多,也总结了一些面试时的经验,和大家分享一下,希望对大家能有帮助。

    1,你在投简历的时候除了简历内容,最好加上自己近照比较好看的相片。

    2,在简历开始最好有一句两句比较引人注目的话,我写的是“给我一次面试的机会,我会让贵公司增加一位优秀的员工”。

    3,在网站上投简历的时候,先到招聘网站上找到你要去的公司,然后到这个公司的网站上去看看,公司网站上有没有招聘信息和HR的邮箱,如果有就直接往这个公司的邮箱里投,因为公司看招聘网站上的简历要给钱的,所以公司往往会在招聘网站上进行筛选在看简历,如果投到公司的HR邮箱里,这样就不会被筛选掉了。

    4,准备一个文档,投一家公司在文档上记录一个,以免一家公司投了两次,公司收到你的简历重复,会对你这个人评价不好的,觉得你不够细心,投过一次都忘记了。

    5,接到公司的面试通知的时候,首先要看看公司招聘软件测试工程师要求了些什么,尽可能的补充一些知识符合他招聘的要求,那方面你懂就要懂得多一点,然后突出自己的特点。

    6,要仔细看公司的网站,了解公司的业务信息和最近的动态,详细掌握公司的内容,别面试官问你我们公司做什么的你知道吗,你觉得这方面应该有哪些测试呢?

    7,要针对自己的经历总结一段长3-5分钟的自我介绍,写好了背着说几遍,看看时间是不是在3-5分钟内,说话的语速尽量清楚放慢速度,不要说话快,这样会让面试官觉得你紧张,没有准备充分。

    8,在自我介绍里一定要突出自己适合做软件测试工程师的性格,比如细心,认识,学习能力强,有责任感,团队合作能力强,善于沟通等等,一搜一大堆呢。

    9,面试的时候一定要诚实,不会的就不会,不要胡说,面试官可比你测试方面强,你说错了人家一下就知道了,如果你觉得自己虽说不知道但是也能答得很好,你可以说自己对这方面不了解,但是我有些自己的观点。

    10,面试的时候要告诉公司你会认真完成公司交给自己的工作,为公司创造价值,达到自我价值的一个实现,公司成长自己也会随着成长。一定要把自己和公司紧密的结合在一起,这样面试官会觉得你把他的公司当成了自己的公司,这么热爱这家公司,就算你能力不行他也会考虑培养你的。

  • 关于面试

    2008-03-27 19:05:20

    当你在固定电话上打电话时打不出去你应该对哪些测试?
    本人以为
    1 检查电话线路是否正确连接,比如是否接通,是否接错等
    2  检查电话是否坏掉了
    3  检查是否拨错号,导致拨了空号
    4  检查是否错拨了功能键
    5  检查通信连接是否畅通,信号是否良好
    6  查看自己是否欠费

    如果给你一张可以转的,可以伸缩有把手的椅子应该怎么测?
    1 UI测试:测试椅子的外观是否完美养眼
    2 易用性测试:看椅子转动是否正常,零件是否松动或过紧
    3 性能测试:看椅子的耐压性如何,能承受的最大压力是多少
    4 功能测试:看椅子的面积是多少,可坐几个人;伸缩性怎么样,把手稳不稳;舒适度怎么样,坐在上面3-4个小时是否很舒服,不能有不适的感觉;椅子的重量怎样,是否便于移动;椅子的大小,是否适合大众人群
    5 安全测试:看看是不是能轻易的破坏掉
    6 测试椅子的材料是否对人有害

    另外的角度
    1、如果有需求,应先检测这把椅子的设计是否符合需求
    2、满足了需求后,再来验证功能
    3、功能具有后,再来对边界值进行测试,如最大承重等,天天坐的话能坐多久,
  • 新加入测试团体! 转载

    2008-12-01 14:54:54

     

    2008-11-22 23:13:53 / 个人分类:每周一问

    作为一名测试新人加入团队,大多数情况下,项目组成员都是一种热情欢迎的态度,并且主动提供力所能及的支持和帮助,如何快速熟悉项目业务和测试环境,尽快投入到实际工作中去,我谈谈个人的经验和一些看法,供同行参考:51Testing软件测试网M+Q}e9U\4\{x
    51Testing软件测试网M9p j7D T
    1、寻找新公司的团队元老:51Testing软件测试网&W zgU2V
        一般来说,一个新人进入新公司,都要指定一个师傅带一段时间,这也就是我们说的测试前辈。很多时候,测试前辈都是经验非常丰富的测试高人,如何您和他相处融洽,关系不错,凭他个人丰富的业务经验,给您指点迷津,也许会比你自己摸索10倍的时间效果还好。很多的测试新手,刚进入新公司时,自高自大,眼高收低,测试前辈都不愿意交,结果到了试用期转正答辩的时候,一问三不知,被迫离开公司,被炒鱿鱼。这样的例子我看到的不下于10例,很可惜丢失了很多工作机会。51Testing软件测试网 @Uo&d8O4S9Ux
    、虚心的学习态度:
      刚到一家新公司,保持谦虚的学习态度非常必要。记得我刚毕业那年,公司招聘了一个测试主管,他有4到5年的工作经验,阅历算是不简单,也是我们心目中的牛人吧。但是那个人,除了听总监的话以外,对于我们部门的其它人来说,他简直是自高自大,目中无人,根本不把部门里的其他人放到眼里,觉得部门的人都不如他。他作为一个空降兵,老员工和新员工,对他都很冷漠,碰到什么问题,需要小组成员帮忙的时候,大家都不愿意帮助他,互相推诿,并且经理也找他谈了几次话,效果不明显,结果他呆了不到2个月,估计是自己觉得很不开心,被迫离开了公司。其实,保持低姿态,谦虚的学习态度,必不可少。51Testing软件测试网 一般来说,新人一到公司,就会安排到项目中去。作为测试新手,快速阅读相关的“需求文档”、“详细设计文档”和“用户手册”特别关键。我们能够通过需求规格说明书等文档,快速熟悉系统相关的知识,获取编写测试文档的相关信息。如果项目已经编好了用户手册,您完全可以根据文档的步骤,一步一步傻瓜式的熟悉每项功能。只有掌握的这些文档的精髓,测试才会变得异常轻松呀。

    刚到新公司的测试人员,如果你是跳槽到以前做过的相近行业,有丰富的经验了,那么您熟悉业务没什么大的问题。如果您换的新公司是您以前都没有接触到的行业,那你一定得努力一点,买些相关的业务知识看看非常必要。我深有体会,以前从一家“通讯公司”跳槽到做“银行系统”的公司,业务完全两样,很多业务知识都是从零开始。不过有一定的工作经验,学习起来也挺快,关键取决于个人是酷爱学习和坚强的学习毅力。

    5、尽快介入了解被测试系统:

    R@ \aZC3~201160   刚跨入一家新公司,如果被测试系统已经开发的差不多了,部分功能已经OK了。你可以部署到测试环境下,尝试从直观测试的角度去尽快了解系统,尽快结合文档熟悉起来。很多的时候,通过页面操作实际的系统比看文档效果好的多,并且印象更深刻,熟悉系统更快。新加入公司的朋友不防试一试。
    6、了解公司类似的相关产品:
     大多数的公司,都不可能在每个行业都非常强,基本上都是在某一个较小的领域很强势,公司主要就是研发强势相关业务的产品。所以说,相关的产品一般来说是很多的,如果要你测试的系统没有开发完毕,如果时间和条件允许,不妨先了解一下公司类似的产品,以便尽快熟悉起来。大多数情况下,公司很多的产品都是相通的,大部分的产品是在不同的客户要求下,修改了部分功能和界面而已。个人认为:了解类似的产品,也是测试新手快速熟悉产品的一条捷径。
    、尽量多参加项目的各种会议:
       每个项目,特别是在项目的启动阶段,大会小会不断,很多时候项目组成员抱怨居多,都认为很浪费时间,耽误开发进度。如果作为测试新手的您这个时候加入,那太好了,多参加这样的讨论会。大部分时间都是在讨论项目的重点和关键,如果大家意见不一致,必然要对不一致的东西展开细节讨论,您肯定是收益匪浅。特别是对业务方面的讨论,您参加几次讨论,比您看10篇需求还强,并且理解也很透彻。如果您对需求有所了解,但是部分功能模块还有问题,就可以在讨论会上随时提出来,大家一起讨论,共同解决。如果有这样的机会,切勿放弃哟。
    8、阅读类似项目已有的测试用例:
      如果项目已经启动并进入了测试阶段,如果你在这个时候介入,通常情况下负责人都会给你提供整个项目或部分需要你测试的部分模块的测试用例。这些测试用例也是您快速上手测试的重要参考资料。如果还没有编写测试用例,你就介入了,那你就得重头开始,您可以阅读项目类似的测试用例,并结合以前项目的测试经验,根据公司相关的测试用例模板开始编写测试用例。如果在编写测试用例中碰到您不了解和很难处理的问题,您可以记入测试需求疑问表格,等部门开会时,提出来大家讨论。最好不要碰到一个问题就去问,经常打乱人家的思路,弄得别人嫌烦,那就不值了。51Testing软件测试网%Ux6u%u @

    查看缺陷数据库中旧有的缺陷:
      一般的测试缺陷跟踪系统,都是按模块来分类软件缺陷的。如果老大给你分配了测试任务,你就可以有目的的去熟悉即将测试的模块缺陷。登录系统后,对缺陷进行筛选,尝试按测试前辈的Bug描述步骤进行操作,看看是否能够重新缺陷?这种方法能够借鉴测试同行的经验,尽快发现问题,避免测试的盲目性。一来可以拓宽您的视野,避免递交类似问题的Bug或是重复的Bug,二来还可以为您快速熟悉被测试系统添砖加瓦。51Testing软件测试网1K3lP2O'A
    必须明白自己领导是谁:  一般的员工进入公司,公司和部门领导很多,搞不清楚谁管我,碰到问题问谁?谁可以帮忙解决问题?如果真是这样那就麻烦了。部门领导臃肿的情况实在是太多了,有的公司,既有2测试经理,又有几个测试主管,还有多个项目经理和研发总监,不知道工作向谁回报,对哪个领导负责。弄得每个领导都回报,很累呀!!我的做法是:测试项目中负责领导只有一个那就是测试主管,测试主管负责安排和分配每个测试人员的工作和任务,我直接Review测试主管。如果项目中碰到有什么解决不了的问题,组内成员可以直接找我,同时我也定期加入项目参加部分测试,了解测试项目的一些进展情况,必要时还要找一些人谈心。这样,工作汇报比较简单明了,很轻松。

    熟悉与测试相关的管理软件的使用:
     我说的这个测试相关的软件包括缺测试需求管理软件(如TestDirector或QC)、陷跟踪管理软件(如:TestTrack Pro、TestDirector等等)、版本配置管理工具软件(CVS、VSS,还是SVN等等),具体熟悉到什么程度,那就要看您的职位了。如果您是一般的工程师,那你就只了解一般的使用就够了,如果您是测试经理,您不仅要了解一般的使用,还要更深层次的了解软件的权限和项目的配置,因为您要作为该软件的Admin,碰到问题大部分都由您搞定呀,高工资不是那么好拿的呀,哈哈!!!如果作为新入职的您,连这些都不会,那你就得加把油了,不然到了测试启动阶段,你才开始熟悉管理软件,那么你觉的能够快速展开测试吗?
    注意沟通技巧,把握请教良机:
     为了尽快熟悉项目,展开测试工作,沟通技巧必不可少。您作为新入职的测试人员,尽量了解每个开发人员开发的模块和每个开发人员的性格特点,寻找一些共同语言,拉近与开发人员的距离,让他们对您产生好感。只有这样,当您碰到问题的时候,他们才会鼎立的帮助您。如果您与开发人员关系不好,看了就觉的很讨厌,那他们肯定不会帮助您的,更不原意和您配合,当您提错Bug的时候,他们就会抓住这些Bug不放,有时候还要说您什么都不懂,这样你就很郁闷,肯定呆不长久的,只有走人的份了,呵呵。特别是开发人员很窝火的时候,您更要多一些理解和宽容,切勿火上浇油,您可以给他一些表扬,给他一些鼓励。他一听准开心死了,总觉得还是您们最了解我,把您当成自己人。这个时候,你再问开发人员问题,他也许态度就不一样了,他准会仔细的给你讲解,并且以后的什么事情,他也会百厌齐烦地帮助您的,因为他觉您最了解他们,无意识的把您当成了好朋友和哥们。还有的时候,开发人员有空过来测试部门逛逛,准备和您交流时,一定要把握机会,和开发人员开开玩笑和一些必要赞赏,也能够调节和开发人员的关系。总之,这一点做起来真的很难,如果做的好,那效果确实就不一样了

  • 用户名密码测试 !

    2008-12-01 11:19:37

    别小看了这个用户名密码这么简单的输入框。可测试的内容还是很多的,并且引发的问题也有很多种类。下面就说一说他的测试方法。

      一.用户注册

      只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~

      以等价类划分和边界值法来分析

      1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)

      2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)

      3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

      4.必填项分别为空注册

      5.用户名长度大于要求注册1位(边界值分析,取离点)

      6.用户名长度小于要求注册1位(边界值分析,取离点)

      7.密码长度大于要求注册1位(边界值分析,取离点)

      8.密码长度小于要求注册1位(边界值分析,取离点)

      9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~)

      10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)

      11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)

      12.重新注册存在的用户

      13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)

      14.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示

      备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~

      二.修改密码

      当然具体情况具体分析哈~不能一概而论~

      实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键.而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

      1.不输入旧密码,直接改密码

      2.输入错误旧密码

      3.不输入确认新密码

      4.不输入新密码

      5.新密码和确认新密码不一致

      6.新密码中有空格

      7.新密码为空

      8.新密码为符合要求的最多字符

      9.新密码为符合要求的最少字符

      10.新密码为符合要求的非最多和最少字符

      11.新密码为最多字符-1

      12.新密码为最少字符+1

      13.新密码为最多字符+1

      14.新密码为最少字符-1

      15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)

      16.看是否支持tap和enter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号

      17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写

      18.新密码与旧密码一样能否修改成功

      另外一些其他的想法如下:

      1 要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功

      2 关注规约中的各种限制,比如长度,大否支持大小写。

      3 考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_“,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。

      4 数值上的长度 之类的,包括出错信息是否合理

      5 特殊字符:比如. / ' " \ </html>  这些是否会造成系统崩溃

      6 注入式bug:比如密码输入个or 1=1

      7 登录后是否会用明文传递参数

      8 访问控制(不知道这个算不算):登录后保存里面的链接,关了浏览器直接复制链接看能不能访问

  • 输入框的测试 (引用 加自己总结 )

    2008-11-29 17:33:22

    最近在测试Web的输入框的时候,老是不知道从何处下手,去网上搜罗了一些资料,当然网上对输入框的测试资料少之又少,所以我作了一个简单的总结,总的情况有一下几个方面:

      1.验证输入与输出的是否信息一致;

      2.输入框之前的标题是否正确;

      3.对特殊字符的处理,尤其是输入信息徐需要发送到数据库的。特殊字符包括:'(单引号)、"(双引号)、[](中括号)、()(小括号)、{}(大括号)、;(分号)、<>(大于小于号)……

      4.对输入框输入超过限制的字符的处理,一般非特殊的没有作出限制的在255byte左右;

      5.输入框本身的大小、长度;

      6.不同内码的字符的输入;

      7.对空格、TAB字符的处理机制;

      8.字符本身显示的颜色;

      9.密码输入窗口转换成星号或其它符号;

      10.密码输入框对其中的信息进行加密,防止采用破解星号的方法破解;

      11.按下ctrl和alt键对输入框的影响;

      12.对于新增、修改、注册时用的输入框,有限制的,应该输入时作出提示,指出不允许的或者标出允许的;

      13.对于有约束条件要求的输入框应当在条件满足时输入框的状态发生相应的改变,比如选了湖南就应该列出湖南下面的市,或者选了某些条件之后,一些输入框会关闭或转为只读状态;

      14.输入类型;根据前面的栏位标题判断该输入框应该输入哪些内容算是合理的。例如,是否允许输入数字或字母,不允许输入其他字符等。

      15.输入长度;数据库字段有长度定义,当输入过长时,提交数据是否会出错。

      16.输入状态;当处于某种状态下,输入框是否处于可写或非可写状态。例如,系统自动给予的编号等栏位作为唯一标识,当再次处于编辑状态下,输入框栏位应处于不可写状态,如果可写对其编辑的话,可能会造成数据重复引起冲突等。

      暂时,就能想这么多,看大家谁还有观点,互相学习下!

      17.如果是会进行数据库操作的输入框,还可以考虑输入SQL中的一些特殊符号如单引号等,有时会有意想不到的错误出现

      18.输入类型  输入长度  是否允许复制粘贴  为空的情况  空格的考虑  半角全角测试  对于密码输入框要考虑显示的内容是*  输入错误时的提示信息及提示信息是否准确

      19.可以先了解你要测试的输入框在软件系统的某个功能中所扮演的角色,然后了解其具体的输入条件,在将输入条件按照有效等价类,无效等价类,边界值等方法进行测试用例的设计。

      20.关键字有大小写混合的情况;

      21.关键字中含有一个或多个空格的情况,包括前空格,中间空格(多个关键字),和后空格;

      22.关键字中是否支持通配符的情况(视功能而定);

      23.关键字的长度分别为9、10、11个字符时的情况;

      24.关键字是valid,但是没有匹配搜索结果的情况;

      25.输入html的标签会出现哪些问题?输入&lt;html&gt; 会出现什么问题呢?(这条是我自己发现的,在网上也没找到类似的东东,呵呵,大家凑合着看吧)

      安全测试方面:

      给出一些特别的关键字,比如 or 1=1, 这样的关键字如果不被处理就直接用到数据库查询中去,后果可想而知。

      一点想法,希望大家补充。

     

    引用的一个文章 我总结一下 就是 输入框的测试 :  1.字符种类的测试  , 数字测试 ,特殊字符测试 『【】,『

    』 ,等等测试 ) ,还有不同内码的测试 ,空格的测试(前中后) ,半角字符

    和全角字符的测试 ,大小写的测试 , 通配符的测试 (如  * , &  等等 )

     2. 字符长度测试 , 字符在超过规定长度会怎么样 。
     3.特殊键的测试 : 比如测试 ctrl和 alt键的测试 
     
     还有软件测试的值的确定 等价值 ,有效值法 ,和边界法的运用 !

  • 什么是Ansi,UTF8,Unicode,ASCII编码

    2008-11-29 16:10:37

    ASCII和Ansi编码
        字符内码(charcter code)指的是用来代表字符的内码.读者在输入和存储文档时都要使用内码,内码分为 
        单字节内码 -- Single-Byte character sets (SBCS),可以支持256个字符编码. 
        双字节内码 -- Double-Byte character sets)(DBCS),可以支持65000个字符编码.
    前者即为ASCII编码,后者对应ANSI.
    至于简体中文编码GB2312,实际上它是ANSI的一个代码页936

    2. Unicode
     如上,ANSI有很多代码页,使用不同代码页的内码无法在其他代码也正常显示,这就是为什么日文版/繁体中文版游戏无法在简体中文平台直接显示的原因.
        Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案.它是一种2字节编码,能够提供65536个字符,这个数字是不够表示所有的字符的(汉语就有55000多字符),所以,通过一个代理对的机制来实现附加的917,476个字符表示,以达到所有字符都具有唯一编码.

    3.Unicode和BigEndianUnicode
        这两者只是存储顺序不同,如"A"的unicode编码为65 00
        其BigEndianUnicode编码为00 65

    4.  UTF-8

        这是为传输而设计的编码,其系列还有UTF-7和UTF-16
        其中UTF-16和Unicode编码大致一样, UTF-8就是以8位为单元对Unicode进行编码。从Unicode到UTF-8的编码方式如下:
         Unicode编码(16进制)      UTF-8 字节流(二进制)
         0000 - 007F         0xxxxxxx
         0080 - 07FF         110xxxxx 10xxxxxx
         0800 - FFFF         1110xxxx 10xxxxxx 10xxxxxx

      例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。

    说白了 ,就是不同的字  在计算机里的表示规则  ,用多少个 0 或者 1 来表示 !

  • 软件测试学习

    2008-09-08 22:20:16

       1. 软件测试基础知识的学习

        1)读 《软件测试》 作者 周与斌   姚经译 

          每天读两章  然后  看网站的相关的测试基础的知识 并且摘录写出自己的看法和读后感 !

        时间 在 2008-9-8  ~ 2008-9-22  日

      注 :这本书大概的看了一下了 这回仔细的看一下 !

    目标 : 知道软件测试基本的流程 , 能够自己设计测试用例  把流媒体网站自己写一个测试用例   

    并且执行一下 !      安装一个缺陷管理工具  熟悉一项缺陷管理工具 !

    2. 英语学习   学习 两个月  每天 学习 8节  2008-9-8 ~ 2008-10-10

    学习新概念英语  每天早上 7: 00 ~  8 点 学习一个小时    写英语日记 不怕写的不好 就怕不思考 !

    在 10-10 能够学习用英语和网上的网友交流 ok ! 

    有时间就可以 老友记  ! 下载一下老友记  !

     

     

     

     

     

     

     

  • 513/3<123

    用户菜单

    我的栏目

    我的存档

    数据统计

    RSS订阅

    Open Toolbar