- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
由谁测试-read
Scripting Web Tests July 2005 第九次广州软件测试交流会 单元测试经验分享 王 彤 内容介绍 从经历谈单元测试的意义 如何测试? 由谁测试? 难于实施的原因及对策 测试工具开发 测试用例设计 提高测试效果效率的方法 从经历谈单元测试的意义 做与不做,反差强烈 保证局部代码质量 改良代码整体结构 回归测试降低后期测试、维护升级成本 回归测试适应频繁变化的需求 使开发过程可控 如何测试? 单元是什么? 错误分类 测试方法分类 测试方法选择 人工动态测试简述 单元是什么? 类? (太复杂) 函数?(简单实用) 测试方法 从简单示例看方法选择 int Add(int a, int b){ return a-b;}; 自动方法 (无效) 人工动态方法(输入两个1,判断输出是否为2 ) 人工动态测试 设定初始状态 (输入) 执行程序 判断结果是否正确?(输出) 人工设定用例的输入和输出 其他工作可以自动化 小结 以函数为“单元” 分为有特征错误和无特征错误,后者占大多数 测试方法有:人工静态 人工动态 自动静态 自动动态 以人工动态测试为主要方法 由谁测试? 开发还是测试?根据成本来决定 成本对比 存在问题及解决办法 由测试实施的话…… 成本,在三倍以上? 两个条件:详细设计文档 足够的具有编码能力的测试员 可能的额外代价:耽误对系统测试、性能测试的准备工作 由开发实施的话…… 影响开发进度?(由测试做更慢) 测不出问题?(否,存在完整性问题) 解决完整性问题的方法:覆盖率检查测试部门核查 最佳方式:边开发边测试 (无需重复理解代码,测试促进开发) 测试部门的责任 能否实施,测试部门是关键 推动 培训 工具开发 完整性核查 小结 应由开发部门实施 解决完整性问题(覆盖率检查)(测试部门人工检查) 测试部门是关键(推动、培训、工具开发、复核) 难于实施的原因及对策 难于实施的原因 对策 也许是这样…… 程序员工作的主题是……解决问题 思维周期 岂干扰、中断思维 学习与实践有何不同? 对策? 测试行为分解 小结 对中断/干扰编程思维的本能抵制? 对策1:自动生成测试代码 对策2:避免编写桩代码 对策3:用简单方法设计测试用例 简单高效,即使不对症,也大有补益 测试工具开发 基本功能 测试代码编写及生成 几个要点 与其他工具比较 测试工具基本功能 自动生成测试代码 开发成本不高 应用效益显著(节约时间 保持思维延续性) 测试代码---产品类 class CMyClass {public:? ? int Add(int i, int j); void Grow(int years) ? ? CMyClass();? ? virtual ~CMyClass();private:? ? int mAge;? ?? ?//年龄? ? CString mPhase; //年龄阶段}; 测试代码---测试类 class CMyClassTester { CMyClass* pObj; //被测试类的对象指针 CaseBegin(); //用例初始化 CaseEnd(); //用例结束 ClassTest(); //执行本类中的所有测试函数 //各个测试函数加到此后 }; 测试代码---测试函数 void CMyClassTester::Add_int_int() {? ? //第一个测试用例? ? {CaseBegin(); ? ?? ?? ?? ??? //1? ? int i = 0;? ?? ?? ?? ?? ? //2? ? int j = 0;? ?? ?? ?? ?? ? //3? ? int ret = pObj-Add(i, j); //4? ? TestAssert(ret == 0);? ?? ?? //5? ? CaseEnd(); } ? ?? ?? ?? ?? ? //6 } 生成这样子的代码就OK了 void CMyClassTester::Add_int_int() {? ? //第一个测试用例? ? {CaseBegin(); ? ?? ?? ?? ??? ? ? //输入区? ? int ret = pObj-Add(i, j); ? ? //输出区? ? CaseEnd(); } ? ?? ?? ?? ?? ? } 更进一步…… void CMyClass
您可能关注的文档
- 高标准基本农田建设示范-河南土地整理中心.ppt
- 即比较新法与旧法.ppt
- 篇名美丽的邂逅当西方遇上红茶作者丁翎育台北立中仑高中.pdf
- 一种成像测量靶面同心圆的自适应检测算法read.pdf
- 电子档案管理-汉中档案局.ppt
- 采用资源划分的云环境下hadoop资源许可调度方法-中国云计算.pdf
- 教改教案-三重积分6课时.doc
- 教育部台南县联络处95学年军训工作执行计画-教育部台南联络.ppt
- 是德科技测量解决方案之nfc器件测试-keysight.pdf
- 年学年下学期赴大陆交换学生心得报告.pdf
- 铜镉渣常温常压氧化氨浸工艺研究①.pdf
- 以概念萃取为基础之文件分群aconceptextraction-交通大学.pdf
- 完全实时控制冷却系统-frigel.pdf
- 基于子区域最佳运动矢量有哪些信誉好的足球投注网站的umhexagons改进-计算机系统应用.pdf
- 基于ctm的干道协调控制相位差优化方法研究-重庆交通大学.pdf
- 场营销理论与实训.ppt
- 考虑需求变化状况及增设临停区之公共自行车共享系统租借站分群与.pdf
- 结合动态分群人造蜂群演算法之自动化分群系统-gebrc.pdf
- 招标文件-广东今科道同科技股份有限公司.doc
- 运用分群数扰动策略运用分群数扰动策略之差分自动分群演算法.pdf
文档评论(0)