• 首页

  • 公司概况

  • 课程分类

  • 团体定制

  • 新闻中心

  • 技术天地

  • 给我留言

  • 在线报名

  • 联系我们
ERP方面知识文章
  • 室内设计行业优势
  • 3dmax怎么渲染白模出来?
  • 怎么成为一个软件架构师
  • 平面设计中的标志设计
  • 现代版式设计的发展趋势
  • 网页设计中的配色以及排版理论
  • 平面设计之书籍装帧的版式设计
  • 中小ERP厂应向精专发展
  • ERP的实施环节关乎成败
  • “三只眼”选型ERP
  • ERP功能测试最佳实践
  • 中小企业ERP系统选型中的四个标准分析
  • ERP选型实施失败的血泪教训
  • 剖析中国企业ERP实施症结
  • ERP市场的“微软式威胁”
  • ERP项目实施失败的体会
  • ERP系统实施的成功关键因素
  • ERP未来:BI、BPM还是E-commerce
  • ERP与电子商务集体“结婚”
  • ERP系统基础数据编码指南
  • ERP系统验收时测试流程方法及内容
  • SOA引燃中国软件战火 08年ERP市场或重新洗牌
软件测试技术
  • 成都软件测试、性能测试工程师培训
  • 成都软件测试、白盒测试培训哪些内容?
  • 软件测试工作中包括哪些内容
  • 软件测试行业 女生的必选专业
  • 软件测试内容 软件测试技术 培训机构
  • 软件测试培训成都川软的优势有哪些
  • 软件测试行业供不应求
  • 目前选择川软成都软件测试工程师培训业四大优势
  • 软件测试行业倍受青睐
  • 软件测试技术发展趋势
  • 参数测试 解析手机测试新趋势
  • 手机软件开发前景怎么样?
  • 软件测试培训:本地化测试
  • 软件测试培训:随机测试
  • 软件测试培训:用户界面测试-UI测试
  • 软件测试培训:β测试_Beta测试
  • 对已有的代码,怎么做单元测试
  • 软件测试部门测试工作规范
  • 软件测试:性能测试综述
  • 自动化脚本编写有哪些方法
  • 软件测试:如何写功能测试报告
  • Web系统性能测试包括哪些方面?
  • 软件测试的类型主要有哪些?
  • 软件测试主要分哪些阶段?
  • 如何划分缺陷等级
  • 如何把QTP和QC连接起来工作?
  • 如何使用QTP进行自动化测试的流程
  • 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别
  • 单元测试、集成测试、系统测试的侧重点是什么?
  • 软件测试需求的分析方法
  • 测试用例编写要点
  • 测试用例设计步骤
  • 如何编写测试分析报告
  • BUG管理都包括哪些工作?
  • 软件系统的测试流程是什么?
  • 功能测试的主要内容都有什么?
  • 软件测试工具LoadRuer的协议选择
  • 软件测试工具LoadRuer常见问题
  • 软件测试工具QTP学习笔记
  • 如何测试Web网站?
  • 软件测试工程师必备技术
  • 单元测试之白盒测试方法
  • 左手测试,右手QA
  • 软件测试的11个步骤
  • 软件测试基础教程
  • 测试过程中如何准确进行bug描述
  • 软件测试需求的分析方法有哪些?
  • 有效测试软件的方法与技术
  • 软件测试常用的功能测试方法
  • 测试设计中需要考虑的22种测试类型
  • 软件测试师:如何写软件性能测试用例
  • 质量保证、 软件测试 及配置管理面面观
  • 软件单元测试的重要性
  • 使用Loadrunner 性能测试 经验总结
  • 软件测试工作:入门篇
  • 提高软件测试能力的N条建议
  • 我们应如何执行软件测试
  • 我们应如何写好测试用例
  • 软件测试概念总结
  • 手机软件测试详细解析
  • 软件测试中黑盒测试的测试用例设计常用方法
  • 网站测试流程、要求及测试报告
  • 电子商务网站测试的特点有哪些
  • 软件测试步骤与流程
  • 软件工程文档内容:概要设计说明书
  • 功能测试的测试工作流程
  • 软件性能测试过程
  • 软件测试的分类
  • 软件测试中什么是白盒测试,什么是黑盒测试?
  • 软件手工测试与自动化测试的优缺点
  • 软件测试工作流程
  • 软件测试用例的基本格式
  • 软件测试数据库中oracle支持的数据类型
  • 数据库测试的种类和测试方法简介
  • 软件开发测试中的几个关键步骤和流程
  • 如何使用QC和QTP构建自动测试体系
  • 黑盒测试不等于手工测试
  • 验收测试的过程和主要内容
  • 软件测试的相关术语
  • 软件测试提升从搭建测试环境开始
  • 怎么学习软件测试,软件测试好学吗?
  • 总结:注重实效的单元测试
  • 分布式程序的自动化回归测试
  • 软件测试中的43个功能测试点总结
  • 浅谈软件测试流程
  • 软件测试的Bug管理的一般流程
  • 软件测试工作的几个重要方面
  • 利用有限的测试资源开展单元测试和接口测试
  • 软件测试人员的发展误区
  • 提高软件测试能力的19条建议
  • 实施白盒测试的几个误区
  • 功能性测试的21种软件故障模型
  • 单元测试有助于产出高质量、无缺陷的代码
  • 黑盒测试的测试用例设计方法
  • 软件测试及其支持工具
  • 软件测试及测试工具比较
  • 何时应进行自动化测试?
  • 如何证明或者度量测试工作的有效性?
  • 软件测试项目的启动、规划与需求分析
  • 自动化测试框架之控制界面的关键
  • 如何减小大量写log对性能测试的影响
  • 使用QTP统计页面加载时间
  • 游戏测试的全过程
  • MIS系统中的报表测试
  • 软件性能测试的重要性及策略
  • 如何做好系统测试
  • 安全测试与渗透测试区别论
  • 性能测试结果的几点分析原则
  • 手机基本功能测试:通话记录测试
  • 负载测试、压力测试和性能测试的异同
  • 学好性能测试需要搞懂的问题
  • 软件测试需求分析的作用及怎样进行需求分析
  • 面向对象软件测试用例设计
  • 软件自动化测试方案的效益分析
  • 揭示7个提高软件质量的务实做法
  • 测试Leader如何保证测试的质量?
  • 软件测试用例设计规范
  • 软件测试计划标准模板
  • 软件测试:设计功能和界面测试用例
  • 软件测试:Web的系统测试方法
  • 关于测试人员的角色定位
  • 如何确定软件测试技术
  • 用Ruby和JtestR来促进Java测试
  • 软件测试中的压力测试
  • 软件测试:新产品的第一次可用性测试
  • 嵌入式软件测试中数据获取方式
  • 软件测试过程中如何应对频繁的版本变更
  • 如何量化评估被测试软件的质量?
  • 判断自己是否适合走软件测试管理路线
  • 软件测试团队的规范性和灵活性
  • 三个人的测试部门如何开展多项目测试
  • 软件测试需求管理:是否应避免架构重写
  • 项目测试经验交流
  • 软件测试:对于B/S结构的一点理解
  • 女软件测试工程师的成长
  • 测试流程之每日构建
  • 如何在测试这一领域中发展
  • 什么是α测试和β测试?
  • 软件测试浅悟妄语
  • 测试工作心得
  • 学习软件测试的基础
  • 软件测试成就业市场"黑马"
  • 软件测试人才蓄力开跑
  • 软件测试人才稀缺引教育部出招“救人”
  • IT招聘会上软件测试人才受青睐
  • 软件测试工程师比博士还抢手
  • 马化腾:我就是一个工程师
