![]() |
中文 |
![]() |
English | ![]() |
2013年5月20日,美国国家科学基金会 以网络为核心的软件与系统 企业/大学联合研究中心(Net-Centric I/UCRC)副主任、南卫理工会大学(Southern Methodist University)计算机科学与工程学系、工程管理与信息系统系教授,西北工业大学计算机学院(2012年陕西百人计划)田建辉教授(Professor Jeff Tian)到天津大学应用数学中心访问,并于当天下午在二层学术报告厅作了题为“Risk-Based Testing & Quantifiable Quality Improvement: Approaches and Empirical Validation”的学术报告。报告由天津大学-汉柏科技应用数学联合实验室副主任、汉柏科技有限公司技术总监尚进博士主持,陈永川教授、荣喜民教授、黄正海教授等参加了报告会。
尚进博士首先对田建辉教授作了简要介绍。他讲到:“软件的质量可靠性对企业来说非常重要。如果有一套完整的方法能够对软件可靠性进行检测,那么对于软件质量的提升是非常有帮助的。田教授以前在IBM工作时,就从事软件解决方案的研究;他目前所在的I/UCRC是美国国家科学基金会下属的网络中心,与工业界和大学的合作比较多。田教授今天主要讲软件可靠性及风险评估的方法研究,对从事软件编程的IT企业非常有意义。”
田建辉教授首先指出:对于软件质量,包括可靠性、可信性及可用性等各方面,都有一个普遍规律。就是不管你怎么去看这个系统,从不同模块、不同功用,还是其重要程度,它的分布从来就不是平均分布,而是符合Pareto principle(二八定律,帕雷托法则),即20%的模块可能是我们花80%的精力开发出来,去研究、测试它;20%的顾客可能带来了80%的利润等等。因此,如果你找到了这20%的焦点,就可能找到了突破点,进而可以有效提升软件质量。
由此,田教授引入他的报告主题:Risk-Based Testing & Quantifiable Quality Improvement,就是根据风险(模型),去识别风险、利用风险,找着突破点。这里边很重要的一点是,测试(testing)之后,做质量提升(Quality Improvement),一定要定量(Quantifiable)。即不仅是定性,还要定量。因为很多东西如果不定量,就很难讲,很难使人信服。比如物理学中,量纲就是很重要的。
在报告中,田教授首先介绍了软件质量、定量和风险等基本概念。
对于软件质量,每个人可能有自己不同的定义。但跟工业界的朋友讲到软件质量时,总会和“缺陷(defect)”有关系,是错多还是错少,出错的可能性有多大,错源有多少等等。软件质量可以从不同角度去看,例如最近比较热门的云计算(cloud computing),终端用户看的话,质量好就是我什么时候用,它什么时候在,且不会出错;对于服务提供商(service provider),质量好就是我需要什么东西,数据中心都能随时提供;而从数据中心的角度讲,不管你是最终用户,还是服务提供商,只要有需要,我就能马上提供,而且不会出错,这就是质量好。根据不同研究领域或者是应用领域,对质量的概念理解也不同,比如跟互联网(internet)有关系的重要概念有可靠性(reliability)、安全性(security)、可用性(usability)(因为要跟终端用户打交道,东西再好,如果人家没法用,也是没有用的)。在这里,田教授还给出IBM的几组数据,是关于出错的一些分布。可以看出,可靠性(reliability)问题大概是所有出错里面最多的问题,然后其他的有可用性(usability)、性能(capability)等