发布新日志

  • 文档测试

    2010-11-23 21:20:01

    文档测试

    1、文档范围

    ¨         用户文档:用户手册

                  操作手册

                  维护修改建议

    ¨         开发文档:软件需求说明书

                  数据库设计说明书

                  概要设计说明书

                  详细设计说明书

                  可行性研究报告

    ¨         管理文档:项目开发计划

                  测试计划

                  测试报告

                  开发进度月报

                  开发总结报告

    2、用户文档测试要点

    读者群、术语、正确性、完整性、一致性、易用性、图表与界面截图、样例和示例、语言、印刷和包装

    3、针对用户手册的测试

    ¨         准确的按照手册描述使用程序

    ¨         尝试每一条建议

    ¨         检查每条陈述

    ¨         查找容易误导用户的内容

    4、针对在线帮助测试

    准确性、帮助索引、超链接、链接的意义、帮助的风格、程序的可靠性
  • 其他测试

    2010-11-23 21:13:47

    网络测试

    1、网络测试指标

    TCP/IP网络检查指标:吞吐量、丢包率、延时、背靠背性能

    背靠背:检验被测设备能够在帧和帧间隔为最小间隔(以太网情况下是96bit,也就是线速)情况下,一次能够转发的最多的数据帧。

    2、网络测试类型

    网络可靠性测试、网络可接受性测试、网络瓶颈测试、网络容量规划测试、网络升级测试、网络功能/特性测试、网络吞吐量测试、网络响应时间测试、衰减测试、网络配置规模测试、网络设备评估测试

    安全测试

    1、测试内容

    ¨         用户认证机制:数字证书、智能卡、双重认证、安全电子交易SET协议

    ¨         加密机制

    ¨         安全防护策略:安全日志、入侵检测、隔离防护(隔离网和防火墙)、漏洞扫描

    ¨         数据备份与恢复手段:

    存储设备(磁盘列阵、磁带机、光盘、SAN设备)

            存储优化(DASNASSAN

            存储保护(磁盘列阵、双机容错、集群、备份与恢复)

            存储管理(数据库备份与恢复、文件与卷管理、复制、SAN管理)

    ¨         防病毒系统

    2、安全防护体系7层次

    ¨         实体安全:基础设施物理安全

    ¨         平台安全:网络平台、计算机操作系统、基础通用平台安全

    ¨         数据安全:系统数据机密性、完整性

    ¨         通信安全:系统之间数据通信和会话访问不被非法侵犯

    ¨         应用安全:业务逻辑访问控制、业务交往不可抵赖性、业务数据真实性、业务实体身份鉴别

    ¨         运行安全:对系统安全的动态维护和保障

    ¨         管理安全:对相关人员、技术和操作进行管理

    3、安全测试方法

    ¨         功能验证

    ¨         漏洞扫描:自动检测远程或本地主机安全性漏洞

    主机漏洞扫描器:在本地运行检测系统漏洞

    网络漏洞扫描器:在远程检测目标网络和主机系统漏洞

    ¨         模拟攻击试验

    ¨         侦听技术

    4、软件产品安全测试

    侧重方面:用户对数据或业务功能的访问、数据存储、数据通信的远程安全控制

    1)用户管理和访问控制

    ¨         用户权限控制:注意是否采用三层架构的管理模式、用户名是否唯一

    ¨         操作系统安全性的测试:

    是否关闭或卸载了不必要的服务和程序;是否存在不必要的账户;权限设置是否合理;安装相应的安全补丁;操作系统日志管理。

    ¨         数据库权限测试

    超级用户口令不为空或默认口令;数据库中应用软件用户权限和口令的表哥加密存储;开发人员设置复杂密码。

    2)通信加密(VPN、对称加密算法、非对称加密算法、HASH算法)

    对称加密和非对称加密包括RSA(非对称加密、可用于数字签名、加密速度慢)、DSA(数字签名算法)、DES(对称加密、加密速度快)等

    3)安全日志测试

    记录所有用户访问系统的操作内容包括:用户名、登录时间、浏览数据动作、修改数据动作、删除数据库动作、退出时间、登录IP等。

    测试检查日志完整性和正确性、是否是由了智能分析和进行日志统计。

    5、计算机信息系统安全保护等级

    ¨         用户自主保护级:普通内联网用户

    ¨         系统审计保护级:商务保密非重要单位

    ¨         安全标记保护级:国家机关、金融机构、通信、交通

    ¨         结构化保护级:中央国家机关、社会应急服务、尖端科技企业、国防

    ¨         访问验证保护级:国防关键部门

    兼容测试

    1、硬件兼容测试

    ¨         最低配置是否能满足系统运行的需要

    ¨         推荐配置下系统响应速度

    ¨         考察软件对运行硬件环境有误特殊说明

    ¨         能否在多种硬件配置下运行,且满足设计要求

    2、软件兼容测试

    ¨         与操作系统的兼容性(WindowsUnixLinuxMacintosh

    ¨         与数据库的兼容性(完整性测试、应用系统测试、性能测试)

    ¨         与中间件的兼容性

    ¨         与浏览器的兼容性

    ¨         与其他软件的兼容性(支持软件、同类软件、非同类软件)

    3、数据兼容测试

    ¨         不同数据格式的兼容性

    ¨         XML符合性

    4、平台化软件兼容测试

    ¨         跨硬件平台能力

    ¨         跨操作系统能力

    ¨         支持多种数据库系统

    ¨         客户端兼容性

    ¨         数据兼容性

    几乎覆盖所有软硬件测试的全部领域

    5、新旧系统数据迁移测试

    数据迁移三个阶段:数据迁移前的准备、数据迁移的实施和数据迁移后的校验。

    易用性测试

    1、安装测试

    ¨         安装手册评估

    ¨         安装自动化程度测试

    ¨         安装选项和设置的测试

    ¨         安装过程的中断测试

    ¨         安装顺序测试

    ¨         多环境安装测试

    ¨         安装的正确性测试

    ¨         修复安装测试与卸载测试

    2、功能易用性测试

    ¨         业务符合性

    ¨         功能制定性

    ¨         业务模块集成度

    ¨         数据共享能力:一次输入多处应用

    ¨         约束性:流程业务的前后关系

    ¨         交互性:用户操作的可见性和系统对用户的反馈

    ¨         错误提示

    3、用户界面测试

    分为整体界面测试和界面元素测试

    ¨         界面整体测试指:规范性测试、一致性测试、合理性测试、界面定制性测试

    ¨         界面元素测试指:窗口测试、菜单测试、图标测试、鼠标测试、文字测试

    4、辅助系统测试

    ¨         帮助测试:前后一致性、内容完整性、可理解性、方便性。

    ¨         导向测试:导向是否正确、导向连接是否存在、是否每步有导向说明、导向是否一致、导向是否直观

    ¨         信息提示:提示信息是否可理解;对重要破坏性的命令时候有确认措施;信息是否具有判断色彩;信息提示是否具有统一标记颜色等(风格一致)

    可靠性测试

    1、 可靠性定义:

    ¨         可靠性:产品在规定的条件下和规定的时间内完成规定功能的能力。

    (可靠性分为固有可靠性和使用可靠性)

    ¨         软件可靠性:在规定的条件下和规定的时间内,软件不引起系统失效的概率;在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。

    2、 软件可靠性的定量描述

    ¨         规定时间(自然时间、运行时间、执行时间-CPU执行程序时间总和)

    度量可靠性用使用时间比较准确

    ¨         失效概率:F0=0,软件运行初始时刻为0

                  Ft)在(0,正无穷)单调递增

                  F(正无穷)=1,失效概率在运行时间不断增长时趋向1

    ¨         可靠度:软件系统中规定的条件下和规定的时间内不发生失效的概率

                Rt=1- Ft

    ¨         失效强度:ft=F’t

    3、 软件可靠性测试目的

    ¨         发现软件系统中需求、设计、编码、测试、实施等方面的各种缺陷

    ¨         为软件的使用和维护提供可靠性数据

    ¨         确认软件是否达到可靠性的定量要求

    4、 计算

    串联系统的失效率=n*F(t)

    串联系统的可靠度=R(t)n次方

     

  • Web应用测试

    2010-11-12 16:34:56

    1Web应用设计测试

    根据Web应用构架分为总体构架测试、客户端设计测试、服务器端设计测试

    ¨         总体构架测试:采用瘦客户端或胖胖客户端是否适合需求

                      确定Web构架的组成部分是否满足需求

                      服务器配置及分布是否满足需求

    ¨         客户端设计测试:功能设置的测试

                        信息组织结构设计的测试(确保发布的信息按功能主题分类、直观)

                        页面设计测试(一致性、多种浏览器、页面命名体系、布局、导航)

    ¨         服务器端设计测试:容量规划测试(点击率、延迟和流量、服务器资源消耗)

                          安全系统设计测试(安全策略、加密技术、防火墙、防毒体系)

                          数据库设计测试

    2Web开发测试

    ¨         代码测试:代码分析、链接测试、框架测试、表格测试、图形测试

    ¨         组件测试:表单测试、Cookies测试、脚本测试、CGI测试、ASP测试、ActiveX控件测试

    ¨         Junit单元测试

    3Web运行测试

    ¨         功能测试:考虑到Web特点还需注意客户端选择、浏览器配置和客户端显示设置

    ¨         易用性测试:界面测试、辅助功能测试、图形测试

    ¨         压力负载测试:

    一般压力测试包含如下步骤:

    ²        确定交易执行响应时间

    ²        估计Web系统能够承受的最大并发用户数量

    ²        模拟用户请求,逐步增加模拟用户直到系统不能承受为止

    ²        如果没有达到需求,应该优化这个Web程序

    ¨         客户端配置与兼容性测试

    ²        浏览器的配置测试

    ²        平台兼容性测试

    ²        浏览器兼容性测试

    ¨         安全性测试

    ²        安全体系测试

    ²        应用安全:注册与登录、在线超时、操作留痕、备份与恢复

        ²      传输安全:HTTPSSSL测试、服务器端脚本漏洞检查、防火墙测试
  • 性能测试

    2010-11-12 16:15:35

    1、测试策略:性能调优和性能评测

    性能评测:在真实环境下检查系统服务等级满足情况,评估整个系统性能。

                          对系统的未来容量作出预测和规划。

                         是性能调优的前提。

    性能调优:查找性能瓶颈原因。

                         进行性能调整和优化。

                         评估性能调整的效果。

    2负载测试

    逐步增加系统负载,测试系统性能变化。并确定在满足性能指标时的最大负载量。为了测试系统在某一负载级别上的性能,保证正常工作。

    3压力测试

    逐步增加负载,测试系统性能变化。并确定在什么负载条件下系统性能处于失效状态,获得系统可以提供的最大服务级别。为了测试系统的限制和故障恢复能力。

    压力测试是一种特定的负载测试。

    (负载测试:测试响应为1秒时,系统最大并发数量;压力测试:测试系统在多大并发数量时响应时间不可接受如超过1分钟)

    4并发性能测试

    增加并发用户直到系统瓶颈或者不能接受的性能点,分析交易指标、资源等确定系统并发性能。

    考虑3个方面:

    ¨         应用在客户端性能的测试

    ¨         应用在网络上性能的测试

    ¨         应用在服务器上性能的测试

    5疲劳强度测试

    系统稳定运行情况下能够支持的最大并发用户数或者日常运行用户数,执行一段时间保证达到系统疲劳强度需求的业务量。

    6大数据量测试

    包括独立数据量测试和综合数据量测试。

    独立数据量测试:针对某些系统存储、传输、查询、统计等业务进行大数据量测试。

    综合数据量测试:和压力性能测试、负载性能测试等相结合的综合测试。

    7负载压力测试目的

    ¨         在真实环境下检测系统性能、评估性能

    ¨         预见系统负载压力承受力、评估性能

    ¨         分析系统瓶颈、优化系统

    8常见指标

    ¨         并发用户数

    ¨         交易处理指标(事务响应时间、平均事务响应时间、每秒事务数)

    ¨         Web请求指标(每秒点击数、吞吐量trans/s、每秒HTTP响应数、每秒连接数)

    ¨         页面组件指标(页面组件细分、页面下载时间细分、已下载组件细分)

    9其他概念

    并发用户:某一物理时刻同时向系统提交请求的用户数。

    在线用户:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求。

    交易吞吐量:系统服务器每秒可以处理完成的交易数。

    交易响应时间:系统完成事务执行准备和完成该事务后采集的时间错之间的时间。

    测试估算:80%的业务在20%的时间内完成
  • 软件测试基础

    2010-11-12 16:08:52

    1、软件问题分类

    软件错误:指软件生存期内的人为错误。

    软件缺陷:指代码或数据文件中,不希望或者不可接受的偏差。

    软件故障:指程序运行时,产生的不希望或者不可接受的内部状态。

    软件失效:指软件运行时,产生的不希望或者不可接受的外部结果。

    2、软件测试与软件质量

    软件测试:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估

    软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力

    3、软件测试阶段

    1)单元测试、集成测试、确认测试、系统测试、验收测试

    2)开发方测试、用户测试、第三方测试

    3)白盒测试、黑盒测试、灰盒测试

    软件测试模型:VWHX、前置测试模型

    单元测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

    集成测试内容:模块接口数据是否丢失

    一个模块对另一模块是否产生不利影响

    各个子功能组合起来能否达到父功能

    全局数据结构测试

    单个模块的误差累积起来是否会放大

    集成测试组装方式:一次性组装方式、增值式组装(自顶向下、自底向上、混合)

    确认测试内容:有效性测试、软件配置复查

    4、软件V&V过程

    过程分析、评价、评审、审核、评估和测试
  • 软件工程知识

    2010-11-12 15:39:58

    1、软件质量管理

    需求(用户观点)------------使用质量(质量特性的组合效应)

    规格说明书(外部观点)---外部质量(外部性质)

    设计和开发(内部观点)---内部质量(软件内部性质)

    质量模型:功能性:适合性、准确性、互操作性、保密安全性、功能性依从性

                          可靠性:成熟性、容错性、易恢复性、可靠性依从性

                          易用性:易理解性、易学性、易操作性、吸引性、易用性依从性

                          效率:时间特性、资源利用、效率依从性

                          维护性:易分析性、易改变性、稳定性、易测试性、维护依从性

                          可移植性:适应性、易安装性、共存性、易替换性、可移植性依从性

    使用质量模型:有效性、生产率、安全性、满意度

    2、软件过程管理

    评价过程特性:可重复性、可再现性、公正性、客观性

    通用评价过程:确定评价需求、规定评价、设计评价、执行评价

    评价过程由下列5个活动组成:

    ¨         确立软件评价需求------评价需求(评价过程文档)-------测试需求(测试过程文档)

    ¨         编制评价规格说明------评价规格说明(评价过程文档)---测试规格说明(测试过程文档)

    ¨         制定评价计划------------评价计划(评价过程文档)-------测试计划(测试过程文档)

    ¨         评价执行计划------------评价记录(评价过程文档)-------测试记录(测试过程文档)

    ¨         作评价结论---------------评价报告(评价过程文档)-------测试报告(测试过程文档)

    1)评价需求分析子活动:

              请求者提出评价需求建议

                           请求者说明评价覆盖范围

                           评价者分析评价原因和描述评价需求来响应请求者

                           评价者解释评价的保密范围和严格程度

                           评价者同意评价需求

    2)评价规格说明子活动:

              分析产品的描述

                           规定对产品及部件执行的测量

                           按照评价需求验证编制的规格说明

    3)制定评价计划子活动:

              把评价方法编制成文档,起草计划

                           优化评价计划

                           根据可用资源安排评价动作的进度

    4)评价执行计划:

           管理请求者提供的产品部件

                     管理评价动作产生的数据

                     管理评价执行动作的工具

    5)评价结论:包括评价报告的评审和评价数据的处理

    3、软件配置管理

    基本活动:

        配置项标识

              配置项控制

              配置状态报告

              配置审计

    4、测试组织与人员管理

    测试人员选择、测试人员激励、测试职业发展、测试人员培训

    5、软件风险管理

    软件分析分析:发生的可能性、影响的严重性

    应急措施:增加资源、缩小范围、减少质量过程

    6、测试成本管理

    测试成本控制:

          测试准备成本控制(测试实施成本)

                  测试执行成本控制(测试实施成本)

                  测试结束成本控制(测试实施成本)

                  降低测试实施成本

                  降低测试维护成本

    质量成本:一致性成本+非一致性成本

    一致性成本:预防成本+测试预算

    非一致性成本:软件错误引起的成本+测试过程故障引起的成本

    DDP(缺陷探测率):BUGtester/BUGtester+BUGcustomer

    软件中的BUG数:(测试1发现的BUG+测试2发现的BUG数)/共同发现的BUG
  • AIX下DB2笔记-创建数据库

    2010-08-09 16:50:55

    环境变量设置
    C:\Program Files\IBM\SQLLIB\BIN;
    C:\Program Files\IBM\SQLLIB\FUNCTION;
    C:\Program Files\IBM\SQLLIB\REPL;

    Db2创建过程
    1. 创建用户,需root权限
    useradd -d /目录/ -g 组名 用户名
    2. 创建db2 instance,需root权限
    db2icrt -a server -u 组名 用户名

    3. 修改/etc/services
    修改/etc/services/文件,增加tcp端口
    Db2_用户名_1    81000/tcp
    db2_用户名_2    81001/tcp
    可以添加多个端口

    4. 修改用户.profile
    增加设置db2环境变量
     # The following three lines have been added by UDB DB2.
    if [ -f /swt/usr/swtp4/sqllib/db2profile ]; then
        . /swt/usr/swtp4/sqllib/db2profile
    fi
    修改后执行 . ./.profile使配置文件生效

    5.启动数据库
    db2start

    6. 修改数据库参数
    db2set DB2_STRIPED_CONTAINERS on
    db2set DB2CODEPAGE 1386
    7. 创建数据库
    db2 create db 【数据库名】 using codeset gbk territory cn
    db2 connect to 【数据库名】
    db2 create bufferpool bp size 4096 pagesize 32k
       
    8. 创建表空间
    db2 "create tablespace TBLSPACE32K pagesize 32k managed by database using (file '/$HOME/sqllib/usrspace' 40960) bufferpool bp"

    9.数据库创建后需查看数据库管理配置
     使用命令:db2 get dbm cfg,查看svcename是否为空
     (svcname数据库监听端口,值在文件/etc/services中添加的值)
     修改端口号:db2 update dbm cfg using svcename 【端口号】
     查看端口号:db2 get dbm cfg | grep -i service

     Db2comm为db2连接放式,可能需改为tcpip以支持tcpip协议
     修改命令:db2set db2comm=tcpip
     查看已设置的值,可以用命令db2set -all

    10. 创建表,导入数据库表数据
    db2 -tf 【批处理文件名】

  • nmon性能监控工具

    2010-06-30 16:04:47

    1.查看AIX版本信息
    #oslevel -s
    下载相应的nmon,将脚本文件直接上传到服务器

    2.运行以下脚本:
    #./nmon -f -t -r test -s30 -c180
    test:这次监控的标题
    -s30:每30秒采集一次数据
    -c180:一共采集180次
    运行命令后,在当期目录下产生test1_090320_2213.nmon文件

    3.运行如下命令可将nmon文件转化为csv
    #sort -A test1_090320_2213.nmon>test1_09320_2213.csv

    4.下载此csv文件到本地,通过nmon_analyser工具转换为excel,即可看到图形化监控结果(注意安全级别设置为低)

  • linux中文乱码问题

    2010-06-01 09:59:48

    1修改以下两个文件
    vi .bash_profile
    export lang=zh_CN

    vi /etc/sysconfig/i18n
    LANG="en_US.UTF-8"
    SUPPORTED="en_US.UTF-8:en_US:en:zh_CN.GB18030:zh_CN:zh:zh_TW.big5:zh_TW:zh:ja_JP.UTF-8:ja_JP:ja:ko_KR.eucKR:ko_KR:ko"
    SYSFONT="latarcyrheb-sun16"

    只改第一个不管用,好像第二个尤其重要,必须改。

    ******************************************************************
    2如果是console终端乱码
    在/etc/profile文件的最后一行添加如下内容:
    export LC_ALL="zh_CN.GB18030"

  • 英文版linux安装中文字体

    2010-06-01 09:14:07

    将xp的字体xxx.ttc拷到linux系统下/usr/share/fonts/

    执行命令:
    mkfontscale
    mkfontdir//创建索引
    fc-cache//更新字体缓存

  • 虚拟机上的Linux上网设置

    2010-05-13 15:43:07

    1.linux虚拟机安装成功
    2.vmware有两种上网方式
    a 选择bridge方式(与本机在同等位置,两者相当于局域网,虚拟机有自己的独立ip)
    b 选择nat方式(共享本机ip)

    如果linux本机设置为自动获取ip,则以上设置立即生效,可直接上网。
    如果Linux需要设置静态ip,可参考以下方法

    linux里设置ip:
    进入图形界面>application>system tool>network device control,设置ip,跟xp差不多
    或者直接修改etc/sysconfig/network-scripts/ifcfg-eth0文件,启动后生效
    直接设置IP地址命令 ifconfig eth0 192.168.10.123 netmask 255.255.255.128
    直接设置默认网关命令 route add default gw 192.168.10.1
    直接设置DSN命令 etc/resolv.conf

    设置成功后重起网络服务  命令:service network restart
    查看本机ip 命令:ifconfig

     

  • OTAclient.dll只读导致QC无法登陆解决办法

    2010-05-10 15:51:15

     

    删除安装目录下C:\Program Files\Common Files\Mercury Interactive\Quality Center的所有文件,重新安装QC客户端组件。

  • 软件测试类型[转]

    2010-05-05 16:56:35

    软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。

    1 数据和数据库完整性测试

    数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
    数据库完整性原即:
    主码完整性:主码不能为空;
    外码完整性:外码必须等于对应的主码或者为空。
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。
    在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。

    比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
    员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。


    2 白盒测试

    白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试
    2.1 静态白盒测试
    利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
    Function NameGet(){
    ….
    }
    这是属于不符合开发规范的错误。
    有这样一段代码:
    if (i<0) & (i>=0)

    这段代码交集为整个数轴,IF语句没有必要
    I=0;
    while(I>100){
    J=J+100;
    T=J*PI;
    }
    在循环体内没有I的增加,bug产生。

    2.2 动态白盒测试
    利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
    看一段代码
    if(I<0){
    P1
    }else{
    P2
    }
    在调试中输入I=-1,P1程序段通过, P2程序段未通过,属于动态黑盒测试的缺陷

    3.功能测试

    功能测试指测试软件各个功能模块是否正确,逻辑是否正确。
    对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
    比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。

    4.UI测试

    UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等
    用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关
    比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。

    5.性能测试

    性能测试主要测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试
    5.1负载测试
    负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。
    在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
    比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?
    5.2强度测试
    强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。
    实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。
    比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M。
    5.3数据库容量测试
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。
    数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
    比如,在电子商务系统中,通过insert customer 往user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
    5.4基准测试
    基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。
    如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
    5.5竞争测试
    软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?

    6. 安全性和访问控制测试

    安全性和访问控制测试侧重于安全性的两个关键方面:
    应用程序级别的安全性,包括对数据或业务功能的访问
    系统级别的安全性,包括对系统的登录或远程访问。
    6.1应用程序级别的安全性
    可确保:在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一”能够看到所有客户消息(包括财务数据),而“用户二”只能看见同一客户的统计数据。
    比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?
    6.2系统级别的安全性
    可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
    比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?

    7.故障转移和恢复测试

    故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。
    故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。
    故障转移测试可确保:对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地“顶替”发生故障的系统,以避免丢失任何数据或事务。
    恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意主备定时备份
    比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话?

    8.配置测试

    又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等)
    下面列出主要配置测试
    8.1浏览器兼容性
    测试软件在不同产商的浏览器下是否能够正确显示与运行;
    比如测试IE,Natscape浏览器下是否可以运行这套软件?
    8.2操作系统兼容性
    测试软件在不同操作系统下是否能够正确显示与运行;
    比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?
    8.3硬件兼容性
    测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用.
    比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
    这样的测试必须建立测试实验室,在各种环境下进行测试。

    9.安装测试

    安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
    安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

    10.多语种测试

    又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常。
    本地化测试还要考虑:
    l 当语言从A翻译到B,字符长度变化是否影响页面效果。比如中文软件中有个按键叫“看广告”,翻译到英文版本中为 “View advertisement”可能影响页面的美观程度
    l 要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。
    l 要考虑各个国家的民族习惯,比如龙个美国中被理解邪恶的象征,但翻译到中国,中国人认为为吉祥的象征。

    11.文字测试

    文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。
    比如:“比如,请输入正确的证件号码!”何谓正确的证件号码,证件可以为身份证,驾驶证,也可为军官证,如果改为“请输入正确的身份证号码!”用户就比较容易理解了。

    12.分辨率测试

    测试在不同分辨率下,界面的美观程度,分为800*600,1024*768,1152*864,1280*768,1280*1024,1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。

    13发布测试

    主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试

    13.1说明书测试
    主要为语言检查,功能检查,图片检查
    语言检查:检查说明书语言是否正确,用词是否易于理解;
    功能检查:功能是否描述完全,或者描述了并没有的功能等;
    图片检查::检查图片是否正确
    13.2宣传材料测试
    主要测试产品中的附带的宣传材料中的语言,描述功能,图片
    13.3帮助文件测试
    帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
    13.4广告用语
    产品出公司前的广告材料文字,功能,图片,人性化的检查

    14 文档审核测试

    文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:

    文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。

    14.1需求文档测试

    主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;

    14.2设计文档测试

    测试设计是否符合全部需求以及设计是否合理。

    总结

    据美国软件质量安全中心2000年对美国一百家知名的软件厂商统计,得出这样一个结论:软件缺陷在开发前期发现比在开发后期发现资金,人力上节约90%;软件缺陷在推向市场前发现比在推出后发现资金,人力上节约90%。所以说软件的缺陷应该尽早发现。不是所有的软件都要进行任何类型的软件测试的,可以根据产品的具体情况进行组装测试不同的类型。
  • Tuxedo维护常用命令

    2010-05-05 15:14:59

    1配置文件
    Tuxedo的配置文件通常称为ubbconfig文件。
    ubbconfig文件可视作包含应用启动信息的容器,需编译成二进制文件tuxconfig,作为启动时的参考。包含:
    系统范围信息 resources
    机器信息 machines
    组信息 groups
    服务信息 servers
    交易信息 services
    网络组信息 netgroups
    网络信息 network
    路由原则信息 routing
    当ubbconfig完成后,用tmloadcf命令生成tuxconfig(也可以用图形界面生成)

    2tmloadcf和tmunloadcf
    tmloadcf -y 无条件覆盖
             -c 计算运行应用需要的IPC
             -n 进行语法检查不生成tuxconfig
             -b 控制占用物理页数
    tmunloadcf 将tuxconfig转化成ascii格式

    3tmboot和tmshutdown
    tmboot -y 启动 [A启动所有机器上的管理进程 M启动主控制机器上的管理进程 i启动服务id=某某的进程 g启动某组服务 S启动所有应用服务]
    tmshutdown -y 停止

    4管理工具主要包括:tmadmin和GAI

    介绍tmadmin工具
    printserver (psr)查看服务信息
    printservice (psc) 查看交易信息
    printqueue (pq)查看队列信息   例 pq [padress]
    printclient (pclt)查看客户信息

  • Linux常用命令

    2010-04-30 17:56:33

    1.修改默认启动模式
    进入/bin/etc/inittab (inittab是个文件)
    打开文件后,找到
    id:5:initdefault:
    其中的5就是x-window为默认运行级
    将5改为3即可

    具体操作步骤:
    以系统管理员身份登录
    输入命令:cd /bin
             cd /etc
             vi inittab
             i   进入编辑状态,更改为3
             esc 推出编辑状态
             :wq!
             reboot  重启后进入命令模式

    2.pwd 显示当前路径

    3.ls 列出当前文件夹信息
      ls -l 列出属性值

    4.su 切换用户
      exit可退回到原用户

    5. useradd添加新用户
       passwd设置密码
       userdel删除用户
       rm -rf删除用户所在目录
       上面的帐号只有root可以用,创建同时会在etc、passwd文件创建信息

    6. chmod 更改文件属性
       chmod ugo+w filename
       chmod ugo-r filename
       u,g,o分别代表作者,同组和其他人
       +是增加属性
       -是减少属性
       rw读写

    7 vi 进入vi编辑器
      vi filename 打开文件
      vi newname  新建文件

    8 i 进入编辑模式
      esc 推出编辑模式

    9 halt关机
      shutdown
    $ shutdown -c          取消正在进行的关闭操作
    $ shutdown -f          快速重新启动,在重新启动时禁止对fsck的常规调用
    $ shutdown -h          当关闭完成时停止系统
    $ shutdown -k          输出警告信息,但禁止实际的关闭
    $ shutdown -n          不调用init就执行关闭
    $ shutdown -r          当关闭完成时重新启动系统
    $ shutdown -t 5        在杀死进程和改变运行级别之间确保延时5秒

    10 data 显示修改系统时间
    $ date -s 06/09/2004 修改日期(按月日年格式)
    $ date -s 13:56:00 修改时间(按时分秒格式)
    $ date -r test 显示test文件最后一次的修改时间
    $ date +'%Y-%m-%d' 以yyyy-mm-dd格式显示日期,其它格式请参考帮助
    $ clock -r 查询BIOS时间
    $ clock -w 把修改后的时间写回BIOS

    11 df 显示磁盘容量状态
    df [options][name]
    $ df -h 以友好的格式输出所有已安装文件系统的磁盘容量状态
    $ df -m /home 以M为单位输出home目录的磁盘容量状态
    $ df -k 以K为单位输出所有已安装文件系统的磁盘容量状态
    $ df -i 报告空闲的、用过的或部份用过的(百份比)索引节点
    $ df -t ext3 仅显示文件类型为ext3的文件系统的磁盘状态
    $ df -x ext3 仅显示文件类型不为ext3的文件系统的磁盘状态
    $ df -T 除显示文件系统磁盘容量大小外还显示文件系统类型
    $ df -l 仅显示本地文件系统。

    12 cp 复制文件
       cp a b
       cp a c/a

    13 cd 切换目录
       cd .. 返回上一级目录

    14 mkdir 新建文件夹
       rmdir 删除空的文件夹

    15 rm 删除文件

    16 du 查询该目录下下所有目录信息

    17 n 继续上次查询
       / 查询

    18 who显示当前用户

    19 ifconfig 查看网络信息(相当于windows下ipconfig)

    20 tar 打包命令
       tar xvf filename.tar 解包
       tar cvf filename.tar Dir 打包

    21 tar.gz
       tar zxvf filename.tar.gz 解包
       tar zcvf tilename.tar.gz Dir 打包

    22 top 性能指标

    23 ps 显示进程

  • Ruby常用函数

    2010-04-28 21:01:06

    1. downcase,upcase #把字符改为大写或小写
    使用方法:string.downcase #小写
             string.upcase   #大写

    2. array操作
    string << “a”       #加入到列队最后
    string.pop          #弹出最后一个元素
    string.push["a"]    #加入啊到最后队列
    string[2..5]        #列出第3到第6个元素
    string.delete_at[0] #删除第一个元素
    string.delete["a"]  #删除元素a
    string              #列出队列全部元素
    string[-1]          #列出倒数第一个元素
    string.length     
    string.empty?       #true

    3. Time.now          #输出当前系统日期
       Time.now.strftime('%y%m%d')  #更改格式

    4. [arrays].each do |element|
       ......
       end                #对每个元素执行......语句,结果返回原arrays

    5. [arrays].collect do |element|
       ......
       end                #对每个元素执行......语句,结果不返回原arrays

    6. “a/b/c”.split("/")    #以/为分隔获取array

    7. ["b","a","temp"].include?('temp') #执行结果为true

    8. A unless B    #如果B为真 执行A


       
      

  • Ruby操作txt文件

    2010-04-28 20:48:21

    使用Ruby操作txt文件

    新建文件并保存在指定目录
    file=File.new('C:\\ruby.txt','w')
    file.puts "hello"
    file.close
    运行上述语句,在c盘根目录新建了ruby.txt文件,其内容为hello

    打开txt文件
    file=File.open('C:\\ruby.txt')
    file.puts "hello"
    file.close

    读取txt文件
    file=File.open('C:\\ruby.txt').readlines #读取出的数据被装入file数组
    puts file
    file.close
    运行上述语句,得到 数组如:"a","b","c"

  • Ruby+Watir环境搭建

    2010-04-28 20:07:46

    工具介绍
    Ruby 是面向对象的编程语言,它追求的是“简便快捷的面向对象编程”。Ruby是解释型语言,因此不需编译即可快捷地编程。同时Ruby具有类似Perl的强大的文本处理功能,它可并不只是个玩具,您可以用它来进行实用的编程。此外,您还可以很方便地使用C语言来扩展Ruby的功能,因此可以把她当作各种库的前端来使用。

    Watir( Web Application Testing in Ruby) 是一个优秀的开源工具,用于开发基于Web 应用的自动化测试程序。它使用Ruby 脚本语言,提供了轻量级的自动化测试程序框架和丰富的开发库,有效地加速了自动化测试程序开发。

    第一步:下载Ruby安装包,直接点击exe运行
    Ruby官方下载地址:http://www.ruby-lang.org/zh_cn/downloads/,稳定版本Ruby 1.8.6

    检查安装是否成功
    在命令行输入 ruby -v 回车,若显示版本号则表示安装成功。

    环境变量设置
    若没有安装装成功重新安装,或者检查环境变量是否设置正确,如下:
    RUBY_HOME=D:\Development\InstantRails-1.7-win\InstantRails\ruby
    PATH=%RUBY_HOME%\bin
    RUBYOPT=rubygems
    RUBYOPT=rubygems这个环境变量是Ruby语言运行系统命令ruby所规定的,但是其值是另外一个重要软件RubyGems所需要的.一旦设置好了它之后,ruby命令启动时就会自动带上rubygems的开关,此时,你可以在Ruby语言程序中使用通过gem安装过的软件包.

    第二步 在线安装watir
    先运行:gem update --system    升级gem
    再运行:gem install watir      安装watir(有点时间的,需要等待)
    检查安装是否成功:watir -v回车,若出现版本信息则安装成功

    使用gem list命令可查看当前系统中安装的ruby相关组件


  • JUnit4单元测试实例图解

    2010-01-06 16:51:05

    1.软件环境

    Eclipse

    JUnit4

     

    2.为项目添加JUnit4

    A.添加Eclipse自带的Junit4

    打开项目属性页->选择Java Build Path->点击Add Library->在弹出的对话框中选择JUnit->选择JUnit版本后点击Finish.(2.1)

    2.1

    B添加Junit其他方法

    打开项目属性页->选择Java Build Path->点击Add External JARS->选择JUnit地址后点击确定.(2.2)

    2.2

    3. 修改代码目录

    分别为单元测试代码与被测试代码创建单独的目录,单元测试代码和被测试代码使用一样的包,不同的目录。

    选择项目属性->选择Java Build Path->在根目录下添加一个新目录,并把它加入到项目源代码目录中.(3.1)

    3.1

     

    4.JUnit元数据

    @Before
    使用了该元数据的方法在每个测试方法执行之前都要执行一次。
    @After

    使用了该元数据的方法在每个测试方法执行之后要执行一次。
    注意:@Before@After标示的方法只能各有一个。这个相当于取代了JUnit以前版本中的setUptearDown方法,当然你还可以继续叫这个名字,不过JUnit不会霸道的要求你这么做了。
    @Test(expected=*.class)
    JUnit4.0之前,对错误的测试,我们只能通过fail来产生一个错误,并在try块里面assertTruetrue)来测试。现在,通过@Test元数据中的expected属性。expected属性的值是一个异常的类型
    @Test(timeout=xxx):
    该元数据传入了一个时间(毫秒)给测试方法,
    如果测试方法在制定的时间之内没有运行完,则测试也失败。
    @ignore

    元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而 在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一个String的参数,来表明为什么会忽略这个测试方 法。比如:@lgnore(“该方法还没有实现”),在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。

    5.实例

    被测试代码:

    package com.ai92.cooljunit;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    /**
    * 对名称、地址等字符串格式的内容进行格式检查
    * 或者格式化的工具类
    *
    * @author Ai92
    */
    public class WordDealUtil {
      /**
       * Java对象名称(每个单词的头字母大写)按照
       * 数据库命名的习惯进行格式化
       * 格式化后的数据为小写字母,并且使用下划线分割命名单词
       *
       * 例如:employeeInfo 经过格式化之后变为 employee_info
       *
       * @param name  Java对象名称
       */
      public static String wordFormat4DB(String name){
        Pattern p = Pattern.compile("[A-Z]");
        Matcher m = p.matcher(name);
        StringBuffer sb = new StringBuffer();
        
        while(m.find()){
          m.appendReplacement(sb, "_"+m.group());
        }
        return m.appendTail(sb).toString().toLowerCase();
      }
    }

     

    单元测试代码:

    package com.ai92.cooljunit;
    import static org.junit.Assert.assertEquals;
    import org.junit.Test;
    public class TestWordDealUtil {
      //测试wordFormat4DB正常运行的情况
      @Test public void wordFormat4DBNormal(){
        String target = "employeeInfo";
        String result = WordDealUtil.wordFormat4DB(target);
        
        assertEquals("employee_info", result);
      }

    //测试 null 时的处理情况
      @Test public void wordFormat4DBNull(){
        String target = null;
        String result = WordDealUtil.wordFormat4DB(target);
        
        assertNull(result);
      }
      
      //测试空字符串的处理情况
      @Test public void wordFormat4DBEmpty(){
        String target = "";
        String result = WordDealUtil.wordFormat4DB(target);
        
        assertEquals("", result);
      }
      //测试当首字母大写时的情况
      @Test public void wordFormat4DBegin(){
        String target = "EmployeeInfo";
        String result = WordDealUtil.wordFormat4DB(target);
        
        assertEquals("employee_info", result);
      }
      
      //测试当尾字母为大写时的情况
      @Test public void wordFormat4DBEnd(){
        String target = "employeeInfoA";
        String result = WordDealUtil.wordFormat4DB(target);
        
        assertEquals("employee_info_a", result);
      }
      
      //测试多个相连字母大写时的情况
      @Test public void wordFormat4DBTogether(){
        String target = "employeeAInfo";
        String result = WordDealUtil.wordFormat4DB(target);
        
        assertEquals("employee_a_info", result);
      }
    }

     

    6.运行Junit

    测试方法必须使用注解 org.junit.Test 修饰。

    测试方法必须使用 public void 修饰,而且不能带有任何参数。

    在测试类上点击右键,在弹出菜单中选择 Run As JUnit Test。运行结果如下图所示:

    运行界面提示我们有两个测试情况未通过测试

    ——当首字母大写时得到的处理结果与预期的有偏差,造成测试失败(failure);——而当测试对 null 的处理结果时,则直接抛出了异常测试错误(error

     

    JUnit 将测试失败的情况分为两种:failure errorFailure 一般由单元测试使用的断言方法判断失败引起,它表示在测试点发现了问题;而 error 则是由代码异常引起,这是测试目的之外的发现,它可能产生于测试代码本身的错误(测试代码也是代码,同样无法保证完全没有缺陷),也可能是被测试代码中的 一个隐藏的bug

     

    7. 测试套件

    创建一个空类作为测试套件的入口。

    使用注解 org.junit.runner.RunWith org.junit.runners.Suite.SuiteClasses 修饰这个空类。

    org.junit.runners.Suite 作为参数传入注解 RunWith,以提示 JUnit 为此类使用套件运行器执行。

    将需要放入此测试套件的测试类组成数组作为注解 SuiteClasses 的参数。

    保证这个空类使用 public 修饰,而且存在公开的不带有任何参数的构造函数。

    package com.ai92.cooljunit;
    import org.junit.runner.RunWith;
    import org.junit.runners.Suite;
    ……
    /**
    *
    批量测试 工具包 中测试类
    * @author Ai92
    */
    @RunWith(Suite.class)
    @Suite.SuiteClasses({xx1.class, xx2.class})
    public class RunAllUtilTestsSuite {
    }

Open Toolbar