Office办公技术
  • 利用office处理图片的技巧
  • CAD画图中常遇到的一些小问题
  • CSS教程:clip属性完全解答
  • 平面海报设计要素
  • 平面设计的分割、平衡及排列
  • 提高网页设计水平的七个要点
  • 完整的室内设计包括哪些内容
  • 广告设计制作专业用语
  • 名片设计如何搭配色彩
  • 3DS MAX与Photoshop相结合制作技巧
  • 经典收藏:HTML 语法大全
  • 判断LOGO好坏的12条参考标准
  • 室内设计在西方的理念
  • 画册设计知识:画册设计的最基本知识
  • 设计创意:提高创新能力的20个技巧
  • 平面设计:设计海报的常用表现手法
  • 平面设计:包装色彩选择方法
  • 平面设计:版式设计技巧
  • 平面设计:广告创意表现形式
  • CorelDraw快速复制方法与技巧
  • 通过Dreamweaver学习了解CSS
  • DIV+CSS设计页面时的常见错误预防技巧
  • 最令PHP初学者头痛的七个问题
  • 平面设计的基础
  • 85条高级AutoCAD工程师绘图技巧
  • 利用photoshop创建3D草特效文字
  • Photoshop小技巧(下)
  • Photoshop小技巧(上)
  • AutoCAD中关于层的用法介绍
  • AutoCAD中输出位图
  • Illustrator的颜色面板使用技巧
  • Illustrator 面板认识
  • PS包装设计理论之完美包装关键步骤
  • Illustrator运用春天笔刷制作3D立体字
  • 简述Excel表格设置阴影间隔
  • Excel技巧:让单元格自动调整字号
  • flash课件制作几个常用AS脚本
  • 在Powerpoint中连续播放背景音乐
  • 教你为Word文档插入背景音乐
  • WORD2007:如何从第N页插入页码
  • 怎样把WORD文档所含的图片单独保存下来
  • Excel复制与移动技巧
  • 批量删除 Word中回车的方法
  • 用Word做板报的教学案例
  • PowerPoint文档中背景图片的三种提取方法
  • 画册设计的一般规律
  • 写给想做设计师的人
  • 再度兴起的POP广告
  • 名片的视觉流程与形式美法则
  • 名片的设计构思与构图
  • 名片的意义及分类
  • 名片的设计知识详解
  • 名片设计知识概要
  • COREL DRAW的技巧和常见问题(三)
  • COREL DRAW的技巧和常见问题(二)
  • COREL DRAW的技巧和常见问题(一)
  • Office系列中的Excel
软件开发技术
  • PHP培训学校哪家好?成都
  • PHP培训已成为IT就业前的首选
  • 参加成都川软PHP培训有年龄要求吗?
  • 参加Java培训后能从事的工作岗位是什么
  • 学JAVA需要多久能上手
  • 21世纪电子商务师的发展趋势
  • 学习java技术有哪些优势?
  • PHP技术包含哪些知识点?
  • 参加完PHP培训后能从事哪些方面工作
  • PHP程序员的前景如何
  • 学java的优势 参加成都java培训
  • 参加成都java培训有前途吗
  • 学了JAVA有什么好处?
  • 如何设计大型展示牌
  • 数据库技术:SQL2000的数据类型
  • 什么是二次开发?
  • 敏捷开发的主要原则都有哪些?
  • PHP如何与mysql建立链接?
  • PHP 开发的一般流程是什么?
  • PHP如何对用户密码进行加密?
  • 如何定义CSS元素的显示属性的技巧
  • PHP网站发开实用技巧集锦
  • 软件工程文档内容:软件开发过程控制程序
  • JSP应用开发的背景及特点
  • j2ee学习方法与技巧
  • 27款经典的CSS框架
  • 推荐几个入门级的JS特效代码
  • 测试管理:如何更好地处理软件测试工作
  • 学习Java的30个基本概念
  • 应用最广的10大Javascript框架
  • Java经验分享
  • 剖析JSP与XML的交互编程技巧
  • 非典型ajax实践
  • PHP中常用的几个 mysql 语句
  • 通过PHP连接MYSQL数据库、创建数据库、创建表
  • PHP中对文件和目录的操作方法
  • 软件项目版本命名规范
  • Javascript不缓存操作cookies
  • 三级连动Javascript数据库查询代码整理
  • 64位Windows7系统IIS 7.0配置
  • 网页设计师如何应对客户无理要求
  • 从网页到网络平台 网站开发模式改变
  • 网站设计与开发流程管理
  • 提高DB2 Web程序性能2条规则
  • Windows和Unix下进行MYSQL密码恢复的步骤
  • 删除无效的SQL SERVER组的几种方法
  • JSP自定义标签由浅到深详解
  • Spring中事件处理的小技巧
  • Flash AS3教程:创建好看的遮罩动画效果
  • 在J2EE中APPLET和HTML作为客户端的比较
  • 网页初学者的参考:HTML标记手册
  • 列举对一些HTML标签语义的理解
  • 用HTML和CSS写出漂亮正规的BLOG
  • HTML的常用标签:超级连接标签A
  • HTML 和 XHTML 区别
  • 网页制作中经常用到的六则代码技巧
  • FLASH应用原理介绍
  • 谷歌Chrome 10浏览器正式版发布 暗战IE9
  • 网页病毒的概念
  • 网页设计中HTML常范的五个错误
  • 9个很有发展潜力的PHP开源项目
  • HTML特殊符号对照表
  • JAVA基础知识精华
  • 数据库设计五要点(下)
  • 数据库设计五要点(上)
  • 数据库建模工具:PowerDesigner与Rose
  • 大型高性能网站的十项规则(十)
  • 大型高性能网站的十项规则(九)
  • 大型高性能网站的十项规则(八)
  • 大型高性能网站的十项规则(七)
  • 大型高性能网站的十项规则(六)
  • 大型高性能网站的十项规则(五)
  • 大型高性能网站的十项规则(四)
  • 大型高性能网站的十项规则(三)
  • 大型高性能网站的十项规则(二)
  • 大型高性能网站的十项规则(一)
企业管理知识
  • 网络营销有哪些技巧和方法
  • 我们怎样才能学会PHP?
  • 优化网站设计的五种方法
  • 想快速提高家装设计能力的方法
  • windows7下怎样安装CAD即计算机辅助设计
  • 设计入门必读:RGB与SRGB的区别
  • 网站开发方面相关知识
  • 设计师谈设计的完美流程
  • 给准备创业的设计师一些建议
  • 四个管理小故事看CIO的工作
  • 利用设计工具成为个人设计团队
  • 网页设计中空格的烦恼
  • 图标设计技巧与灵感
  • 14条经验总结:关于设计理念的方法
  • Photoshop超小技巧六则
  • VI系统视觉识别标准
  • 品牌设计公司与广告公司的区别在哪?
  • 美工和设计师的区别
  • 平面设计的出路
  • 包装设计的定义
  • 让网站链接样式千奇百怪
  • 如何提高网页对于用户的可读性
  • 建设网站该学的一些知识
  • Photoshop制作磨沙深色网页按钮
  • 商业包装,包装设计形式法则和排列方式
  • JSP页面自动生成html页面或任何格式页面
  • 学习PHP:PHP的通用检测函数总结
  • 入门:PHP与MYSQL的结合操作
  • PHP初学入门:IIS中如何安装和配置PHP
  • Apache小技巧五则
  • 解决SQL Server常见的七个经典问题
  • 转换 SQL数据库时的疑难问题
  • 复制或传送SQL Server数据库(ADP)
  • 掌握Ora-00600 4194错误的解决方法
  • 软件系统架构
  • 网站起步前就应该思考的重要问题
  • 个人网站安全 从数据库合理管理开始
  • 首席信息官CIO
  • 2010年CIO在IT业投资重点预测
  • CIO搞定信息化项目计划之建议
  • CIO零售业信息化规划
  • CIO词汇宝典
