1、软件评测,北京通和实益电信科学技术研究所有限公司 信息产业数据通信产品质量监督检验中心 威尔克实验室 彭博 pb_,中 心 简 介,北京通和实益电信科学技术研究所有限公司成立于2003年1月,同时成立威尔克实验室,公司所属的信息产业数据通信产品质量监督检验中心成立于1990年,归工业和信息化部管理。公司股东为数据所。 作为第三方检测机构,主要业务是为工业与信息化部业务主管部门提供技术支撑、执行电信产品的工信部进网检验、为国内外电信设备制造商、电信运营商、设备制造商、软件制造商等各行业用户提供各种第三方检测/验收/标准方案制定、网络安全防护评测和软件功能/效率/可靠性/易用性/可维护性评测等,产
2、品范围覆盖各类无线和有线电信设备、网络、标准、技术、业务和应用软件等。在测试行业和通信行业中具有非常高的知名度,尤其软件评测方面。 数据所成立于1972年11月2日,是我国最早从事数据通信技术研究及设备制造的专业研究所之一,现作为工信部电信科学技术研究院的所属单位,由国务院国有资产监督管理委员会管理。,CCSA标准,GB/T 2500.51-2010软件工程 软件产品质量要求与评价(SQuaRE) 商业现货(COTS)软件产品的质量要求和测试细则,软件质量与软件测试,软件质量是指软件的功能和性能满足用户需求和期望的程度,是软件的一种内在特性。软件测试则是通过技术、流程、工具、人员以及管理手段,
3、检测软件文档、软件中间产品和最终产品,查找和报告软件缺陷、错误以及隐患的技艺。通过跟踪缺陷、错误及隐患的修正过程,确保软件产品、中间产品和文档符合软件工程过程需求和用户的最终需求。,软件质量与软件测试,软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。,软件质量与软件测试,软件测试是改进软件组织管理过程、提高软件质量的必要途径。软件测试过程是提取软件测试过程中可计量的属性,在测试过程进行中以一定频度不断地采集这些属性的值,并采用一
4、些恰当的分析方法对得到的这些数据进行分析,从而量化地评定测试过程的能力和性能,提高测试过程的可视性,帮助软件组织管理以及改进软件测试过程。,软件质量与软件测试,随着软件应用的领域不断深入,设计的复杂程度逐步扩大,开发的周期不断缩短,质量的要求水涨船高,软件企业也面临着巨大挑战。因此,加强软件测试过程和技术,可以有效保证软件质量,这种观念正在被更多的软件企业人士理解、接受和实施,也是软件企业快速发展的必经之道。,软件缺陷,软件测试使用各种术语描述软件出现的问题,通用的术语如下: 软件错误(software error) 软件缺陷(software defect) 软件故障(software fa
5、ult) 软件失效(software failure) 软件失效的机理可描述为:软件错误软件缺陷软件故障软件失效,软件缺陷,1、软件错误:在可以预见的时期内,软件仍将由人来开发。在整个软件生存期的各个阶段,都贯穿者人的直接或间接的干预。然而,人难免犯错误,这必然给软件留下不良的痕迹。软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。可见,软件错误是一种人为过程,相对于软件本身,是一种外部行为。 2、软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差,如少一个逗号、多一语句等。其结果是软件运行于某一特定条件时出现软件故障,这时称软
6、件缺陷被激活。 3、软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。譬如,软件处于执行一个多余循环过程时,我们说软件出现故障。此时若无时当的措施(容错)加以及时处理,便产生软件失效。显然,软件故障是一种动态行为。 4、软件失效:软件失效是指软件运行时产生 的一种不希望或不可接受的外部行为结果。,软件缺陷,软件缺陷(Defect),常常又被叫做Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。 从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问
7、题; 从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。,软件缺陷,一旦发现软件缺陷,就要设法找到引起这个缺陷的原因,分析对产品质量的影响,然后确定软件缺陷的严重性和处理这个缺陷的优先级。各种缺陷所造成的后果是不一样的,有的仅仅是不方便,有的可能是灾难性的。一般问题越严重,其处理优先级就越高。,软件缺陷,对于缺陷的严重性,如果分为4级,则可以参考下面的方法确定:1 非常严重的缺陷,例如,软件的意外退出甚至操作系统崩溃,造成数据丢失。 2 较严重的缺陷,例如,软件的某个菜单不起作用或者产生错误的结果; 3 软件一般缺陷,例如,本地化软件的某些字符没有翻译或者翻译不准确; 4 软件界面的细
8、微缺陷,例如,某个控件没有对齐,某个标点符号丢失等; 对于缺陷的优先性,如果分为4级,则可以参考下面的方法确定:1 最高优先级,例如,软件的主要功能错误或者造成软件崩溃,数据丢失的缺陷。 2 较高优先级,例如,影响软件功能和性能的一般缺陷; 3 一般优先级,例如,本地化软件的某些字符没有翻译或者翻译不准确的缺陷; 4 低优先级,例如,对软件的质量影响非常轻微或出现几率很低的缺陷;,软件缺陷导致严重后果的典型案例,2009年2月份Google的Gmail故障 2009年2月份Google的Gmail故障,Gmail用户几小时不能访问邮箱,应该算是最近因软件故障而受到广泛关注的事件。据Google
9、后称,那次故障是因数据中心之间的负载均衡软件的Bug引发的。 1996年6月4日,阿丽亚娜5型运载火箭的首航,原计划将运送4颗太阳风观察卫星到预定轨道,但因软件引发的问题导致火箭在发射39秒后偏轨,从而激活了火箭的自我摧毁装置。阿丽亚娜5型火箭和其他卫星在瞬间灰飞烟灭。 后来查明的事故原因是:代码重用。阿5型的发射系统代码直接重用了阿4型的相应代码,而阿4型的飞行条件和阿5型的飞行条件截然不同。此次事故损失3.7亿美元。,软件缺陷导致严重后果的典型案例,2011 年温州7.23 动车事故 2011年7月23日20时30分05秒,甬温线浙江省温州市境内,由北京南站开往福州站的D301次列车与杭州
10、站开往福州南站的D3115次列车发生动车组列车追尾事故,造成40人死亡、172人受伤,中断行车32小时35分,直接经济损失19371.65万元。 上海铁路局局长安路生28日说,根据初步掌握的情况分析,“723”动车事故是由于温州南站信号设备在设计上存在严重缺陷,遭雷击发生故障后,导致本应显示为红灯的区间信号机错误显示为绿灯。,测试范围,功能测试 可靠性测试 易用性测试 效率测试 维护性测试 可移植性测试 流程测试 边界值测试 容错性测试 异常测试 文挡测试,启动停止测试 安装测试 界面测试 接口测试 配置测试 安全性和访问控制测试 性能测试 压力测试 兼容性测试 割接/升级测试 回归测试,测试
11、工具,一、自动化测试工具-QTPQTP工具是Quicktest Professional的简称,是HP公司发布的一款企业级自动化测试工具,使用QTP工具将功能测试中重复使用的测试用例自动化,可以大幅度提高回归测试效率,提高回归测试质量的目的。QTP进行功能测试的测试流程为 制定测试计划创建测试脚本增强测试脚本功能运行测试分析测试结果 大致五个步骤。,测试工具,QTP工具的优势为:1)QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件,如:.NET的,Java的,SAP的,Terminal Emulator的等等,支持 产品类型广泛。 2)QTP支持的脚本语言是VBScript,容易上手
12、。 3)QTP支持录制和回放的功能,尤其适用于web页面测试。 4)QTP采用录制回放的机制,脚本开发效率较高。,测试工具,二、测试用例管理工具-ALM(QC)ALM(QC)工具是Application Lifecycle Management的简称,是HP公司发布的一款企业级测试管理工具,使用ALM(QC)工具可以实现从测试需求、测试用例、测试执行到测试缺陷的全流程测试管理。尤其是在记录测试缺陷方面, ALM(QC)工具可以跟踪缺陷状态,并提供了丰富的报表,可以详细分析缺陷各种状态,例如缺陷密度,缺陷修复率,缺陷严重程度占比等。,测试工具,测试工具,ALM(QC)工具的优势为:1)提供统一的
13、平台,质量人员、开发人员和业务分析人员的分布式合作和交流 。 2)可以通过实时可见的测试覆盖率和关联的缺陷,来评估对业务需求的风险。 3)实现需求到需求、测试和缺陷的双向可追踪性。 4)提供了版本控制和基线管理功能。5)便于分布式团队协作,联合开发需求和测试。6)联系需求和缺陷,从而可以清晰表达缺陷,并实现缺陷自动通知相关人员。,测试工具,三、性能测试工具-LoadRunnerLoadRunner是一种预测系统行为和性能的工业标准级负载测试工具。它通过模拟实际用户操作来实施并发负载来对整个系统架构进行测试,来帮助更快的查找和发现问题。适合在性能测试和压力测试中使用。LoadRunner进行性测
14、试的测试流程分为创建测试脚本参数化测试场景 运行测试场景分析测试结果 大致三个步骤。,测试工具,LoadRunner工具的优势为 1)根据实际需求与用户操纵来创建Vuser(虚拟用户/模拟负载),并且对每个Vuser可以分配不同的脚本和负载生成器 2)支持多种协议脚本的录制,包括.NET、HTML、FTP、Java等 3)内含集成的实时监测器,可以实时显示性能数据(如响应时间)和其它系统组件包括application server,web server,网路设备和数据库等的实时性能 4)提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。,测试人员,测试项目负责人3名 测试工程师20名
15、 质量管理及监督人员3名 以上人员包括高级工程师5名、中级工程师17名、初级工程师4名,且均获得了工信部颁发的软件测试资质证书。,成功的测试案例-uCloud1.0测试项目,uCLOUD1.0项目采用“平台+应用”全新IT云架构来支撑业务管理,是中国联通具有战略意义的项目,一期主要包含PASS平台、ESB、电子运维应用、资源应用、 资产应用。,成功的测试案例-uCloud1.0测试项目,项目前期的需求和设计阶段对需求和设计文档进行汇总、测试管理,代码开发完成后对系统进行功能和性能测试,在整个项目期间完成每周的项目质量预警实施。,配置管理成果,验收测试,质量管理,项目成果,功能测试: 设计测试用
16、例,4000余个 发现缺陷,3500余个,缺陷发现率99%以上 撰写验收报告:14份 验收日报:150份 性能测试: 优化性能点72个; 整体性能提高40%以上。 性能日报:150份 源代码检测: 检测模块代码,70个 发现缺陷,1000余个 发布代码检测报告:70余份,2,文档管理:共收集 需求文档和设计文档2000多份,并对这些文档进行版本管理、文档测试;配置管理文档3份;文档测试报告40份。 源代码管理:共管理各类版本的源代码1500余个,共计200多万行。 编译部署:共编译部署2800余次,部署报告90份,部署日报150份。,1,质量周报:发布质量周报50多期。质量月报:发布质量月报12期。,3,成功的测试案例-uCloud1.0测试项目,验收测试包含三方面内容,即功能测试、性能测试及源代码测试。,