1、测试测试Web应用程序应用程序1内容nC/S系统测试nC/S系统测试方法nC/S系统测试的步骤nC/S系统测试工具测试测试Web应用程序应用程序2C/S系统测试n什么是C/S系统计算机体系结构的发展历史n主机系统nPC机器nC/S系统(客户机/服务器系统)n多层结构、B/S系统功能/计算、数据的演化n集中-分离-分布测试测试Web应用程序应用程序3C/S系统测试n什么是C/S系统结构:广义的C/S系统n数据一般使用数据库管理,放在Server端n表示层或者用户界面一般使用GUI或者Web技术,放在Client端n业务逻辑一般分布在Server端和Client端nClient与Server一般是
2、独立的机器,使用LAN或者Internet联接n多个操作系统平台,多个Client,一个或者多个Server测试测试Web应用程序应用程序4C/S系统测试n什么是C/S系统优势n提升系统性能,减少用户等待时间集中、共享计算能力集中、共享数据减少网络负载支持多用户并发访问n提升系统灵活性扩展容易修改灵活具备容错能力和恢复能力1.易于扩展计算能力和数据分布能力2.硬件扩展3.支持异构系统1.单独升级1.数据可以分布并冗余2.计算可以分布并冗余3.机器硬件可以分布并冗余4.异构系统测试测试Web应用程序应用程序5C/S系统测试n什么是C/S系统开发技术n常用Client端开发工具PB/VB/Delp
3、hi,也有VC/Developer一般使用组件技术,并具备强大的数据库联接能力事件驱动,可视化编程,对象编程,RAD开发方法n常用Server端数据库关系型数据库:Oracle/DB2/Sybase/SQL Server支持SQL和ODBC支持事务处理、安全机制、并发访问、数据分布测试测试Web应用程序应用程序6C/S系统测试nC/S系统测试与传统测试的比较目标一致n为了尽早发现尽可能多的错误对“错误”的理解的一个误区:易用性和用户界面美观是不重要的在使用用户界面上的时间和频度方面,用户比开发人员或者测试人员要多得多;在技术难度不大的地方或者表面上不重要没有精心设计,那么这些错误对用户的影响会
4、越来越大,直至最终掩盖了应用程序的优势。例如:消费类产品的精心设计n为产品和过程度量提供数据测试测试Web应用程序应用程序7C/S系统测试nC/S系统测试与传统测试的比较C/S系统的测试难度更大n1、计算与数据分布,导致并发和安全问题,使场景复杂n2、使用事件驱动和组件技术设计的GUI界面使得测试路径趋近无穷,测试场景复杂测试测试Web应用程序应用程序8C/S系统测试nC/S系统测试与传统测试的比较C/S系统的测试难度更大n3、使用对象编程技术使得对象之间的依赖和继承关系复杂,错误修改引起的连锁反应增大n4、使用对象和组件技术使得系统对第三方组件/类库依赖增强,在质量和技术上存在风险测试测试W
5、eb应用程序应用程序9C/S系统测试nC/S系统测试与传统测试的比较C/S系统的测试难度更大n5、文档问题系统本身复杂,导致文档内容复杂使用了RAD开发方式,导致文档不详细多系统,导致文档术语难以统一测试测试Web应用程序应用程序10C/S系统测试nC/S系统测试与传统测试的比较C/S系统的测试难度更大n6、多系统、多语言使得错误的隐蔽性和数量增大,测试环境的搭建更加困难,测试人员的技术要求更加全面普通文件 v.s.数据库系统难于直接控制数据:数据独立并通过接口访问;内置安全机制和应用层安全机制混合在一起单机 v.s.网络硬件之间和软件之间的通讯通过网络和上面的协议多硬件、多软件、多数据库、多
6、协议标准、多语言失效、不匹配可能性增大多开发人员协调一致难度比较大测试测试Web应用程序应用程序11C/S系统测试nC/S系统测试与传统测试的比较C/S系统的测试难度更大n7、高度依赖于第三方系统第三方产品的稳定性不能保证多厂商带来的复杂性和管理问题厂商之间的版本影响(DLL Hell)厂商之间的版本更新组合情况复杂PM是一个总承包商,厂商之间踢皮球测试测试Web应用程序应用程序12C/S系统测试nC/S系统测试与传统测试的比较C/S系统的测试难度更大n8、测试历史数据和针对性的测试方法匮乏可供参照的样板少系统多样,可重复性比较小技术比较新,可参考样板少,有经验的组织和个人比较少测试测试Web
7、应用程序应用程序13内容nC/S系统测试nC/S系统测试方法nC/S系统测试的步骤nC/S系统测试工具测试测试Web应用程序应用程序14C/S系统测试nC/S系统测试的具体目标1、检查系统是否达到公布的功能说明n功能范围要在项目开始之前确定,中途如果修改,重新修改项目计划和预算n功能说明需要逐步完善,尽可能地将用户的期望写入公布的功能说明JAD方式保证用户参与设计和确认,并降低最后验收的风险RAD方式帮助用户表达和反馈对于系统的意见n功能的改变尽早提出越到开发后期,功能改变越要谨慎,代价也越大测试测试Web应用程序应用程序15C/S系统测试nC/S系统测试的具体目标2、检查是否满足性能要求n用
8、户永远比开发人员更加关注性能用户要成年累月地面对性能的困扰n不要试图与用户玩文字游戏例如:某个窗口在1秒内可用(实际上,只有窗口10%内容在1秒内显示,其他内容还要等1分钟)用户是甲方用户可能当时无话可说,但是满意度下降,信任度下降,容忍度下降用户一定会在其他的地方找出本来可以忽略的毛病,并揪住不放n如果用户忘记提到某一条性能(实际上是开发人员“忘记”提问),开发人员不要认为这是一件好事情,最后会造成更大的麻烦用户新里面一定会有没有说出来的性能期望用户是甲方测试测试Web应用程序应用程序16C/S系统测试nC/S系统测试的具体目标3、检查是否能够处理要求的负载n除非做充分的性能测试、负载测试、
9、压力测试和疲劳测试,否则没有人能够预测系统的负载到底如何n小负载的运行性能和功能表现与大负载下的性能和功能表现经常不同资源限制多用户并发、长时间、大量访问数据量巨大测试测试Web应用程序应用程序17C/S系统测试nC/S系统测试的具体目标4、检查在要求的各种软硬件平台上是否有错n测试试验室各种软硬件设备、技术全面的测试人员n不同硬件、软件、网络平台n每个客户端可能的不同软件环境安装其他工作需要使用的软件版本不同Office、eMail测试测试Web应用程序应用程序18C/S系统测试nC/S系统测试的原则原则:全面n不要假设没有问题,必须测试之后才能说没有问题测试测试Web应用程序应用程序19C
10、/S系统测试nC/S系统测试的方法常见错误n测试计划和测试方案需要关注的地方常见的测试点n设计测试用例需要关注的地方测试测试Web应用程序应用程序20C/S系统测试nC/S系统测试的常见错误1、功能性错误n只要列在需求中的功能在最终系统中没有达到,就属于功能性错误包括因为过程中的指导发生了信息模糊或者矛盾n方法:依照系统需求逐项测试确认测试测试Web应用程序应用程序21C/S系统测试nC/S系统测试的常见错误2、系统错误n原因存在于开发的C/S系统之外,对C/S系统的运行产生影响的错误例如:操作系统错误、中间件错误、DLL错误、驱动程序错误、硬件错误、网络设备错误难点:隔离并确认错误发生的地点
11、导致供应商踢皮球;即使承认,解决问题也需要时间,并且会给系统带来新的不稳定方法:1、尽量在开始设计的时候考虑周全,并考察供应商资格和服务2、绕过这个问题3、请厂商修改系统4、更换厂商测试测试Web应用程序应用程序22C/S系统测试nC/S系统测试的常见错误3、通讯错误n存在于C/S系统之外的,各个层之间通讯问题产生的错误包括硬件,包括同层例如网卡坏了电缆接触不良通讯软件或者驱动程序自身错误用户权限不够地址问题路由器等通讯设备损坏私有协议错误n是一种特殊的系统错误,分离出来的原因通讯非常关键通讯错误非常普遍测试测试Web应用程序应用程序23C/S系统测试nC/S系统测试的常见错误4、逻辑错误n设
12、计错误,考虑不全面或者理解错误n与传统测试中遇到的问题一样测试测试Web应用程序应用程序24C/S系统测试nC/S系统测试的常见错误5、用户界面错误n用户界面不一致同一个界面之内;同一个模块/产品之内;同一个系统之内n本地化问题不支持本地化、部分本地化、本地化错误n信息模糊或者矛盾n信息显示不全n操作路径复杂、模糊测试测试Web应用程序应用程序25C/S系统测试nC/S系统测试的常见错误6、数据错误nSQL简单/强大,但是技巧多/风险大,直接涉及数据更改开发人员培训SQL,并设置编码规范互相检查代码小组内设置SQL专家把关nSQL中的检查点是否检查了查询的返回错误值,包括Select仔细检查使
13、用Delete和Update的地方仔细检查存储过程和触发器聚合函数的使用陷阱:不单独列出每一个记录其它:如年龄的计算方法n数据库本身的检查点Schema命名机制:变量作用域安全性策略的设置和检查多个数据库使用中,日期表示的不同特点测试测试Web应用程序应用程序26C/S系统测试nC/S系统测试的常见错误7、编码错误n编程错误,坏的编程习惯变量初始化、变量名字类似/错误使用与传统测试中遇到的问题一样n数据类型和移植问题多系统一致性计算能力迁移测试测试Web应用程序应用程序27C/S系统测试nC/S系统测试的常见错误8、测试错误n软件错误模型偏差开发语言和平台的更换开发团队/开发规范的变化软件业务
14、领域的变化n测试策略问题杀虫剂怪事虫子聚窝虫子装死、变异测试测试Web应用程序应用程序28C/S系统测试nC/S系统测试的常见测试点1、输入合法性检查n必要性小概率错误一定会发生一个小概率错误与一个大概率或者严重错误往往是同一个产生原因n方法代码中的错误处理分支数据库中的约束、存储过程/触发器测试测试Web应用程序应用程序29C/S系统测试nC/S系统测试的常见测试点2、路径测试n类似于白盒测试技术中的路径概念nC/S系统的完全路径测试是不现实的使用基本测试路径方法测试测试Web应用程序应用程序30C/S系统测试nC/S系统测试的常见测试点3、事务测试n事务设计角度:一个独立的工作单位数据库角
15、度:一个全部执行/不执行的SQL集合用户角度:一个完全成功/取消的操作n容易出错的事务处理在一个表中修改记录,但是同时更新多个表;或者直接更新多个表影响到表关系的修改操作(比如:删除一个主键)n测试点(测试用例设计):输入合法的完整的记录,检查事务是否正确执行输入合法的完整的记录,在完成之前放弃操作,检查表没有被更改输入一个记录并故意漏掉一个数据项,检查表没有被更改输入一个记录并故意有一个不合法数据项,检查表没有被更改输入一个记录并使它的引用不存在,检查表没有被更改事务中是否包含不确定的耗时操作,会导致并发失败、性能下降比如:等待用户输入测试测试Web应用程序应用程序31C/S系统测试nC/S
16、系统测试的常见测试点4、循环测试n路径测试测试测试Web应用程序应用程序32C/S系统测试nC/S系统测试的常见测试点5、边界值测试n取临界数据或者操作作为测试用例测试测试Web应用程序应用程序33C/S系统测试nC/S系统测试的常见测试点6、日期测试n润年计算、星期几计算n日期+/-数字、日期+/-日期n日期格式:01/12/99 vs 31/12/99n时区、时制测试测试Web应用程序应用程序34C/S系统测试nC/S系统测试的常见测试点7、导入导出测试n输出输出设备不正确、繁忙、没有空间等情况n导入/导出文件类型不匹配n导入文件损坏或者内容不正确n当字符集表示方法不同时,能否正确处理n数
17、据恢复机制尤其是系统升级的时候测试测试Web应用程序应用程序35C/S系统测试nC/S系统测试的常见测试点8、安全性测试n锁使诚实的人表现出诚实;防君子不防小人;道高一尺,魔高一丈在应用程序中,用户是否被正确所定在访问路径和访问窗口中在应用程序或者操作系统中,用户是否可能直接访问数据库文件在数据库管理中,用户是否被赋予了不适当的权限开发人员是否留了后门更多地依赖于代码审核和管理病毒检查平台或者第三方系统本身的安全问题系统的已公布缺陷是否处理是否打补丁了使用Tiger组:安全专家/黑客高手测试测试Web应用程序应用程序36C/S系统测试nC/S系统测试的常见测试点9、Login/Logoff测试
18、n是否正确记录登录和退出日志n对于多次登录失败的警告机制n口令强制修改措施的正确执行n每次显示上次登录记录n空闲终端退出注意空闲条件判断,如:屏幕保护程序n是否符合规定的License要求测试测试Web应用程序应用程序37C/S系统测试nC/S系统测试的常见测试点10、日志测试n是否正确记录日志内容n日志文件满、被删除、损坏、内容错误、访问权限错误的正确处理n日志文件的安全和访问权限测试测试Web应用程序应用程序38C/S系统测试nC/S系统测试的常见测试点1、输入合法性检查2、路径测试3、事务测试4、循环测试5、边界值测试6、日期测试7、导出测试8、安全性测试9、Login/Logoff测试
19、10、日志测试测试测试Web应用程序应用程序39内容nC/S系统测试nC/S系统测试方法nC/S系统测试的步骤nC/S系统测试工具测试测试Web应用程序应用程序40C/S系统测试的步骤n1、计划测试工作n2、测试设计和测试用例跟踪n3、缺陷报告和管理n4、效果评估测试测试Web应用程序应用程序41C/S系统测试的步骤n1、计划测试工作与传统测试相比,还要:n注意多系统、多厂商的协调n建立测试实验室,注意测试资源(尤其是软件/硬件资源)的配备和管理n使用尽可能多样的系统组合n关注性能测试尤其关注SQL只有20%的性能优化来自与数据库管理需要大量的数据SQL正确性需要小数据库,性能测试需要大数据库
20、测试测试Web应用程序应用程序42C/S系统测试的步骤n2、测试设计和测试用例跟踪与传统测试相比,还要:n注重8种错误类型和10个测试点n使用数据生成工具和性能测试工具测试测试Web应用程序应用程序43C/S系统测试的步骤n3、缺陷报告和管理与传统测试相比,还要:n注意记录当时的系统/网络状态n注意记录当时的数据库和本机状态n注意缺陷的分离、重现和优化测试测试Web应用程序应用程序44C/S系统测试的步骤n4、效果评估与传统测试相比,还要:n注意版本提交控制和配置管理测试测试Web应用程序应用程序45内容nC/S系统测试nC/S系统测试方法nC/S系统测试的步骤nC/S系统测试工具测试测试We
21、b应用程序应用程序46C/S系统测试工具nC/S系统测试工具多样性n用于早期测试与晚期测试n用于不同平台测试n用于不同测试内容n用于项目经理、QA人员、测试人员、开发人员n用于服务器和用于工作站测试测试Web应用程序应用程序47C/S系统测试工具nC/S系统测试工具主要功能n1、计划和管理包括项目管理、缺陷管理、测试用例管理、文档与流程管理n2、源代码控制甚至配置管理n3、调试器n4、面向对象的测试n5、测试数据库对象测试测试Web应用程序应用程序48C/S系统测试工具nC/S系统测试工具主要功能n6、测试向导n7、自动测试用例生成n8、数据/数据库生成器n9、标准测试用例包SQL语言通讯协议
22、n10、捕获、回放与比较无人照料的测试疲劳测试测试测试Web应用程序应用程序49C/S系统测试工具nC/S系统测试工具主要功能n11、模拟负载测试n12、模拟并发测试n13、监视程序n14、剖析测试n15、内存泄漏测试测试测试Web应用程序应用程序50C/S系统测试工具nC/S系统测试工具主要优点n1、测试流程和数据的标准化、规范化有助于测试强制性n2、与项目计划、开发计划集成n3、测试用例、缺陷报告、缺陷分析与测试计划集成n4、测试文档管理n5、缺陷跟踪和管理、测试评估测试测试Web应用程序应用程序51C/S系统测试工具nC/S系统测试工具主要优点n6、测试脚本和测试用例可以重复使用、重新编
23、辑n7、测试数据与测试过程/脚本分离n8、适合回归测试与压力测试、负载测试、疲劳测试n9、观察程序内部信息对象属性、方法内部数据变化测试测试Web应用程序应用程序52C/S系统测试工具nC/S系统测试工具主要缺点n1、费用风险购买费用学习和培训费用设计费用:包括脚本生成修改费用:尤其是版本功能或者结构变化技术风险:测试工具本身的错误n2、集成问题流程和方法论与具体项目的结合测试测试Web应用程序应用程序53C/S系统测试工具nC/S系统测试工具主要缺点n3、银弹风险没有银弹给管理者和项目组不切实际的期望尤其是管理者买了工具就能保证质量吗?n4、测试套件一般的同一个厂商工具套件之间联系非常紧密不
24、同厂商之间没有统一标准测试测试Web应用程序应用程序54C/S系统测试工具nC/S系统测试工具主要缺点n5、本地化问题缺乏中文版本文档、界面报告内容内部数据支持n6、平台多样性与具体软件类型相关与具体软件/硬件平台相关与开发语言/技术相关测试测试Web应用程序应用程序55C/S系统测试工具nC/S系统测试工具选择步骤n1、分析测试需求测试类型测试平台软件类型和开发技术测试人员素质n2、收集产品信息主要是厂商资料专业杂志同行讨论与参观测试测试Web应用程序应用程序56C/S系统测试工具nC/S系统测试工具选择步骤n3、选择产品费用购买、学习、实施、支持、升级市场资料多测试人员多公司背景和产品策略
25、n4、计划引入步骤测试测试Web应用程序应用程序57C/S系统测试工具nC/S系统测试工具选择步骤n5、准备好测试期望看到好处和坏处派出人为因素本地化问题缺乏中文版本文档、界面报告内容内部数据支持n6、逐步实施并评估效果测试测试Web应用程序应用程序58C/S系统测试工具nC/S系统测试工具国内常用类型n1、捕捉回放工具基于脚本n2、性能测试工具基于代理模拟n3、测试管理工具测试计划管理测试用例管理缺陷报告管理测试评估与度量、报告测试测试Web应用程序应用程序59C/S系统测试工具nC/S系统测试工具WinRunnern能做什么?与Director联接自动记录和回放n什么样子TSL界面对象探测功能界面对象编历两个记录模式(Sensitive analog)测试测试Web应用程序应用程序60C/S系统测试工具nC/S系统测试工具WinRunnern方法录制修改脚本并update回放结果比较n其它延迟与同步GUI/BMP/Text CheckPoint不同版本之间的比较使用数据独立驱动TSL语言测试测试Web应用程序应用程序61内容nC/S系统测试nC/S系统测试方法nC/S系统测试的步骤nC/S系统测试工具