IT技术
  • UI设计师——职业概述
  • 最具前景的职业——UI设计师
  • 怎样才能学好环境艺术
  • IT人士最看重的技能
  • 室内设计图纸该怎么看呢
  • 当前网页设计的现状
  • 网页设计培训 网页设计的就业前景
  • 成都电子商务大时代—网站美工培训供不应求
  • 成都网页设计师培训后需懂哪些技术?
  • 平面设计CorelDraw软件的使用
  • photoshop的定义,什么是PS?
  • 零基础学习室内设计去哪好?
  • 电子商务的就业方向
  • 电子商务带动网络营销人才薪资水涨船高
  • 川软室内设计师课程培训优势有哪些?
  • 淘宝开店最简单的步骤有哪几步?
  • 成都淘宝基础培训班、淘宝开店指导培训
  • 成都淘宝开店,淘宝装修美工,淘宝运营推广
  • photoshop软件包含哪些内容?
  • Auto CAD2010/2011重要知识点
  • 在川软参加电脑培训的学习优势
  • 学coreldraw软件能做哪些工作?
  • 平面设计软件常用的都有哪些?
  • 如何快速学好平面设计培训?
  • 平面设计工作如何?为什么那么多人选择设计行业
  • 成都平面设计培训机构哪里好?
  • 平面设计商业项目包括哪些内容?
  • 网络营销的发展趋势
  • 怎样让网站访问量大?
  • 数字艺术设计主要涉及到哪些方面?
  • CAD培训绘图设计课程的主要学习内容有哪些
  • 成都淘宝运营培训学校哪家好?
  • 如何让自己的网店脱颖而出?川软告诉你
  • 平面设计和网页设计有哪些相同点和不同点?
  • photoshop在淘宝开店中的重要性
  • 学习photoshop软件需要掌握哪些技术要点?
  • 网页设计课程要学哪些内容?
  • 平面设计培训川软的优势在哪里?
  • 3DMAX效果图制作包括哪些内容?
  • UI设计培训后能达到怎样的标准?
  • 网店装修含哪些知识点?
  • 淘宝开店需要提升哪些知识点
  • 什么是cad?以及cad软件的用途
  • 成都川软平面设计暑期招生要求
  • 成都平面设计培训:LOGO设计
  • 什么是ui设计?ui交互设计应该怎样设计?
  • 怎样才能更好学精学扎实平面设计?
  • 室内设计最有效的学习方法有哪些?
  • 成都室内设计培训之: 风水设计浅谈
  • 成都平面设计师提升培训哪些要点?
  • 0基础人员如何参加成都平面设计培训?
  • 结合实际做好成都平面广告设计
  • 成都网页设计 网页美工培训的好去处
  • 成都淘宝摄影技巧
  • 平面设计,重注重创意 设计 构思
  • 平面设计专业应用于哪些领域?
  • 参加成都淘宝培训 前期准备工作有哪些?
  • 成都室内设计培训的发展形式
  • 如何制作网页呢?成都川软网页设计培训告诉你
  • 淘宝店铺设计包含哪些内容?
  • 淘宝开店(网店装修)一般要学习哪些知识点?
  • 成都景观设计培训 园林设计培训内容有哪些?
  • 学室内设计 选对学校一生有益
  • 学室内设计 获高薪
  • 新手怎样学习平面设计?
  • 平面设计基础知识的学习
  • 新技术背景下的地域性室内设计
  • 景观设计培训目标
  • web前端工程师培训后能达到怎样的标准?
  • 无线充电技术将是未来的一个新发展
  • 成都室内设计培训学校哪个好?
  • 学习PHP专业怎样入门?
  • 成都php培训学校哪家好?
  • 成都学PHP培训提前学习哪些知识点?
  • 成都PHP培训没有电脑基础能学吗?
  • PHP开发语言让学生上手最容易!
  • 成都平面设计商业项目培训包含哪些内容?
  • 如何才能学好平面设计课程?
  • 平面设计师前景一片大好
  • 成都川软室内设计师培训哪些人适合参加?
  • 参加成都室内设计培训主要学哪几门课
  • Fireworks有哪些知识点掌握
  • flash包含哪些内容?
  • 什么是平面构成/色彩构成
  • 从事室内装修设计行业应该懂哪些知识点?
  • 参加java培训要学哪些知识点?
  • 平面美工/淘宝美工/网页美工通过工具
  • Illustrator软件要学习哪些内容?
  • 学平面设计更侧重设计,才是好的设计培训
  • 网页设计专业越来越受追捧
  • 学习成都室内设计培训到哪里好?
  • 视觉传达在平面设计培训的重要性
  • 如何才能成为一名优秀的室内设计师?
  • 怎样成为一名好的设计师?
  • 平面设计培训中LOGO的设计应注意哪些?
  • 参加成都室内设计培训有哪些条件?
  • 成都平面设计培训学校哪家好?
  • 成都室内设计师高薪就业没商量
  • 成都景观设计培训哪些内容?
  • 什么是景观设计?
  • 成都网页设计培训目标
  • 什么是景观设计?景观设计如何定义
  • 景观设计中植物的功效
  • 成都建筑表现培训班哪个学校好
  • 参加成都建筑表现设计培训的优势
  • 成都川软建筑表现专业
  • 成都淘宝网站推广技术培训
  • 成都淘宝培训技术优势
  • 室内设计培训/景观设计培训前景
  • 成都川软PHP培训优势
  • 什么是IIIustrator插画设计
  • 成都川软平面设计培训标准班就业目标
  • CAD包含哪些内容?
  • 软件测试员培训后主要做哪些工作?
  • 网页设计的重要性体现在哪些方面?
  • 室内设计行业目前薪资待遇
  • 淘宝开店很火暴
  • 室内设计培训+外出实践课
  • 网页设计培训内容难不难?
  • 平面设计的就业前景如何呢?
  • 一名优秀的室内设计师是怎样养成的
  • 成都室内设计培训学设计好还是学软件好?
  • 川软室内设计培训教学模式
  • 哪些人可以参加平面设计培训?
  • 什么是平面设计?怎样理解平面设计
  • 学好平面设计的经验之谈
  • 平面设计的一般流程是怎样的
  • 学习平面设计培训的流程及方法介绍
  • 常用的平面设计软件有哪些
  • 0基础也可以学平面设计培训
  • 平面设计培训行业生存现状
  • 当今IT行业PHP开发所占比例
  • 室内设计行业发展前景
  • 成都不容错过的网页设计培训学校
  • 室内设计培训:高端 大气 上档次
  • 成都平面设计培训怎么选?
  • 由浅入深的学习网页设计
  • 参加平面设计培训包括哪些商业项目
  • 参加平面设计培训为什么要学美术
  • 成都平面设计师培训要多久?
  • InDesign要学哪些内容
  • Illustrator软件要学哪些内容
  • CorelDraw软件学习知识点
  • 学习photoshop需要学哪些知识点
  • 平面设计这个行业的职业前景
  • 成都川软UI培训的优势有哪些
  • 成都UI培训:适合你就是最好的!
  • PHP行业成为未来5年最赚钱行业
  • 如何成为一名好的设计师
  • java开发在IT行业中有哪些优势
  • InDesign内容包括哪些
  • 成都Coreldraw培训内容
  • 参加成都photoshop培训需要学哪些内容
  • 成都cad培训川软招生进行时
  • 参加cad培训,需要学习哪些内容?
  • 参加成都photoshop培训的重要性
  • 成都平面设计培训 室内设计培训学校
  • 川软全能设计培训班适合对象及未来发展
  • 网站设计师薪酬前景怎么样呢
  • 平面设计培训中,画册设计注意事项
  • 如何学好成都室内设计培训课程
  • 如何学习CAD,怎样学好CAD
  • 淘宝开店我们应该注意哪些问题
  • 成都川软淘宝美工培训包括哪些知识要点
  • 如何定义平面设计?什么是平面设计
  • 室内设计工资怎么样?
  • 自己当老板 先参加室内设计培训
  • 室内设计师的工资待遇如何?
  • 目前软件测试工程师职业四大优势
  • 软件测试需要学什么 软件测试工程师实训课程
  • 网页设计师/网站设计师薪酬前景怎么样呢?
  • 目前什么IT专业好就业呢?
  • 想要好前途,学IT哪个专业最好?
  • 2014年女生学哪门专业比较吃香?
  • 成都IT培训学校怎么选
  • 在电脑方面适合做设计吗?
  • 软件测试培训课程包含哪些内容?
  • 成都机构,淘宝大学培训的课程是什么?
  • 为啥现在参加淘宝培训的人越来越多
  • 开淘宝店,自己当老板
  • 室内设计行业,带你走进高薪世界
  • 电子商务发展已成必然趋势
  • 川软成都网页设计培训有哪些优势
  • 软件测试成为IT职业中的新宠
  • 成都软件测试培训川软的特色
  • 2014年选择成都php培训的优势在哪
  • 室内设计行业发展迅速,前景看好
  • 淘宝开店已成一种时尚
  • 淘宝开店有哪些流程
  • 参加成都室内设计培训一般有什么要求
  • 参加成都网页设计培训的重要性
  • 参加成都php培训的重要性
  • 在成都如何选择好的平面设计培训学校
  • 网页设计方面的就业前景
  • 好的成都室内设计培训推荐
  • 室内设计/装修设计有哪些设计要点
  • 电子商务的发展前景
  • 怎样学好CAD软件?成都CAD培训哪些内容
  • 成都广告设计软件培训学哪些内容
  • 成都平面设计培训主要掌握哪些知识点
  • 参加成都平面设计培训 川软更注重平面设计领域
  • 选择成都川软平面设计培训的理由
  • 平面设计技巧方面的学习
  • 室内设计的设计风格
  • 软装设计师就业前景怎么样
  • 室内设计中装修需要注意什么事项
  • 川软设计课程更注重设计
  • 我们应该往哪方面去发展
  • 学习平面设计课程有哪些方法
  • 软件测试提升培训很有必要
  • 装饰设计行业呈现出欣欣向荣的局面
  • 电子商务师目前的优势
  • 川软UI设计培训课程介绍
  • 川软成都景观设计培训课程背景
  • 网页设计师成抢手人才
  • 什么是广告设计
  • 广告创意策划
  • 我们应该怎样学好平面设计
  • 平面设计的定义
  • 什么是室内设计?培训完后从事岗位
  • 参加平面设计培训的必要性
  • 川软平面课程提升后能从事岗位
  • UI设计培训后能达到怎样的目标
  • 成都摄影技术培训内容
  • 川软成都平面设计培训适合对象
  • 成都PHP培训学校有哪些优势
  • 没有美术基础可以参加室内设计培训吗
  • 成都川软室内设计课程优势
  • 成都电子商务培训目标
  • 成都川软平面设计培训的优势
  • 选择电子商务让你有一技之长
  • 2014年网页设计方面发展前景
  • 3dmax怎么创建挤出图形
  • 用DW制作网页时关于文字自动换行的小技巧
  • 实现人机交互的UI设计 让用户体验更便捷
  • 游戏设计 成就感并不只是成就游戏玩家的追求
  • Oracle CEO埃里森炮轰谷歌CEO“作恶”
  • 成都室内设计行业:引领家装时代浪潮
  • 平面设计目前的市场需求如何
  • 成都广告设计行业一片繁荣
  • 电子商务包括哪些内容
  • 为什么现在大多数人选择网页设计培训?
  • 成都室内设计培训:3DMAX效果图
  • 选择IT培训学校要注意哪些问题?
  • 初中生,高中生可以参加成都室内设计培训吗?
  • 没有电脑基础参加室内设计培训吗?
  • 无美术基础可以参加成都室内设计培训吗?
  • 高中生:高薪就在不远处等着你
  • PHP高级程序员要懂什么?
  • 室内设计行业 走在高薪行业的前端
  • 成都最好的室内设计培训支招
  • 成都平面设计培训:什么是平面设计
  • 成都室内设计培训:什么是室内设计?
  • 什么是UI?UI设计培训哪家好?
  • 成都平面设计培训:可自己当老板!
  • 成都平面设计培训:从事公司广告设计
  • 成都平面设计培训:可从事杂志社或出版社平面设计师
  • 成都平面设计培训:可从事报社平面设计师
  • 成都室内设计培训风水主要讲哪些内容?
  • 今年是成都室内设计培训的火暴年!
  • 成都室内设计培训包含哪些内容?
  • 成都哪个电脑培训学校好?
  • 想创业?室内设计是不错的选择
  • 成都室内设计培训包含哪些知识点?
  • 软件测试最需要什么?淡定!
  • 成都川软:室内设计的一些小技巧
  • 成都室内设计培训:快速学好3dMax
  • 成都室内设计培训有哪些好学校
  • 成都网页培训:网页设计可从事的职业
  • 成都java培训:怎样学好java?
  • 学习ps的一些小建议
  • 网页设计师的应具备的设计思路
  • 网页设计培训:几大构成
  • 网页设计培训(动态网页)包括哪些
  • 成都网页设计培训:静态网页
  • 网页设计培训:美术部分有哪些
  • 成都网页美工人才需求量巨大!
  • 成都网页培训:网页设计现状分析
  • 网页设计可从事哪些行业
  • 室内设计的主要内容是什么
  • 网页设计中如何色彩应用
  • 室内设计理念有哪些?
  • 平面设计技巧 构思是设计的灵魂
  • 绘画与平面设计的区别(上)
  • 绘画与平面设计的区别(中)
  • 绘画与平面设计的区别(下)
  • PHP人才需求情况如何?
  • Linux目录架构详解
  • Linux学习
  • 用Dreamweaver合理为网页进行优化
  • 浅谈DIV+CSS网页布局开发心得
  • 平面美术设计基础
  • EXCEL 使用技巧:基本方法(一)
  • EXCEL使用技巧:图形和图表编辑技巧 (三)
  • EXCEL使用技巧:函数和公式编辑技巧(四)
  • EXCEL使用技巧:数据分析和管理技巧 (五)
  • EXCEL使用技巧:数据输入和编辑技巧 (二)
  • 设计师的形象定位
  • 平面设计的相关理念
  • 现代标志设计的空间思维
  • 企业VI系统的简介和工作步骤
  • 平面设计:VI设计
  • 开发人员需牢记的HTML5安全问题
  • 名片设计的分类标准及特色
  • 利用PS滤镜制作放射文字教程
  • CorelDRAW鼠绘逼真漂亮的手折扇
  • PHP常用正则表达式
  • MySQL优化实例
  • 平面设计拼版注意什么?
  • 绘制电气图纸CAD经验
  • AutoCAD中特殊符号的输入技巧
  • PS钢笔工具如何使用
  • 平面设计师如何设计菜谱
  • 平面设计师输出前必须检查什么
  • Indsign平面排版技巧
  • 七个学习CAD的好方法
  • css入门教程资料(5)
  • css入门教程资料(4)
  • css入门教程资料(3)
  • css入门教程资料(2)
  • css入门教程资料(1)
  • 如何设计让卧室空间变美
  • 室内设计师技巧之小客厅设计方案
  • 绘图与打印比例控制、套用图框、标注命令
  • Aut CAD有哪些用途
  • 网页设计图片用JPG还是GIF的好
  • 平面设计中广告字体的设计技巧
  • HTML的几种触发都是什么?
  • 平面设计知识汇总
  • Dreamweaver网页设计制作技巧与提高
  • 企业画册设计知识
  • 广告印刷效果差的原因分析
  • CorelDraw印刷注意问题 (平面设计)
  • 给美眉照片添加柔焦效果 (平面设计)
  • 网页设计:Photoshop实用小技巧八十条
  • 平面设计:Freehand实用小秘技
  • Photoshop入门图层的操作技巧
  • 平面设计:操作CorelDraw 9的技巧
  • 书籍的扉页设计
  • logo设计/标志设计的理念
  • 怎样让DM单的设计做得更好?
  • 标志设计应注意哪些方面?
  • 室内设计师谈单技巧
  • 想学室内设计该从何入手
  • 如何识别好的3DMAX效果
  • 平面广告中的七个设计技巧
  • 包装设计的6个技巧
  • VI设计的43个技巧
  • 9个平面设计创意技巧
  • 18个网页设计技巧
  • 网页设计15个制作过程
  • AutoCAD 图导入Photoshop 的方法
  • Excel制作表导入AutoCAD图纸里
  • 室内设计中配色的10个小技巧
  • DreamWeaver经典技巧四则
  • 软件测试中的功能测试和性能测试
  • 标志设计的原则、方法、特点
  • 排版设计与制作:基本概念
  • 画册设计:如何在短时间里做好企业画册
  • 商品包装设计的三大构成要素
  • AutoCAD2010版快捷命令的规律与定义
  • 在AutoCAD中如何导入excel表格
  • Photoshop技巧集锦八十条
  • coreldraw9.0快捷键
  • CorelDraw局部对象放缩技巧
  • Coreldraw印前有哪些注意事项?
  • 平面设计理论
  • psd文件用什么打开
  • 平面设计理念
  • 平面设计的一般流程
  • 平面设计需要学会哪些?
  • photoshop cs5技巧总汇
  • VI系统视觉识别标准
  • 简单的印刷报价方法
  • AI印刷之前技巧详谈
  • 书装设计一、二、三……
  • 喷绘写真入门知识详解
  • 包装设计的九大创新理念
  • 用Dreamweaver为网页进行优化
  • 软件工程文档内容:系统指南
  • 软件工程文档内容:数据库设计说明书
  • 软件工程文档内容:软件需求说明书
  • 软件技术文档编写要求
  • 网站测试技术简介
  • 如何找准平面设计创意的方向
  • 静态网页的几个优势
  • 一些常用的网页设计方面的技巧
  • 网站页面设计的几个原则
  • 网页设计中关于标题设计的几点建议
  • 平面设计:如何提高色彩表现能力
  • 平面设计:平面构成的形式
  • 常见室内设计的风格
  • 室内设计工艺流程有哪些
  • 用photoshop快速去水印的技巧与方法
  • photoshop倒影制作技巧和方法
  • 初学者怎样学习div+css
  • 20种常用的photoshop技术,让你的照片美极了
  • JavaScript核心基础语法
  • 你的ps卸载完全了吗?完全卸载ps技巧
  • photoshop实用基础技巧
  • photoshop图像处理技巧
  • photoshop特效制作技巧
  • 40个经典photoshop技巧大全
  • 视图操作快捷键与你分享
  • photoshop层快捷键详解
  • photoshop调整人像照片肤色方法技巧
  • Photoshop制作文字中的应用技巧
  • Photoshop工具箱快捷键大全
  • Photoshop抠图的初步认识
  • Div+CSS平常工作中的一些使用技巧
  • DIV+CSS的命名规则
  • PHP的学习过程
  • 平面设计:画册设计的布局
  • 软件发布流程
  • 软件测试中如何学习QTP测试工具
  • 如何控制flash文件的大小
  • 网页设计的要点和重点
  • CorelDRAW 12合并打印使用方法及应用
  • 设计图标时美工设计常用的9个PS技巧
  • 家装完整的设计包括哪些内容?
  • 房地产平面广告主要种类
  • 平面设计:包装的色彩要领
  • 时尚流行的网页色彩选择和搭配技巧
  • 平面设计:Photoshop的颜色理论
  • 怎样学习div+css
  • UI设计中的用户研究、交互设计和界面设计
  • CSS网页布局ID和Class类的命名介绍
  • CSS网页布局困扰新手的八个问题
  • 色彩相关:不同的颜色会影响你的心境
  • photoshop中的文字排版
  • 处理coreldraw文件损坏的几种方法
  • 网页设计师必修的8个PS技巧
  • 玩转IE9 史上最全IE9疑难解答汇总
  • Photoshop|草丛巧绘技法
  • 关于矢量图形几个概念的说明
  • CorelDraw绘图技巧:对象选择技巧
  • 3dmax渲染108问(下)
  • 3dmax渲染108问(上)
  • 小型企业网站功能的规划和设计
  • Div+CSS布局的扩展技巧和用法24则
  • 推荐几个入门级的JS特效代码
  • 什么是数据仓库
  • 如何对MySQL服务器进行调优
  • FLASH中快速恢复面板布局
  • FLASH工具详解之铅笔工具
  • 如何在3dsmax中导出照明数据?
  • 3dsmax的菜单栏综述
  • 了解3dsmax工具菜单界面
  • 如何自定义3dsmax的场景资源管理器?
  • 教你用CorelDRAW打开AI,EPS文件的方法
  • photoshop暂存满了提示存储空间不足解决办法
  • 平面文字设计经验:注重汉字设计中的细节和气场
  • 商业包装设计之基础知识
  • 新手学做印刷业务的必修课程
  • 网页配色:RGB 和 CMYK 相互转换原理
  • 精选的一些AutoCAD应用技巧
  • Flash进度条的制作
  • 3DS MAX 9.0简体中文版安装大全
  • 3dsMax 2009最新功能
  • 告诉你几则AutoCAD的小技巧
  • 送给3DsMAX初学者的50条建议!
  • 给Flash初学者的几点建议
  • Flash cs3、Flex与asp、php通信
  • flash操作数据库技术:AS3通过ASP连接Acess数据库
  • Flash基础教程:FLASH语言详解
  • 高效率的超大规模Flex开发
  • 使用flashvars给flash或flex传值的方法
  • Flex的背景和技术特点
  • Flex的应用领域
  • 全面剖析设计师如何和客户谈单
  • 室内设计都要学些什么?
  • 平面设计排版的方法和技巧
  • 室内设计时应注意施工如何实现设计?
  • 家居流行新趋势
  • 室内设计的计算
  • 室内设计的几大常见设计方式
  • 平面设计中字体设计要考虑的印刷因素
  • 室内设计效果图的制作有哪些技巧
  • 室内设计师必备能力:讲述方案的技巧
  • 室内色彩搭配的技巧
  • 室内设计的色彩搭配有哪些法则
  • 室内设计的十种表现形式
  • 分析木工的施工工艺流程
  • 效果图制作应注意哪些内容?
  • 比较常见的几种室内设计风格
  • 平面设计常用的表现手法
  • 巧用CorelDraw进行对象选择
  • 如何提高设计效果图的打印质量?
  • PhotoShop的基本技巧
  • 常见的平面设计表现手法有哪些?
  • Photoshop中如何运用技巧进行复制操作?
  • 平面广告设计的排版技巧和思路
  • 室内楼梯设计的结构和方法
  • 平面广告设计如何选择标题?
  • 平面广告设计的图片选择
  • 快速提高设计能力的六条方法
  • 测试过程分析的15个常用度量元
  • 室内设计行业分析
  • 室内设计的风格及流派
  • PHP网站开发常用8个小技巧
  • Windows XP下PHP+MySQL环境搭建(下)
  • Windows XP下PHP+MySQL环境搭建(上)
  • 网页设计师如何跟客户沟通
  • 室内设计流程
  • 家装装饰-餐饮区域的功能设计
  • 家装设计三阶段
  • 视觉在室内设计上的应用
  • 家居装饰的基本原则
  • flash特效原理:倒影效果
  • firefox下如何去掉flash与其他元素的空隙
  • flash与文本:光标处插入字符串
  • 在flex应用中关闭浏览器
  • 网页设计之Flex Explorer 集合
  • 设计需了解几种常见的特殊印刷
  • DB2中有关事件存储和报告表的性能调节
  • Oracle进程导致CPU 100%具体解决步骤
  • Oracle中decode()函数的使用技巧
  • 问答方式轻松学习Oracle数据库中的Kill session
  • 通过JDBC数据库连接oracle数据库的十大技巧
  • EJB中使用Hibernate的方法以及常见问题
  • 做一个优秀设计师的标准
  • 2011年国内团购市场规模将达165亿
  • 优秀的程序员-态度篇
  • 优秀的程序员-学习篇
  • 优秀的程序员-开发流程篇
  • 优秀的程序员-调试篇
  • 优秀的程序员-团队协作篇
  • 现在学PHP的优势及就业前景
