自动化测试:软件Software开发全过程检测及测试自动化





  首先谈谈软件Software测试这可以说是个非常令人捉摸不定领域“应该怎样对我们产品进行测试?”和“怎样才算对产品进行了足够测试?”等问题对于区别企业区别类产品、同企业区别类产品、或区别企业类产品实际操作上都会有很大区别

  SEISW-CMM在它成熟度第 3级“软件Software产品工程”关键过程域中把软件Software开发周期中区别阶段测试作为实施活动中关键实战(在SW-CMM版本2.0 讨论过程中曾经有过提议在成熟度第 2级设立个关键过程域“软件Software测试管理”但在版本2.0 讨论稿C 中并没有这样做从这里我们也可以看出SW-CMM本身也是个人为地制定“软件Software”)

  般地基于开发周期中区别阶段对区别对象所进行测试可划分为:

  单元测试(unit test ):

  由编程开发人员自行计划和完成针对单个或相关联单元测试

  组装测试(inegration test ):

  计划于设计阶段由开发人员和测试人员合作完成针对结合起来区别单元以及它们接口测试

  系统测试(system test ):(可认为包括“可用性和图形用户界面测试”)

  测试整个系统以证实它满足要求所规定功能、质量和性能等方面特性

  回归测试(regression test ):

  用于验证改变了系统或其组件仍然保持应有特性

  验收测试(acceptance test ):

  测试整个系统以保证其达到可以交付使用状态

  有关上述各阶段测试具体内容及实现思路方法读者可参考SW-CMM及有关软件Software工程和软件Software测试书籍千万不要停留在只参考SW-CMM该文件只讲述要做些什么而没有介绍怎样做同时所有资料中谈及内容及思路方法都是般化对于个特定软件Software测试必须经过使用者对通用测试思路方法改变及改进才能有效和达到高效率

  下面谈谈软件Software测试其他方面些问题

  个被人忽略软件Software测试目

  在谈到测试时许多作者都引用了Grenford J. Myers 就软件Software测试目提出以下观点:

  1.测试是执行过程在于发现

  2.个好测试用例在于能发现至今未发现

  3.个成功测试是发现了至今未发现测试

  这是种比较狭窄观点作为个清醒、纵观全局软件Software开发人员或管理者我们应当从软件Software过程角度来看测试

  个被人忽略软件Software测试目是:测试可以帮助发现当前开发工作所采用软件Software过程(也是个“软件Software”)缺陷以便进行改进(在以下讨论中”和“缺陷”基本上认为代表相同意义)



怎样理解这种说法呢

  首先测试并不仅仅是为了要找出分析产生原因和在开发个阶段产生具有非常重要意义

  通过分析原因我们可以立即在开发行动中对其进行改正同时这种分析也能帮助我们推理出 和所分析有关联潜在从而有针对性地设计出检测思路方法

  通过分析产生于哪个开发阶段、而又在哪个阶段被发现我们可以判断从产生到发现跨越了多少个开发阶段软件Software开发条重要原则是尽早发现和修正(当然更高条原则是尽量预防出现)能够超越本开发阶段而不被发现就指明了该开发阶段检测手段有缺陷从而也不难有针对性地制定出加强措施和办法这也就是软件Software过程改进项重要内容如果能做到在同开发阶段发现及修正该开发机构就可以预期有个高质量产品及个低成本、高效率软件Software过程

  有些项目主持人认为以尽快速度把测试的前所有开发阶段完成(实际并没有完成)早日开始测试以图达到快速和高质量(似乎有更长时间可用于测试)实际效果将会是俗语所说“欲速不达”从常识就可以知道花开发时间去继续扩大发展前面阶段引入得出只能是更大量需要耗时修正

  因此正确分析和利用测试结果我们可以非常有效地进行软件Software过程改进

  软件Software开发全过程检测力争本阶段修正

  从上面讨论我们很自然就能领会到软件Software发现绝不能等到测试才开始(按常规最早测试就是编码后单元测试)因此笔者提出个软件Software工程守则:软件Software开发全过程检测力争本阶段修正单元测试是在软件Software开发“实现阶段”才开始在此的前“可行性研究和计划阶段”“需求分析阶段”“概要设计阶段”和“详细设计阶段”都必须有非常明确切实手段和措施对开发结果进行检验以保证阶段正确完成

  怎样判断个软件Software过程优劣怎样进行软件Software过程改进都可以在这个守则指导下进行这个守则是简单明确但因企业背景、条件区别开发环境条件区别项目产品区别实际软件Software过程实现思路方法就会变化无穷考虑实现这个原则思路方法时候可以尽量多参考各种理论及经验但在选择制定本企业开发实战中使用软件Software过程时就必须处处根据是否能给自身项目带来好处以及自身条件进行考虑千万不要仅仅为了满足某个“标准”提法而做些无实际意义工作要尽量避免烦琐争取做到简单、有条理和有最大效果

  软件Software测试自动化

  软件Software测试工作量很大(据统计会用到40% 开发时间;些可靠性要求非常高软件Software测试时间甚至占到总开发时间60% )但测试却是在整个软件Software过程中极有可能应用计算机进行自动化工作原因是测试许多操作是重复性、非智力创造性、需求细致注意力工作计算机就最适合于代替人类去完成这些任务企业在这方面投资会对整个开发工作质量、成本、和周期带来非常明显效果

  些适于考虑进行自动化测试操作为:

  1.测试个案生成(包括测试输入标准输出测试操作指令等)

  2.测试执行写控制(包括单机和网络多机分布运行;夜间及假日运行测试个案控制;测试对象、范围、版本控制等)

  3.测试结果和标准输出对比



  4.不吻合测试结果分析、记录、分类、和通报

  5.总测试状况统计报表产生

  测试自动化和软件Software配置管理是密不可分和测试有关资源都应在配置管理中进行统计划考虑另外测试工具采用也是个提高质量关键有些专用测试工具能帮助发现些用任何测试个案都难以触及

Tags:  自动化测试框架 什么是自动化测试 自动化测试工具 自动化测试

延伸阅读

最新评论

发表评论