从事金融行业测试,例如证券,期货,银行等,但是样样不精通,纯属混饭吃,四处跑腿型,嘿嘿

发布新日志

  • 个贷系统测试点(金融)

    2011-05-30 10:40:35

    客户信息
    个人客户基本信全行共享;
    当输入身份证号码时,检查身份证合规性;
    婚姻状态为已婚时,要求按贷款品种进行参数配置是否必须录入配偶信息;


    合作项目
    检查控制:
    合作项目编号由个贷管理系统维护,全行唯一;
    额度审批:
    个贷项目录入后,个贷系统通过审批流程完成在系统内项目的建立;
    总额度:
    用于对该项目下的总贷款额度做控制;
    对贷款控制:
    贷款申请金额不能超过项目可用额度;
    单笔贷款申请金额不能超过项目最高贷款限额度;
    贷款申请时不能超过项目下的成数控制、贷款期限控制、项目合作期限控制。
    项目共享:
    合作项目全行共享使用。
    额度控制方式:
    只设一级项目额度控制,控制方式分为循环、非循环二种;

    审批通过后,才允许办理抵押、公证与保险;

    档案
    对于抵押类权利品信息,须办理完抵押登记后方可进行权利品登记;
    允许对合同下的单件或多件权利品进行登记;
    允许对权利品单件入库、出库操作;
    权利品入库的检查:
     抵押贷款时,审批通过,抵押登记办理后,才允许抵押物凭证入库;
     质押贷款时,质押物凭证必须在审批通过后放款前先入库;
    抵质押品为出库状态,才允许变更抵质押品担保信息;

    普通贷款申请:
    1 基本信息页面,数据的边界值。(边界值就是利率系统设定为50,那小50,系统是否会提示,会提示那就是通过,不提示就是没通过)
    2 贷款品种→系统管理(业务品种修改有关)
    3 各种利率与贷款品种的设定
    4 担保方式的组合:保证+质押+抵押,保证+质押,质押+抵押
    5 担保方式单独:信用,保证,抵押,质押
    6 发放方式:一次与多次。与出账申请有关,一次产生的借据号为一条,多次出账的借据号有多条,测试每条借据是否放款成功
    7 还款方式,还本周期与还息周期的组合
    8 黑名单的客户是否有提示


    贷款申请中合作项目
    选择从合作商建立的合作项目,是否扣除金额。
    合作项目的控制方式:1次和循环,如何在贷款合作项目中体现。
    合作项目扣除的金额,在批量后是否恢复

    保证信息:
    类型:对公,自然人
    对公,选择保险公司下担保协议,是否扣除额度
    扣除的额度如何恢复,选择合作商下合作项目中担保额度恢复。
    担保协议扣除的额度,去合作项目查询中查询是否真的扣除了。


    贷款用途页面字段,与贷款用途选择有关

    共同借款人与贷款人是否为关系人,两者家庭财务信息必须建立。

    抵押页面:1 类型:动产与不动产。相应的字段是否禁止。
    2 评估单位,建立合作商性质为评估单位,是否能选择到


    质押页面:是否第三方质押,选是某些字段是否可输入
    质物种类:选择动产,是否多出字段可供输入。
    质押比例,是否与系统管理中质押比例相联系。

    档案登记与调查报告暂时要与影响接口调试,所以暂无法测试


    组合贷款
    主贷款和辅助贷款的合同是否都产生,主贷款与辅助贷款是否都放款成功
    测试点同普通贷款相同


    例外贷款
    系统是否提示这是比例外贷款
    测试点同普通贷款相同

    展期贷款
    未放款的贷款能否做展期贷款,不能做
    放款后贷款,能做展期贷款与还款方式有联系-利随本清,一次还本分期付息可做,其他还款方式不可进行展期。
    其他校验点与普通贷款类似

  • QESuite Web Version1.0

    2009-07-14 17:55:35

      实验一 黑盒测试技术
      实验目的:
      初步学会使用QESuite Web Version1.0,掌握黑盒测试基本技术,并能够应用黑盒测试技术设计测试用例。
      实验说明
      通过一个简单的C程序sample.cpp(源代码见教材附录A),来介绍黑盒测试用例的编写和测试的实施过程。在这个实验过程中运用测试过程管理工具QESuite Web Version1.0,旨在说明应用测试管理工具管理测试过程。
      实验内容:
      对被测程序进行功能划分。
      应用等价类划分和边界值分析方法设计测试用例。
      创建测试任务并执行测试。
      发现软件缺陷,填写软件问题报告。
      QESuite Web 1.0简介
      QESuite Web Version1.0面向软件产品的整个生命周期,实现对测试过程、测试对象、测试数据的有效管理,指导用户实施测试过程改进,满足开发企业对于测试管理的基本需求,是一个轻量级的测试过程管理工具,特别适用于对一个小型测试队伍(少于30人)的测试过程的管理,是中小型软件开发企业打造测试管理体系的有效工具。
      1.测试准备
      登录系统
      创建测试项目
      定义用户信息
      系统配置
      人员分配
      基本设置
      测试配置
      列表设置
      问题报告基本设置
      问题报告列表设置
      创建功能分类
      登录系统
      输入地址:
      http://服务器地址:8080/QESuiteWebApp/login.jsp登录QESuite Web Version 1.0系统。在第一次登录时,必须以系统管理员身份登录,默认账号是admin,密码也是admin。

     

      以系统管理员的身份进入系统后,QESuite Web Version 1.0主界面如下图所示。

     

      创建测试项
      只有系统管理员admin可以创建测试项目。在以系统管理员的身份登录系统后,在主界面,点击“系统管理”。
      在系统管理截面导航器中,单击“项目管理”,在右页面中,单击“新建项目”按钮。

      
      在新建项目页面内输入:“项目名称”和“项目概要”,按“确定”键即可。如果要取消此操作,按“退出”键即可。

     

      定义用户信息
      在主界面,点击“系统管理”,在左导航器中,点击“用户管理”项,在右页面中点击“新建用户”。

     
      在增加用户的页面中输入:登录名、登录密码、姓名;用户办公电话、个人电话、用户身份标示、email地址等信息,点击“确认”键即可。

     

      系统配置
      在主页,点击“系统管理”,在左导航器中,点击“系统配置”项,在右页面中可以修改下列配置:人员分配,基本设置,测试配置,列表设置,问题报告基本设置,问题报告列表设置。

     

      创建功能分类
      在测试前,必须对被测程序进行功能划分,创建功能分类是项目管理员的职责,所以必需以“项目管理员”的身份登录系统,在登录系统后单击“功能分类”。然后在右边页面中,点击“新建功能分类”。

     

      输入或选择已有的功能分类点,最多可输入或选择8级, 输入或选择已有的优先级、初次测试版本、测试人员,开发人员、编写人员,功能描述,按“确定”键即可。

     

      新建功能分类后的结果,结果如下图所示。

     

      2、设计测试用例
      使用等价类划分方法
      使用边界值分析方法
      (1)使用等价类划分方法
      等价类划分是一种典型的黑盒测试方法, 使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明。对被测程序进行分析后得出如下等价类表:



      在设计测试用例时,要注意:使一个测试用例尽可能覆盖多个有效等价类,一个测试用例只能覆盖一个无效等价类。根据上面划分的等价类,7个测试用例就可以覆盖所有的等价类。设计测试用例如下:

              (点击放大此图)

      (2)使用边界值分析方法
      边界值分析方法就是针对各种边界情况设计测试用例,下面仅对第一种规则说明应用边界值分析方法生成测试用例。

     

              (点击放大此图)

      3.测试实施过程 
      录入测试用例
      录入测试用例,是测试人员的职责,所以首先要以“测试人员”的身份登录系统,登录系统后在首页点击“测试用例”。

     

      然后测试人员在右边的页面中将鼠标移动至“新建功能”,在弹出菜单中单击“新建测试用例”。

     

      在弹出的窗口中点击“全部展开”,然后选择一个已定义好的功能分类,表示此测试用例属于该功能分类。

     
     
      执行测试
      测试人员必须严格按照步骤执行测试用例并检验执行结果是否与期望结果一致 。
      对发现的问题,要填写软件问题报告。
      填写软件问题报告
      以“测试人员”的身份登录系统,点击“问题报告”,然后将鼠标移动至页面的右侧面板“新建功能”,点击“新建问题报告”。

     

      然后选择出现问题的功能分类,然后填写软件问题报告。

     

      查看软件问题报告
      点击左侧导航页的“所有的问题报告”,然后点击“按作者”,然后在右侧页面作者一栏中选择“全部”。

     

      然后点击标题栏下的某个具体软件问题报告,就可以查看一个软件问题报告的具体结果。

     

  • 四级软件测试工程师真题(附答案2008.4)

    2009-07-14 07:08:41

      一大清早,我就把题目一字一字地输入电脑了,累到半死,网上的不是看不清就是没答案。一怒之下就自个输入连正确答案都搞到手了,括号中是命题范围

    1.坚持在软件开发的各个阶段实施下列哪种质量保证措施,才能在开发工程中尽量早发现和预防错误,把出现的错误克服在早期()
    A 技术评审 B程序测试 C文档评审 D管理评审

    答案:A (软件测试的概念)

    2.经验表明,在程序测试中,某块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残存的数目与其他模块相比,通常应()
    A较少 B较多 C相似 D不确定

    答案:B(软件测试的概念)

    3.对程序中已发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档,成为()
    A测试 B调试 C错误分析 D验证

    答案:B(软件开发阶段测试)

    4.自底向上单元测试的策略是首先对模块调用图上的哪一层模块进行测试()
    A最底层 B下一层 C最高层 D上一层

    答案:A(编码,运行和维护阶段的测试)

    5.同行评审,有时称为同级评审,是一种通过作者的同行来确认缺陷和需要变更区域的检查方法,它主要分为管理评审,技术评审,文档评审和()
    A误差评审 B项目评审 C过程评审 D组织体系评审

    答案:C(同行评审)

    6.关于同行评审说法正确的是()
    A同行评审是对程序进行模拟,一步步的展示程序如何处理测试数据
    B同行评审虽然可以缩减工作时间,但同时也增加了大量的成本

    C在软件开发过程中进行同行评审会浪费时间,减缓项目的进度

    D同行评审的目的是发现产品的缺陷,因此在评审上的投入可以减少大量的后期返工

    答案:D(同行评审)


    7.如果一个判定的复合条件表达式为(A>1)Or (B<=3),则为了达到100%的条件覆盖率,至少需要设计多少个测试用例()
    A1 B2 C3 D4

    答案:B(覆盖率与逻辑覆盖)

    8.数据流覆盖关注的是程序中某个变量从其声明,赋值到引用的变化情况,它是下列哪种覆盖的变种()
    A语句覆盖 B控制覆盖 C分支覆盖 D路径覆盖

    答案:D(数据流测试)

    9.大突击测试把所有的模块一次性集成为一个完整的系统后进行测试,很容易()
    A通过测试 B整体测试 C快速查错 D快速排错

    答案:B(集成测试的策略,分析与用例设计原则)

    10.在软件性能测试中,下列指标中哪个不是软件性能的指标()
    A响应时间 B吞吐量 C资源利用率 D并发进程数

    答案:D(软件性能测试基本概念)


    11.下列关于软件性能测试的说法中,正确的是()
    A性能测试的目的不是为了发现软件缺陷
    B压力测试与负载测试的目的是为了探测软件在满足预定性能需求的情况下所能负担的最大压力
    C性能测试通常要对测试结果进行分析才能获得结论
    D在性能下降曲线下,最大建议用户数通常处于性能轻微下降区和性能急剧下降区的交界处

    答案:C(软件性能测试的执行)

    12.下列关于软件可靠性测试的说法中,错误的是()
    A发现软件缺陷是软件可靠性测试的主要目的
    B软件可靠性测试通常用于有可靠性要求的软件
    C在一次软件可靠性测试中,执行的测试用例必须完全符合所有定义的软件运行剖面
    D可靠性测试通常要对测试结果进行分析才能获得测试结论

    答案:A(软件可靠性预测测试与分析)

    13.下列哪种测试不属于面向对象单元测试考虑的范畴()
    A成员方法的测试 B类的测试 C类树的测试 D多个互相协作的类树的测试

    答案:D(面向对象软件的测试模型及策略)

    14.下列关于面向对象集成测试的说法中,正确的是()
    A大突击集成是面向对象测试最常用且最有效的方法
    B自底向上集成和自顶向下集成都需要为集成测试开发大量代码

    C协作集成在任何情况下都优于自底向上集成
    D高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试

    答案:B(面向对象软件的测试模型及策略)

    15.在WEB应用软件的分层测试策略中,下列哪个不是测试关注的层次()
    A数据层 B业务层 C服务层 D表示层

    答案:C(web应用软件的测试策略)

    16.下列关于WEB应用软件测试的说法中,正确的是()
    A cookie测试是web应用软件功能测试的重要内容
    B 对于没有使用数据库的web应用软件,不需要进行性能测试
    C链接测试是web应用软件易用性测试的重要内容
    D web应用软件安全性仅关注web应用软件是否能够防御网络攻击

    答案:A(web应用软件的系统测试技术)

    17.下列哪一项不属于软件功能易用性测试关注的内容()
    A软件界面的色彩是否协调
    B软件是否能主动禁止用户可能进行的非法操作
    C软件是否允许用户针对自己的使用习惯进行定制
    D软件是否能帮助用户减少输入中的重复劳动

    答案:A(易用性测试)

    18.下列关于极限测试的说法中,正确的是()
    A极限测试是一种新型的测试方法,传统的测试技术均不适用于极限测试
    B极限测试中所有的测试均是由编码人员完成
    C与传统的软件测试相比,极限测试是一种更严格的测试
    D极限测试需要频繁地进行单元测试

    答案:D(极限测试)

    19.下列有关测试过程V模型的说法中,正确的是()
    A验收测试应确定程序的执行是否满足软件设计的要求
    B系统测试应确定系统功能和性能的质量特性是否达到系统要求的指标
    C单元测试和集成测试应确定软件的实现是否满足用户需要或合同的要求
    D集成测试在编码结束前就可以开始

    答案:B(软件测试过程)

    20.下列哪项工作与软件缺陷管理和追踪无关()
    A对缺陷应该包含的信息条目,状态分类等进行完善设计
    B通过软件系统自动发送通知给相关开发和测试人员,使缺陷得到及时处理
    C对测试用例的执行结果进行记录和追踪
    D通过一些历史曲线和统计曲线来分析和预测未来的缺陷发展情况

    答案:C(测试执行管理)

    21.下列有关软件测试工具的说法中,错误的是()
    A静态测试工具可用于对软件需求,结构设计,详细设计和代码进行评审,走审和审查
    B静态测试工具可对软件的复杂度分析,数据流分析,控制流分析和接口分析提供分析
    C动态测试工具可用于软件的覆盖分析和性能分析
    D动态测试工具不包括软件的仿真测试和变异测试

    答案:D(测试工具的分类与选择)

    22.计算机软件测试规范规定,软件测试的类别可分为:单元测试,集成测试以及()
    A系统测试 B验收测试 C系统测试和验收测试 D配置测试,系统测试和验收测试

    答案:D(软件测试规范)

    23.下列有关软件问题生命周期模型状态定义说法中,错误的是()

    A“新建”表示测试中发现并报告了新的软件问题
    B“打开”表示软件问题已经被确认并分配给相关开发工程师处理
    C“关闭”表示软件问题已被开发人员修复并等待测试人员验证

    D“解决”表示软件问题已被确认修复

    答案:C(软件测试规范)

  • 性能测试真实案例计划实践记录(三)

    2009-07-13 11:14:19

    4.人员和职责

    4.1职责

    测试工程师:负责编写测试计划,组织测试,对测试过程进行记录,收集.整理测试记录数据,对测试结果进行分析,编写测试总结报告。

    软件工程师:负责编写.调试客户端测试软件;数据库管理系统的安装.ofs配置及系统的本底数据准备。
    系统工程师:负责测试用的硬件维护及操作系统安装.MSCS配置。

    总工程师:负责对测试计划及测试总结报告进行批准。

    用户:必要时可参加测试,并提出具体的测试要求;可要求暂停测试。

    4.2人员和训练要求

    本次测试无特别的人员及培训要求。
     
    5.批准

    测试计划必须经过总工程师批准后才能开始实施。

  • 性能测试真实案例计划实践记录(二)

    2009-07-13 11:13:07

    3.测试计划

    3.1测试强度估算

    测试压力估算时采用如下原则:

    ◇全年的业务量集中在8个月完成,每个月20个工作日,每个工作日8个小时;

    ◇采用80—20原理,每个工作日中80%的业务在20%的时间内完成,即每天80%的业务在1.6小时内完成;

    测试压力的估算结果:

    去年全年处理业务约100万笔,其中15%的业务处理每笔业务需对应用服务器提交7次请求;
     
    70%的业务处理每笔业务需对应用服务器提交5次请求;其余15%的业务每笔业务向应用服务器提交3次请求。根据以往统计结果,每年的业务增量为15%,考虑到今后三年业务发展的需要,测试需按现有业务量的2倍进行。

    每年总的请求数量为:(100*15%*7+100*70%*5+100*15%*3)*2=300万次/年。

    每天的请求数量为:300/160=1.875万次/天。

    每秒的请求数量为:(18750*80%)/(8*20%*3600)=2.60次/秒。

    正常情况下,应用服务器处理请求的能力应达到:3次/秒。

    3.2测试环境准备

    3.2.1基本硬件及软件环境的准备

    1)网络环境:公司内部的以太网,与服务器的连接速率为100M,与客户端的连接速率为10/100M自适应。
     
    2)使用两台IBM XSeries250(1G内存)PC Server作Microsoft Cluster,安装系统软件 Windows 2000 Advance Server及Microsoft Cluster Server(MSCS)。

    3)数据库管理系统的安装及配置:在测试用的IBM XSeries服务器上安装Oracle8.1.6,数据 库采用Oracle Fail Safe(ofs)的Active/Passive配置。 安装数据库管理系统及支撑软件(包括VisiBroker和BDE Administrator)。

    4)安装被测的应用服务器程序。

    5)客户端的PC机:10台(PⅢ600/128M RAM)。

    3.2.2系统客户端测试程序的编写系统客户端测试程序使用Delphi编写,要求测试程序实现如下功能:
    1)模拟一个主要的向应用服务器发送请求并接收响应信息的功能。要求交替模拟两种情况:第一种,发送的请求至少包括10个参数,参数类型涵盖字符.日期.数字种类型;接收的响应信息不少于1个参数;第二种,发送的请求不少于1个参数;接收的响应信息至少包括10个参数,参数类型涵盖字符.日期.数字种类型。

    2)必须能够通过参数设定在每台PC机上运行的客户端测试程序个数.请求的时间间隔(单位:毫秒).运行时间(单位:小时)。

    3)在数据库中建立测试记录表,生成测试记录,向数据库写入测试记录的功能不通过被测的应用服务器实现。日志内容包括:发送测试请求的机器名.客户端测试程序序号.发出请求时间.收到响应时间.处理是否成功。表名:TEST_LOG,字段名:MACHINE.ID.START_TIME.END_TIME.FLAG。

    3.2.3系统本底数据的准备

    为考察系统运行一段时间后系统的响应性能,参照实际运行情况及发展进行系统的本底数据准备。业务处理中涉及到的业务表中都要求按设计规模进行本底数据的准备。要求准备的数据记录的有效性符合系统要求,数据有效性的具体要求参见数据库设计及系统设计文档。

    3.3破坏性测试

    按照设计连接的客户端连接数量进行测试,把应用服务器处理请求的设计频度增加1-10倍,分别测试出现错误的状态和和出现错误的比率,考察是否出现不可恢复错误,系统设计要考 虑出现严重错误情况下负荷减轻错误自动恢复的实现方法。

    计划时间:2天;这个时间包括破坏性的修复和自动恢复的实现需要的时间。

    在测试过程中每10分钟记录一次IBM Xseries PC Server的内存及CPU使用情况,包括被测程序的内存占用百分比.数据库管理系统的内存占用百分比.操作系统的内存占用百分比。

    3.4强度稳定性测试

    选择一种负荷比设计负荷重的情况(应用服务器处理请求的频度为应用服务器处理请求的
    设计频度的1.5倍),进行24小时稳定性测试。

    3.5测试方法和工具

    黑盒测试

    测试工具:无外购的测试工具,自己编制的测试工具。

    3.6测试时间计划

    3.6.1环境准备:2天。

    其中:基本硬件.软件环境及系统本底数据的准备:1天,系统客户端测试程序的编写及测试:1天。
    3.6.2破环性测试:2天。

    3.6.3强度稳定性测试:1天。
     
    3.7测试中的问题及处理

    3.7.1暂停标准和再启动要求

    暂停标准:被测试软件在强度稳定性测试中频繁出现异常(每小时出现1次以上)时。用户或公司要求暂停测试时。

    再启动要求:通过调试后,预计被测试软件的可靠性有所提高时,可再次启动测试。

    3.7.2不可预见问题

    不可预见问题包括:
     
    ◇测试环境被破坏而导致测试无法进行;

    ◇当出现上述不可预见问题时,测试终止,就已完成的测试内容编制测试总结报告,并在报告中说明测试终止的原因。

    3.8测试报告 2002.06.21

    测试总结报告提交日期:2002.06.21。
     
    3.8.1应生成的测试文件

    测试记录(测试负责人和参与测试的人员签字);

    测试总结报告。

    3.8.2测试总结报告中必须包含的内容

    被测试软件名称.测试项.测试环境;

    被测试软件的压力测试结论:响应时间.最大/最小并发数.失败的次数.正常连续运行的最长/最短时间,并发数与失败的关系。

  • 性能测试真实案例计划实践记录(一)

    2009-07-13 11:11:31

    利用现代的设计技术和正式的技术复审可以减少代码中存在的初始错误,但是错误总是存在的,如果开发者找不到错误,那么,客户就会找到它们。越来越多的软件组织认识到软件测试是软件质量保证的重要元素之一,很多软件开发组织将30%—40%甚至更多的项目资源用在测试上,软件测试技术和软件测试策略受到了高度的重视和广泛的应用。

    本文不想就软件测试技术和软件测试策略作深入的理论分析,而是列举一个在软件系统测试阶段进行的压力测试实例,希望能通过这个实例与从事软件测试相关工作的朋友进行交流。

    首先介绍一下实例中软件的项目背景,该软件是一个典型的三层C/S架构的MIS系统(客户端/应用服务器/数据库管),中间层是业务逻辑层,应用服务器处理所有的业务逻辑,但应用服务器本身不提供负载均衡的能力,而是利用开发工具提供的ORB(对象请求代理)软件保证多个应用服务器间的负载均衡。本次测试的目的是:进行单个应用服务器的压力测试,找出单个应用服务器能够支持的最大客户端数。测试压力估算的依据是:假定在实际环中,用户只启用一个应用服务器进行所有的业务处理。方法是:按照正常业务压力估算值的1~10倍进行测试,考察应用服务器的运行情况。

    压力测试的详细计划如下:

    压力测试计划

    1.测试计划名称

    XXX系统压力测试计划。

    2.测试内容

    2.1背景

    本次测试中的压力测试是指模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时 间运行测试软件来测试被测系统的可靠性,同时还要测试被测系统的响应时间。

    用户的实际使用环境:

    ◇由两台IBM XSeries250 PC Server组成的Microsoft Cluster;

    ◇数据库管理系统采用Oracle8.1.6;

    ◇应用服务器程序和数据库管理系统同时运行在Microsoft Cluster上。

    ◇有200个用户使用客户端软件进行业务处理,每年通过软件进行处理的总业务量为:150万笔业务/年。

    2.2测试项

    应用服务器的压力测试;

    2.3不被测试的特性

    ◇系统的客户端应用程序的内部功能;

    ◇数据库中的数据量对程序性能的影响。

  • 优秀软件测试工程师必备的七门绝学

    2009-07-13 10:59:07

    一名优秀的测试人才,目前我们国内的企业或者外企,包括大型的软件企业,一般情况下应该有哪些技术要求呢?具体来讲:

    第一,对Windows、Linux、Unix等大型主流操作系统的使用和应用开发的熟练掌握,包括一些网络的基础知识。使学员具备快速进行应用系统部署和测试环境搭建的能力,这是一个基本功。

    第二,测试人员必须掌握目前比较流行的语言,比如说C、C++、JAVA、C#、VB等等多种平台下的一种或者多种语言,具备进行简单应用开发的能力。这是做好测试的一个前提条件,也是一个基本功。

    第三,目前大部分应用软件都离不开数据库,熟练掌握SQL Server、Oracle、DB2等一种或多种数据库系统的使用,熟悉使用SQL语言,这是要具备的第三项能力。

    第四,随着信息技术的发展和各个领域的信息化程度越为越高,安全也提到越来越重要的位置上,没有安全其他都无从谈起。所以做为测试人员对信息安全知识的基本掌握也是做测试的一个基本功。

    第五,必须深刻理解和熟练掌握软件测试基础理论与技术。首先是精通各种黑盒测试技术,能够进行测试用例设计、测试执行、编写缺陷报告;其次是熟悉软件测试流程和测试过程管理,能够编写测试计划,具备组织测试工作的能力;还有熟悉白盒测试技术,能够手工或利用相关工具进行单元测试;最后还有测试管理相关知识的掌握,虽然这在企业里是对测试组长和经理的要求,但是我们按照优秀软件测试工程师来要求我们学员的,学员具备这一能力将来才有可能走上管理岗位。

    第六,因为当前软件测试要提高工作效率和进行性能等深入测试。故此目前在测试上一个很重要的方向是自动化测试,就是借助于测试工具来做测试,这个就像我们每天是走路上班还是开车上班一样,汽车肯定会节约很多的时间,这就是工具的利用。对测试来说也是一样,如果用工具就会达到事半功倍的效果。所以测试人员要掌握和熟练使用当前主流的功能、性能自动化测试工具以及测试管理工具,具备编写测试脚本、进行功能和性能测试自动化测试的能力。

    第七,软件测试和软件质量密切相关。对软件测试员来讲必须学会软件质量分析技术,包括对软件的分析和度量各种技术,包括软件静态和动态分析技术,以及编写软件质量报告和测试分析报告的能力等等。测试人员作为软件开发过程中的一员,学员应该对企业的质量管理体系和项目管理应该熟悉,应该了解 IS9000、CMM、CMMI项目管理等等知识。

    最后,还有些对测试人员综合素质上的要求,比如良好的英语听说读写能力、具有良好的语言及文字表达能力、较好的沟通技巧及团队合作精神、有较强的责任感及进取精神、细心、耐心,具备逆向思维能力等。

  • 软件测试中八种不同数据的选择

    2009-07-13 10:57:26

    在系统测试中,测试数据应该根据需求覆盖每一个参数的可能的取值。既然要测遍每一个值是不可能的,那么应该在每个定价类中选取几个值。一个定价类就是一个被认为是类似值的集合。

    理想情况下,检测错误条件的测试用例应该与功能测试用例分开来写,并且应该有校验错误信息和日志的步骤。实际上,如果错误测试用例还没有写出来,测试人员可以用执行功能测试用例来检测错误条件。如果可能,应该清楚那些测试数据能构触发错误。等价类的例子:

    1.字符串

    ·空字符串

    ·只包含一个空格的字符串

    ·以 _ 或者 / 作为开头和/或结尾的字符串

    ·语法上合法:短和长值

    ·语法上合法:合法的语义和不合法的值

    ·语法上不合法的值:非法字符或者组合

    ·确定测试特殊字符,例如#, ", ', &, 和 <

    ·确定测试可以从国际化键盘上输入的"外文"字符

    2.数字

    如果可能的话,是以下空的字符串

    ·数字0

    ·在范围内的正数,小数(靠近零的数字)和大数

    ·在范围内的负数,小数(靠近零的数字)和大数(绝对值)

    ·超出范围的正数

    ·超出范围的负数

    ·零开头的数字

    ·语法上不合法的输入,例如含有字母

    3.标识符

    ·空字符串

    ·语法上合法的值

    ·语法上合法的值: 重复索引,非法索引

    ·语法上非法的值

    4.Radio 选项

    ·选中一项

    ·如果可能,一项也不选

    5.Checkbox 选项

    ·选中项

    ·未选项

    6.下拉菜单

    ·按顺序选择每一项

    7.滚动菜单列表

    ·如果可能,一项也不选

    ·按顺序选择每一项

    ·如果可能,选择多项

    ·如果可能,选择所有项目

    8.文件上传

    ·空白

    ·0字节文件

    ·大文件

    ·短文件名

    ·长文件名

    ·如果可能,语法上非法的文件名,例如 "File With Spaces.tar.gz" (带空格)

  • 软件测试人员需掌握的SQL操作全集(二)

    2009-07-13 09:56:39

    10、说明:两张关联表,删除主表中已经在副表中没有的信息

            delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )

            11、说明:四表联查问题:

            select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

            12、说明:日程安排提前五分钟提醒

            SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

            13、说明:一条sql 语句搞定数据库分页

            select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

            14、说明:前10条记录

            select top 10 * form. table1 where 范围

            15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)

            select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)

            16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表

            (select a from tableA ) except (select a from tableB) except (select a from tableC)

            17、说明:随机取出10条数据

            select top 10 * from tablename order by newid()

            18、说明:随机选择记录

            select newid()

            19、说明:删除重复记录

            Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)

            20、说明:列出数据库里所有的表名

            select name from sysobjects where type='U'

            21、说明:列出表里的所有的

            select name from syscolumns where id=object_id('TableName')

            22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。

            select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type

            显示结果:

            type vender pcs

            电脑 A 1

            电脑 A 1

            光盘 B 2

            光盘 A 2

            手机 B 3

            手机 C 3

            23、说明:初始化表table1

            TRUNCATE TABLE table1

            24、说明:选择从10到15的记录

            select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
              
            随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)

              对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环:

            Randomize

            RNumber = Int(Rnd*499) +1

            While Not objRec.EOF

            If objRec("ID") = RNumber THEN

            ... 这里是执行脚本 ...

            end if

            objRec.MoveNext

            Wend
             
              这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一个数据库内就包含了成千上万条记录。这时候不就死定了?

              采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:

            Randomize

            RNumber = Int(Rnd*499) + 1
             
            SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
             
            set ōbjRec = ObjConn.Execute(SQL)

            Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
             
              不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。

            再谈随机数

              现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。

              为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:

            SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3
             
              假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码):

            SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"

              注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。

             
            随机读取若干条记录,测试过

            Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)

            Sql server:select top n * from 表名 order by newid()

            mysqlelect * From 表名 Order By rand() Limit n

            Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试, 现在记下以备后查)

            语法elect table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...

            使用SQL语句 用...代替过长的字符串显示

            语法:

            SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename

            Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;
             
            Conn.Execute说明

            Execute方法

              该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:

                1.执行SQL查询语句时,将返回查询得到的记录集。用法为:

                Set 对象变量名=连接对象.Execute("SQL 查询语言")

               Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。

                2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:

                连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]

                  ·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。

                  ·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。

  • 软件测试人员需掌握的SQL操作全集(一)

    2009-07-13 09:54:11

     下列语句部分是Mssql语句,不可以在access中使用。

            SQL分类:

            DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)

            DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)

            DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

            首先,简要介绍基础语句:

            1、说明:创建数据库

            CREATE DATABASE database-name

            2、说明:删除数据库

            drop database dbname

            3、说明:备份sql server

            --- 创建 备份数据的 device

            USE master

            EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'

            --- 开始 备份

            BACKUP DATABASE pubs TO testBack

            4、说明:创建新表

            create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

            根据已有的表创建新表:

            A:create table tab_new like tab_old (使用旧表创建新表)

            B:create table tab_new as select col1,col2… from tab_old definition only

            5、说明:删除新表drop table tabname

            6、说明:增加一个列

            Alter table tabname add column col type

            注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。

            7、说明:添加主键: Alter table tabname add primary key(col)

            说明:删除主键: Alter table tabname drop primary key(col)

            8、说明:创建索引:create [unique] index idxname on tabname(col….)

            删除索引:drop index idxname

            注:索引是不可更改的,想更改必须删除重新建。

            9、说明:创建视图:create view viewname as select statement

            删除视图:drop view viewname

            10、说明:几个简单的基本的sql语句

            选择:select * from table1 where 范围

            插入:insert into table1(field1,field2) values(value1,value2)

            删除:delete from table1 where 范围

            更新:update table1 set field1=value1 where 范围

            查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!

            排序:select * from table1 order by field1,field2 [desc]

            总数:select count * as totalcount from table1

            求和:select sum(field1) as sumvalue from table1

            平均:select avg(field1) as avgvalue from table1

            最大:select max(field1) as maxvalue from table1

            最小:select min(field1) as minvalue from table1

            11、说明:几个高级查询运算词

            A: UNION 运算符

            UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。

            B: EXCEPT 运算符

            EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。

            C: INTERSECT 运算符

            INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。

            注:使用运算词的几个查询结果行必须是一致的。

            12、说明:使用外连接

            A、left outer join:

            左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。

            SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

            B:right outer join:

            右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

            C:full outer join:

            全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

            其次,大家来看一些不错的sql语句

            1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)

            法一:select * into b from a where 1 <>1

            法二:select top 0 * into b from a

            2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)

            insert into b(a, b, c) select d,e,f from b;

            3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)

            insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件

            例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..

            4、说明:子查询(表名1:a 表名2:b)

            select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)

            5、说明:显示文章、提交人和最后回复时间

            select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

            6、说明:外连接查询(表名1:a 表名2:b)

            select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

            7、说明:在线视图查询(表名1:a )

            select * from (SELECT a,b,c FROM a) T where t.a > 1;

            8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括

            select * from table1 where time between time1 and time2

            select a,b,c, from table1 where a not between 数值1 and 数值2

            9、说明:in 的使用方法

            select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)

  • 软件测试中测试方案和测试计划的区别

    2009-07-13 09:46:31

    一、测试计划:

      对测试全过程的组织、资源、原则等进行规定和约束,并制订测试全过程各个阶段的任务以及时间进度安排,提出对各项任务的评估、风险分析和需求管理。

      二、测试方案:

      描述需要测试的特性、测试的方法、测试环境的规划、测试工具的设计和选择、测试用例的设计方法、测试代码的设计方案。

      三、测试计划是组织管理层面的文件,从组织管理的角度对一次测试活动进行规划。

      四、测试方案是技术层面的文档,从技术的角度度一次测试活动进行规划。

      五、测试计划要明确的内容:

      1、明确测试组织的组织形式

      1>测试组织和其他部门关系,责任划分。

      2>测试组织内的机构和责任安排。

      2、明确测试的测试对象(明确测试项,用于后面划分任务,估计工作量等)

      3、完成测试的需求跟踪

      4、明确测试中需要遵守的原则

      1> 测试通过/失败标准

      2> 测试挂起和回复的必要条件

      5、明确测试工作任务分配是测试计划的核心

      1、进行测试任务划分

      2、进行测试工作量估计

      3、人员资源和物资源分配

      4、明确任务的时间和进度安排

      5、风险的估计和规避措施

      6、明确测试结束后应交付的测试工作产品

      六、测试方案的具体内容:

      1、明确策略

      2、细化测试特性(形成测试子项)

      3、测试用例的规划

      4、测试环境的规划

      5、自动化测试框架的设计

      6、测试工具的设计和选择

      七、测试方案需要在测试计划的指导下进行,测试计划提出“做啥”,而测试方案明确“咋做”。

  • (转)需求不足或很少时的测试

    2009-07-13 09:10:34

    项目没有明确定义的(或任何)需求规格说明书就开始实施,这很常见,特别是在小公司里面。即使是在大型企业,在他们认为不需要规范领域,也可能存在项目缺少需求规格说明书的情况。在这种情况下如何进行测试是一个常见的问题。

      在项目缺少需求规格说明书的情况,并不存在一个做好测试简单快捷的方法,因为需求规格说明书对功能性测试的效力有很大的推动作用。其中关键的一点是要注意保持对需求来源进行追踪,和从这些需求源头上可衍生出哪些需求。这将大大简化对需求合法性的验证。以下是在以往测试成功过的几种策略:

      把用户手册当作需求规格说明书使用,这种方法是有效的和符合要求的。如果用户手册提供了足够的细节信息并且被信息组织编排得很有条理,使用它和使用需求规格说明书的效果几乎是一样的。关键是学会在用户手册上系统化地查找需求,确认和追踪这些需求。另外,经常需要从其它的来源获取需求信息来对用户手册进行补充,因为用户手册很少会包含压力和响应时间方面等精确数目信息。

      把设计文档当作需求规格说明书使用,大部分的开发人员至少会在某处的文件上记录或保存系统的一些相关信息。查找出这些设计文档后,它可作为需求的一个源头,特别是对于那些在用户手册上无法找到的硬性指标需求。关键是要小心选择可用作需求的信息,要注意避免把设计信息当作需求。销售文档同样也可以这样用。

      与人交谈。小项目的一个常见问题是“两只腿的需求”,这是指长驻客户公司的应用软件技术支持人员,他们围绕描述软件的用途与客户反复沟通。通常这些技术支持人员都会写下一些信息,这些信息可用作需求,但多半时候这些信息用处不大,这需要和他们坐下来谈论一下这个系统要实现哪些功能。另外,走出去和开发人员,系统的实际用户,甚至购买产品的客户等交谈。在每次会谈中,及时作笔记,然后把这些笔记作为进行测试的基础资料。使用常识。使用常识这个方法应该是所有其它方法都失败后的最后选择。虽然使用常识可能会发现问题,但使用这种方法会引发所发现故障的重要性和关联性的争论,甚至这个缺陷实际上是不是缺陷也可能需要论证。

      测试准备不足情况下的测试

      一个关键的考虑因素可能是根本上这个软件是否可测,如果没有足够的时间去为一个全新的产品作测试做准备,唯一可行的办法是向项目管理人员报告这个软件达不到测试的条件,让其决定如何处理这个问题。如何项目管理人员做出的决定是宣布这个产品达不到测试的条件,测试人员需提供详细的信息以解释为什么这个软件达不到测试的条件和需要作哪些改进使它达到测试的条件。

Open Toolbar