自动化测试
  • 功能测试常见方法有哪些
  • 自动化功能测试总结
  • 负载测试、压力测试和性能测试的区别
  • 软件测试工具Loadrunner教程
  • 功能测试和黑盒测试的关系
  • 如何实施自动化测试
  • 四款主流测试工具的测试流程
  • 软件自动化测试的三层测试
  • 软件测试工具QTP快捷键大全
  • 自动化测试工具loadrunner如何安装
  • 性能测试时用到的LoadRunner的主要功能
  • 手机方面软件测试相关知识
  • 软件测试中日常性能测试的流程
  • 软件自动化测试实例分析
  • LoadRunner的Apache的监控
  • LoadRunner 使用虚拟IP测试流程
  • 如何录制非标准 HTTP(S) 应用程序?
  • 对WEB性能测试中的验证码问题
  • LoadRunner调用外部DLL的方法
何时应进行自动化测试?
  • 我希望可以自动化实现尽可能多的测试。如果只跑一次测试会使我很不舒服。如果一个程序员改变了代码并引进了一个bug,怎么办?如果我没抓住那个缺陷,只是因为我在变化之后没有进行新的测试,怎么办?我将不感到可怕吗?所以我需要使用自动化测试工具来实现多次的重复测试工作。
     
      恩,是这样的,当我使用了自动化测试后也没有觉得舒服。测试花费了很长的时间,最终发现是我过度的使用了自动化测试。在我定义的测试里其实只有少量的测试需要自动化测试来帮助完成。多余的自动化测试在运行时是不会发现任何有价值的bug的,毫无意义!
     
      现在的问题是怎样做合理的自动化测试呢?当我从事测试这项工作,作为一个测试员我一般会为一些产品功能设计一系列的测试。对他们中的每个来说,我需要决定哪个测试应该使用自动化测试来进行。这篇文章描述了我在权衡测试中的看法。
     
      设想
     
      为了使我的论点清楚,我一定要避免一次去尝试描述所有可能的测试设想。如果我挑选一个很有用的设想,清楚的描述它,你作为一个读者会很好的了解。然后留下你把论点用于你具体的项目中。下面是我的设想:
     
      1. 首先,你应该拥有一个固定的自动化的支持。即,自动化工具是可用的。你可以不是一位专家,但是你必须知道怎样使用他们。写好配置文件。我设想你使用已有的工具进行工作,不会去使用新的工具,将一些简单的功能放到配置文件中,或者了解更多的测试自动化。问题是:凭你现有的这些可以证明你的自动化测试一定是正确地吗?现在给你这个答案还为时过早。
     
      在其他情况下,你可能赞同在一个工程后期增加自动化测试。在本文中没有对到好与不好做辩论,但通过上下文,你会知道自动化测试的价值所在。
     
      2. 这里只有两种可能性:完全的自动化测试,没有一点的人为操作;全手工进行的自动化测试,使用一次测试后就该扔掉了。这是一个事务上的两个极端。你可以自动化测试那些组织起来很麻烦的部分,但是其余留下的部分做手工。你可能有足够用的很仔细的文献证明能容易再跑一次手动测试。当你深刻理解了从一个极端到另一个极端的时候,你将会清楚的认识到在一个连续的统一体上特殊的测试点应该在哪里。
     
      3. 自动化测试和手工测试是似是而非的。当然也不是总是这种情况。例如,负载测试经常需要创造大量的使用者的同时操作的情况。如果需要300个测试员同时使用一个产品,很明显是很低效的。所以负载测试需要被自动化。
     
      4. 通过外部接口所做的测试(“黑箱测试”)。相同的analysis applies在代码级测试——在文章的后面会给出一个简短的例子——但是我将不描述全部细节。
     
      5. 没有必要必须什么情况都使用自动化测试。经验告诉我们在测试中需要把自动化测试和手工测试完美的结合。
     
      6. 首先你需要设计好测试然后决定它是否需要被自动化执行。实际上,自动化的需要对设计的影响是很普遍的。这让人很伤心,因为有些时候测试会被减弱只是因为使用了自动化。但是,如果你理解了自动化测试并正确地使用它,它可以给程序带来无害的调整甚至改进。
     
      7. 你有一定量时间完成你的测试。你应该尽力在规定时间内做更好的测试。在测试开始时,会在是否要测试不那么普通的情况和需要的时间上有一些争论。
     
      Overview
     
      我的解决过程用到了这些问题。
     
      1. 如果自动化执行一次测试需要的时间多于其做简单的手工测试的时间,会多多少时间?
      2. 一个自动化测试过程有一个生命周期,在其生存期它必须赔偿那额外的成本。迟早这次试验可能死吗?什么事件很可能结束它?
      3. 在它的生存期内,它测试出额外bug的可能性(是否在测试的第一时间内发现了bug)?怎样平衡这些不可预测的问题和代价之间的关系?
     
      如果这些问题没有被彻底的解决,其他小的问题就没有平衡可言。
     
      第3个问题是必要的,这个我将在大多数细节里继续探索。令人遗憾,一个好的答案需要对一个产品有更好的理解,我将解释应该怎样去把握一个准确的理解。
     
      使用自动化测试会失去什么?
     
      通常创造一个自动化测试往往要比手工的进行一次测试所要花费的时间多。(注释一)而费用上的微小的变化取决于这个产品和它的自动化设计。
     
      如果产品需要经过一个GUI(图形用户接口)被测试,那么你的自动化测试计划手稿中就需要准备驱动GUI接口的部分(本质上要有简单的计划),在很多时候一个自动化测试其花费会和手工测试差不多。
     
      如果你使用GUI capture/replay工具来记录产品内部接口间的交互并通过这些构建一个脚本的话,自动化测试相对来说是便宜的。但是,当因为错误导致需要重头安排自动化测试的时候,当需要组织整理测试的一些文档记录的时候,当测试进程陷入到bug中并且不断恶化的时候,等等这些,自动化测试就不像人工测试那样的廉宜。这些小细节下引起的成本的追加往往会不容易使人们注意它。
     
      如果你现在正在对一个编译器进行测试,那么使用自动化测试的成本就会比使用手工的要多一些,应为大部分的时间会为编译器写测试计划,来使编译器根据计划进行编译。这些计划无论会不会被重复使用都的编写。而往往这些计划都不会被重复使用。
     
      如果你的测试环境对使用自动化测试非常适合,而使用自动化测试的花费只比手工测试多的10%的话。(我认为这种情况很罕见。)这意味着,一旦你自动化实行了十次测试,做一次手工测试——对产品做一次独特的测试——这在用户提出要求前是不可能实行的。如果自动化测试的花费是更大的,那十个自动化测试可以替代运行十个、二十个或者更多的手工测试的话,应该如何掌握和处理呢,我们会发现什么?
     
      所以,我们第一个测试自动化的问题应该是这样的:
     
      如果我对它进行自动化测试,我会失去手工测试中的什么?我会丢掉多少bug,自动化测试的严格性?
     
      依赖于你的设计,其答案是会变化的。假设你是一个电信系统的测试人员,在这里对其质量要求是很高的而且测试的预算会是非常充足的。你的答案可能是“如果我用自动化执行这个测试,我将或许会失去三个手工测试点。但是,我做好了非常漂亮的完整的测试设计工作,我清楚的认识到那些额外的测试只会对现有的测试产生一些价值不高的变化。严格的说,他们应该分别的执行,因为我真的怀疑他们也许会发现新的严重的bug。”对你来说,自动化测试的价值是很低的。
     
      或者你正在测试一个产品需求和代码在最近几个月内在不停变化的工程的1.0版本。你的答案可能是“嘿!我没有时间去尝试为每一个明显的变化都重新做一次测试。这种情况下,我将会使用自动化来进行测试,同时我要保证其发现新的严重的bug的机会降到最低。”对你来说,自动化测试的价值是很高的。
     
      这是我衡量自动化测试价值的标准——可以第一时间或预先发现bug——这看上去似乎有些古怪。人们通常是用做这项工作所花费的时间来衡量自动化测试的代价的。我之所以使用这样一个衡量标准是因为自动化测试的目的是在下一次运行中能够发现更多的bug。发现bug的数目体现了自动化测试的价值,因此衡量自动化测试价值的标准也因该统一到这个上面来。(注释2)
     
      (注释1:有一些例外。例如,或许测试可以被制成模板。用一个工具可以通过处理这些模板中的表单来驱动产品的测试。而向模版表格中填入数据做自动化测试要比做手工测试快的多。看看[Pettichord96]和[Kaner97]的风格,如果用手工测试的花费会很大,我们就不会去牵扯它。但是需要小心:人们往往会低估自动化测试的花费。举个例子来说,将需要输入的数据填写到表单中会是一件非常easy的事,但是自动化测试的结果的验证却会是一件花费很大的事情。感谢Dave Gelperin在这个问题上给我的提示。)
     
      (注释2:在我和Cem Kaner的谈话中,第一次让我感到应该这样衡量自动化测试的价值。Noel Nyman指出这是约翰 Daly规则的一个特别的情形,就像你总是问题:“我在做测试的时候还有哪些bug没有发现?”)
     
      在预算上需要注意的地方
     
      我想让你尽可能的准确估计在你的自动化测试中平均会出现的bug数是多少,并将结果告诉我。你的答案不应该是“0.25”或是“0.25±0.024”。你的答案应该象这样“我会努力减少bug数的出现”或者“我的bug决不会再次出现”。
     
      稍后,你会被要求估计一个测试的生命周期(生存时间)。这个答案应该是这个样子的:"不会超过软件的发布时间" 或者 "a long time" than "34.6 weeks".
     
      然后,你会被要求估计在测试生命周期内可以找到多少个bug?答案依然是模糊的。
     
      最后,你会被要求对自动化测试和手工测试模糊估计的结果做一个比较并做一个结论。
     
      这样做有用吗?
     
      回答是肯定的。当你考虑选择谁的时候,需要做出这样的比较——也许不是在表面上做的——尽管是一些少的比较模糊的数据。我的经验是快速的回答这些问题希望可以引导一次优秀的测试,不去管答案是否精确。我在这里倾向于不需要精确的去回答这些问题,但是有用的问题和容易被误解的问题必须要做精确的回答,不要给别人带来误导。
     
      How Long Do Automated Tests Survive?(一次自动化测试的生命期会有多久?)
     
      当代码做了改动之后,自动化测试显示出它的价值所在。除了一些极少数类型的测试以外,在代码未作任何改动之前去做重复测试是一个浪费时间而且没有任何效果的做法:它会找出一些bug,但和你第一次做测试所发现的是一样的。(例外,像所用时间测试和压力测试可以概略的用同一中方式来分析。因为简单我忽略了它们。(I omit them for simplicity.))
     
      但是一个测试不会永远的持续下去。一些观点指出,产品上所做的变动很可能破坏一个测试。这个被破坏的测试将不得不做出修改或是被丢弃。我有一个很合理的近似值是这样的,我们去做一个测试的修改和抛弃已有的测试而重新编写一个新的测试的价值是同样的(注释3)。但是无论在变化后你做什么补救,如果修改和重新编写都不能达到要求的话,我认为放弃它而使用手工测试会比较好一些。
     
      简而言之,测试的有用寿命看起来像是这一样:
     
      当决定是否做自动化测试的时候,你必须估计出存在多少会影响测试的代码。如果你的答案是“不多”,那么自动化测试在发现bug上的表现会特别的出色。
     
      你需要一些背景知识来估计一个测试的寿命。你还需要了解一些代码影响测试的途径。在这里我们从一个特别简单的图表开始:
     
      (注释3:如果你使用录制工具能够将一次测试重放,那样的价值将会比在开始测试时记录其预期结果要有价值的多。花一些时间和精力在这个上面是在一次测试中是很有必要的。如果你要修改测试脚本,你需要正确地理解这个脚本,修改它测试它,确定你没有可能揭露的所有问题。你会发现新的测试脚本不可能完成老脚本能做的所有功能,所以可以将一个修改测试保留新旧两个测试脚本。如果你的testing effort已经确定下来,那么去修改一个测试要比从头开始写一个测试要好的多。这些将会不影响你在纸上做的工作;那样做会减少自动化测试所需要的花费。这一切的前提是你要清楚的认识和把握一次修复所需要的代价,人们往往会把代价估计不足。)
     
      假设你的工作是要写一组测试来检测用户是否输入了正确的电话号码,那么你就需要检查是否是输入了有效地阿拉伯数字而非其它字符等等。如果你清楚其中的代码(据我了解很少人会这样)你可以设计一个规划列表将校验电话号码的代码使用高亮显示做出标记。通常称它为 the code under test。这部分代码可以更加完善你的测试任务。
     
      在大多数时候,你不可能有机会直接运用the code under test。例如:你不可能直接得到确认电话号码的那部分代码,因为它通常会是一个用户的一部分属性,就需要通过用户接口来测试,将与其关联的那部分代码组织起来,使这部分转变到内部程序的数据,并会按照常规将这部分数据表现出来。当然,你也不能直接对表现出来的数据进行检测,因为转变会通过其他的代码来将其转变成在用户界面可见的最后的数据(就像非法的数据会转换成错误信息)。我称这些代码为intervening code——介于测试本身和code under test之间的代码。
     
      Changes to the intervening code(对介入其间的代码进行变化)
     
      介入其间的代码是导致测试死亡的主要因素。而且用户图形界面接口较上文提到的那个接口和一些硬件驱动接口相比更是这个样子。例如:假设用户接口要求你输入电话号码,但是现在变化为要求提供一个电话按键区的视觉表现。这时你要使用鼠标敲击号码模拟使用真实的电话。(这是个非常愚蠢的主意,但是这怪异的事情已经发生了。)尽管接口传给了code under test一个正确的值,但是用户界面的变化很可能破坏一次自动化测试,是因为很可能使用者再没有地方输入电话号码了。
     
      就像另外的一个例子,一个输入的错误用户界面会用其它的方法来告诉用户。它可能会刷新主窗体使其显示红色同时发出特殊的声音来代替弹出的提示信息来告知你不能完成这次操作。但是,如果你的测试是通过测试是不是弹出提示信息来判定的,那么将视这种正常的运行为一个bug。很显然这个测试就没有效果了。
     
      "Off the shelf "测试自动化工具能做避免测试死亡的有限制的工作。例如:大多数的GUI自动化测试工具都可以忽视文本框大小、位置和颜色的改变。从而把握像上面两段所提到的那些大的改变,但是需要事先定制。这需要在你的工程中有一些人去创建test libraries。这样就要求你,一个测试人员,在编写好测试的特殊术语,尽可能多的忽略用户接口的细节。例如,你的自动化测试可能包含这样一行定制的信息:try 217-555-1212 try是test library程序,它的作用是将电话号码翻译成接口可以知道的术语。如果用户界面接受在输入框中输入字符,try会在其中输入电话号码。如果需要通过显示在屏幕上的特定图形区域键入电话号码时,try也会做到。
     
      test library 可以有效地将那些不相关信息过滤掉。这样我们就可以详细的准确的测试那些与功能相关的数据。在输入上,增加这些附加信息是intervening code所必须的。在输出上,它们将intervening code中的信息全部压缩到一个很重要的模块中,其中的信息实际上可以当作是Code Under Test的一个延伸。这种过滤可以用左图来描述:
     
      多数用户界面的变化不会需要对测试做更改,而只需要对test library做相应的修改。应为test Code要比library Code多的多,所以只修改library Code的代价会很低。
     
      但是,尽管我们有更好的补偿性的代码也不可能将测试从所有的变化中隔离出来。它仅仅是尽可能的去预期所有的事情。所以其中有很多可能性,将来很可能出现一些问题破坏你的测试。你必须问自己这样一个问题:
     
      在变化中Intervening Code会把测试保护到什么程度?
     
      你需要估计intervening Code的改变对测试造成影响的可能性。要保证用户界面永远的不会改变是一件不可能的事情,这就使你需要不停的改变自动化测试的脚本以保证测试可以自动的执行。(我不会相信界面冻结后永远不会变化,除非manager答应如果以后每做一个新的修改将会给我100美元)
     
      如果变化是可能的,你一定会被询问对你的test Library保护你的测试不受其影响正常执行有多大的信心。如果说test Library不能保护测试,那么起码它可以很容易的做出改动以适应变化。如果花费一个半小时的时间可以拯救300个测试,那么所做的一切是值得的。但是,小心:很多人往往低估了维护test Library的困难,特别是在变化后需要手工的对测试test Library进行反复的修改。不应该马上就放弃,抛弃所有的测试类和test Library,从头开始,因为很可能只需要简单的修改就可以完成需要的测试。
     
      如果你没有test Library——如果你正在使用自动化GUI测试工具来捕获和重放模式——你不要期待会有任何保护。一次对界面的修改会让你的大部分的测试“死亡”。往往不会有足够的时间来允许我们完成对发生变化的测试进行修改,我们不得不在少的花费和短的生命生存期之间做出选择。
     
      Changes to the code under test(改变测试下的代码)
     
      Intervening Code不是唯一可以变化的代码,code under test同样可以变化。特别的是,它可以改变使其完全不同的去做某件事。
     
      例如,假设几年前某个人写了一个关于点话号码的校验测试,为了检查那些不符合要求的电话号码,就像1-888-343-3533。在当时,没有888这样的电话号码,但是现在却存在这样的号码。这样就导致了测试拒绝888号码给出提示,尽管现在这个号码是合法的,但是测试脚本会按照先前的规则进行测试从而拒绝它。解决这件事情可能很简单也可能很复杂。如果你了解问题所在那么这件事是一件很容易的事情:只需要将“888”改为“889”。但是可能很困难对测试做足够的解释去了解测试电话号码整个的方法。或者你没有意识到“888”再现在来说是一个合法的号码,所以你会认为测试理所应当的测出这条Bug。测试在你使用一些假的“Bug”来骚扰开发人员之前是不会固定不变的。
     
      所以,在决定是否要进行自动化测试之前你同样需要问自己这样的几个问题:
     
      code under test 行为的稳定行如何?
     
      注意强调的“稳定性”——只要他们保持外部可试行为相同代码的代码就OK!
     
      不同类型的产品,不同类型的code under test有不同的稳定性。电话号码实际上还是相当稳定的。再如一个银行帐目管理系统可以说是一个相当稳定的系统,如果每次存100元需要收取30元的手续费那么记录到帐的就是130元,这种关系是稳定的(除非银行改变了收费的标准)。而用户的界界面是相当的不稳定的一个因素。
     
      增加行为往往是无害的。例如,可能有这样一个检查,测试从一个帐户撤回 $100 由于 $30 生产错误导致操作失败但是帐户余款方面的没有改变。但是,现在测试被重写,增加了一个新的特性:顾客可以根据需要确定是否需要“自动透支保护”功能,它允许用户提取多余他帐户内存在的钱数。这种变化不会破坏现有的测试,只要默认的帐户测试保持原来的行为。(当然,新的测试必须依*新的行为来运行。)
     
      我们的立足点在哪里呢?
     
      现在我们知道了自动化测试应该跳远的障碍:必须保证自动化测试的价值要大于采用手工测试的价值。我们需要估计一个测试的生命周期,它可以有机会创造出价值的时间段。现在,我们需要询问一下它可以创造出价值的实际可能性。我们可以期待它能发现什么样的Bug?
  • 成都川软信息技术有限公司
  • 地址:成都市清江东路1号温哥华广场15楼     电话:028-87777180
  • (蜀)ICP备10002048号
  • 咨询1线
  • 咨询2线
  • 咨询3线
  • 咨询4线
  • 咨询5线