《一种程序日志检测方法、推荐方法及各自对应的装置.pdf》由会员分享,可在线阅读,更多相关《一种程序日志检测方法、推荐方法及各自对应的装置.pdf(31页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 (43)申请公布日 (21)申请号 201310379397.5(22)申请日 2013.08.27G06F 11/36(2006.01)G06F 17/30(2006.01)(71)申请人华为技术有限公司地址 518129 广东省深圳市龙岗区坂田华为总部办公楼申请人中国科学院计算技术研究所(72)发明人李丰 霍玮 陈聪明 冯晓兵(74)专利代理机构深圳市深佳知识产权代理事务所(普通合伙) 44285代理人唐华明(54) 发明名称一种程序日志检测方法、推荐方法及各自对应的装置(57) 摘要本发明公开了一种程序日志检测方法及装置,包括:获取程序中需要检测的待测日志输出语句所在。
2、程序点、以及期望涵盖的程序语句;判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,第一条件为该变量被执行定值操作后确定的定值可到达至少一条待测日志输出语句所在程序点,该程序点为可达程序点,第二条件为该变量在至少一个可达程序点处的待测日志输出程序语句中被引用;如果是,确定待测日志输出语句有效,否则,确定待测日志输出语句失效,实现了对程序中的日志输出语句检测的目的。本发明还公开了一种程序日志推荐方法及装置,实现了辅助用户为缺少或者无日志输出语句的程序推荐有效新日志输出语句的目的。(51)Int.Cl.(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书。
3、5页 说明书18页 附图7页(10)申请公布号 CN 104424097 A(43)申请公布日 2015.03.18CN 104424097 A1/5页21.一种程序日志检测方法,其特征在于,包括:获取程序中需要检测的待测日志输出语句所在程序点、以及期望涵盖的程序语句;判断所述期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后,确定的定值可到达至少一条所述待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达程序点,所述第二条件为该变量在至少一个该变量的可达程序点处的待测日志输出程序语句中被引用。
4、;如果是,确定所述待测日志输出语句有效,否则,确定所述待测日志输出语句失效。2.根据权利要求1所述的方法,其特征在于,所述判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件包括:通过采用符号执行过程并调用约束求解工具确定所述程序语句中的可行路径;根据所确定的可行路径判断每个在所述期望涵盖的程序语句中被执行定值操作的变量的定值是否可到达至少一条待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为可达程序点,且在至少一个所述可达程序点处的待测日志输出程序语句中被引用。3.根据权利要求1所述的方法,其特征在于,所述判断期望涵盖的程序语句中每个被执行。
5、定值操作的变量是否均满足第一条件且满足第二条件包括:针对每条待测日志输出语句执行查找步骤,其中所述查找步骤包括:求解期望涵盖的程序语句中,以所针对的待测日志输出语句所在程序点、及在所针对的待测日志输出语句中被引用的变量集合为切片标准获得的程序切片,将所述程序切片纳入已查程序语句集合;计算所述已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例;如果所述比例在日志相对强度范围内,确定所述程序语句中每个被执行定值操作的变量均满足第一条件且满足第二条件;如果所述比例未在日志相对强度范围内,确定所述程序语句中被执行定值操作的变量中存在不满足第一条件和/或者第二条件的变量。4.根据权利要。
6、求3所述的方法,其特征在于,在计算已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例之前,还包括:针对所述已查程序语句集合中的程序语句,采用符号执行过程并调用约束求解工具,查找出已查程序语句集合中所有与待测日志输出语句所在程序点不存在可行路径的程序语句,将该程序语句从所述已查程序语句集合中排除。5.一种程序日志检测装置,其特征在于,包括:检测获取单元:用于获取程序中需要检测的待测日志输出语句所在程序点、以及期望涵盖的程序语句;检测判断单元:用于判断所述期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后确定的定。
7、值可到达至少一条所述待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达程序点,所述第二条件为该变量在至少一个该变量的可达权 利 要 求 书CN 104424097 A2/5页3程序点处的待测日志输出语句中被引用;检测确定单元:用于如果检测判断单元判断结果为是,确定所述待测日志输出语句有效,否则,确定所述待测日志输出语句失效。6.根据权利要求5所述的装置,其特征在于,所述检测判断单元包括:判断可行路径子单元:用于通过采用符号执行过程并调用约束求解工具确定所述程序语句中的可行路径;判断日志语句子单元:用于根据所确定的可行路径判断每个在所述期望涵盖的程序语句中被执。
8、行定值操作的变量的定值是否可到达至少一条待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为可达程序点,且在至少一个所述可达程序点处的待测日志输出程序语句中被引用。7.根据权利要求5所述的装置,其特征在于,所述检测判断单元包括:查找子单元:用于针对每条待测日志输出语句执行查找步骤,其中所述查找步骤包括:求解期望涵盖的程序语句中,以所针对的待测日志输出语句所在程序点、及在所针对的待测日志输出语句中被引用的变量集合为切片标准获得的程序切片,将所述程序切片纳入已查程序语句集合;计算子单元:用于计算所述已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例;比例判断。
9、子单元:用于如果所述比例在日志相对强度范围内,确定所述程序语句中每个被执行定值操作的变量均满足第一条件且满足第二条件;如果所述比例未在日志相对强度范围内,确定所述程序语句中被执行定值操作的变量中存在不满足第一条件和/或者第二条件的变量。8.根据权利要求7所述的装置,其特征在于,所述检测判断单元还包括:排除子单元:用于在计算子单元计算已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例之前,针对所述已查程序语句集合中的程序语句,采用符号执行过程并调用约束求解工具查找出已查程序语句集合中所有与待测日志输出语句所在程序点不存在可行路径的程序语句,将该程序语句从所述已查程序语句集合中排。
10、除。9.一种程序日志推荐方法,其特征在于,包括:获取期望涵盖的程序语句;提取所述期望涵盖的程序语句中的至少一个程序点;提取出与所述程序点对应的变量,所述变量包括在所述程序点处活跃的变量,和/或者,用户在所述程序点处指定的变量;将每个所提取的程序点各自作为一个待检测日志输出语句所在程序点,以及,将每个程序点对应的变量作为该程序点的待检测日志输出语句引用的变量;判断所述期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后确定的定值可到达至少一条所述待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达。
11、程序点,所述第二条件为该变量在至少一个该变量的可达程序点处的待测日志输出程序语句中被引用;如果是,推荐在所述待测日志输出语句所在程序点插入所述待测日志输出语句。权 利 要 求 书CN 104424097 A3/5页410.根据权利要求9所述的方法,其特征在于,所述获取期望涵盖的程序语句包括:如果所述程序中已存在日志输出语句,针对每个在所述程序语句中被执行定值操作的变量,判断该变量的定值是否可到达至少一条已存在的日志输出语句所在程序点,其中,所述至少一条已存在的日志输出语句所在程序点为可达已存程序点,且该变量在至少一个所述可达已存程序点处的日志输出程序语句中被引用,如果否,将该执行定值操作的程序。
12、语句纳入期望涵盖的程序语句;如果所述程序中不存在日志输出语句,将所述程序中的所有程序语句纳入期望涵盖的程序语句。11.根据权利要求9所述的方法,其特征在于,还包括:如果期望涵盖的程序语句中被执行定值操作的变量不满足第一条件和/或者不满足第二条件,提取新程序点,返回到提取出与所述程序点对应的变量的步骤。12.根据权利要求9-11任一项所述的方法,其特征在于,所述判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件包括:针对每条待测日志输出语句执行查找步骤,其中所述查找步骤包括:求解期望涵盖的程序语句中,以所针对的待测日志输出语句所在程序点、及在所针对的待测日志输出语句。
13、中被引用的变量集合为切片标准获得的程序切片,将所述程序切片纳入已查程序语句集合;计算所述已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例;如果所述比例在日志相对强度范围内,确定所述程序语句中每个被执行定值操作的变量均满足第一条件且满足第二条件;如果所述比例未在日志相对强度范围内,确定所述程序语句中被执行定值操作的变量中存在不满足第一条件和/或者第二条件的变量。13.根据权利要求12所述的方法,其特征在于,在计算已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例之前,还包括:针对所述已查程序语句集合中的程序语句,采用符号执行过程并调用约束求解工具,查找出已查。
14、程序语句集合中所有与待测日志输出语句所在程序点不存在可行路径的程序语句,将该程序语句从所述已查程序语句集合中排除。14.根据权利要求12所述的方法,其特征在于,如果所述比例在日志相对强度范围内,还将所述比例作为日志相对强度范围的下限,更新所述日志相对强度范围;所述推荐在所述待测日志输出语句所在程序点插入待测日志输出语句包括:将该待测日志输出语句所在程序点及被该待测日志输出语句引用的变量记录在一条日志推荐提示中;判断是否还继续进行推荐检测;如果是,提取新程序点,返回到提取出与所述程序点对应的变量的步骤;如果否,反馈最后记录的一条日志推荐提示。15.根据权利要求9所述的方法,其特征在于,还包括:如。
15、果已根据所述推荐在程序中插入了日志输出语句,将所述程序中所有程序语句作为期望涵盖的程序语句,将所述程序中所有日志输出语句作为待测日志输出语句,并判断期权 利 要 求 书CN 104424097 A4/5页5望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,如果不满足,返回到获取期望涵盖的程序语句的步骤。16.一种程序日志推荐装置,其特征在于,包括:程序语句获取单元:用于获取期望涵盖的程序语句;推荐位置提取单元:用于提取所述期望涵盖的程序语句中的至少一个程序点;推荐变量提取单元:用于提取出与所述程序点对应的变量,所述变量包括在所述程序点处活跃的变量,和/或者,用户在所述。
16、程序点处指定的变量;待测日志获取单元:用于将每个所提取的程序点各自作为一个待检测日志输出语句所在程序点,以及,将每个程序点对应的变量作为该程序点的待检测日志输出语句引用的变量;推荐判断单元:用于判断所述期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后确定的定值可到达至少一条待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达程序点,所述第二条件为该变量在至少一个该变量的可达程序点处的待测日志输出程序语句中被引用;推荐确定单元:用于如果推荐判断单元判断结果为是,推荐在所述待测日志输出语句所在程。
17、序点插入所述待测日志输出语句。17.根据权利要求16所述的装置,其特征在于,所述程序语句获取单元:用于如果所述程序中已存在日志输出语句,针对每个在所述程序语句中被执行定值操作的变量,判断该变量的定值是否可到达至少一条已存在的日志输出语句所在程序点,其中,所述至少一条已存在的日志输出语句所在程序点为可达已存程序点,且该变量在至少一个所述可达已存程序点处的日志输出程序语句中被引用,如果否,将该执行定值操作的程序语句纳入期望涵盖的程序语句;如果所述程序中不存在日志输出语句,将所述程序中的所有程序语句纳入期望涵盖的程序语句。18.根据权利要求16所述的装置,其特征在于,还包括:重新推荐单元:用于如果期。
18、望涵盖的程序语句中被执行定值操作的变量不满足第一条件或者不满足第二条件,提取新程序点,重新触发推荐变量提取单元。19.根据权利要求16-18任一项所述的装置,其特征在于,所述推荐判断单元包括:查找子单元:用于针对每条待测日志输出语句执行查找步骤,其中所述查找步骤包括:求解期望涵盖的程序语句中,以所针对的待测日志输出语句所在程序点、及在所针对的待测日志输出语句中被引用的变量集合为切片标准获得的程序切片,将所述程序切片纳入已查程序语句集合;计算子单元:用于计算所述已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例;比例判断子单元:用于如果所述比例在日志相对强度范围内,确定所述程序。
19、语句中每个被执行定值操作的变量均满足第一条件且满足第二条件;如果所述比例未在日志相对强度范围内,确定所述程序语句中被执行定值操作的变量中存在不满足第一条件和/或者第二条件的变量。20.根据权利要求19所述的装置,其特征在于,所述推荐判断单元还包括:权 利 要 求 书CN 104424097 A5/5页6排除子单元:用于在计算子单元计算已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例之前,针对所述已查程序语句集合中的程序语句,采用符号执行过程并调用约束求解工具,查找出已查程序语句集合中所有与待测日志输出语句所在程序点不存在可行路径的程序语句,将该程序语句从所述已查程序语句集合。
20、中排除。21.根据权利要求19所述的装置,其特征在于,所述比例判断子单元:还用于如果所述比例在日志相对强度范围内,将所述比例作为日志相对强度范围的下限,更新所述日志相对强度范围;所述推荐确定单元包括:推荐记录子单元:用于将该待测日志输出语句所在程序点及被该待测日志输出语句引用的变量记录在一条日志推荐提示中;继续判断子单元:用于判断是否还继续进行推荐检测;继续确定子单元:用于如果继续判断子单元判断结果为是时,提取新程序点,重新触发推荐变量提取单元;反馈推荐子单元:用于如果继续判断子单元判断结果为否时,反馈最后记录的一条日志推荐提示。22.根据权利要求16所述的装置,其特征在于,还包括:综合检测单。
21、元:用于如果已根据所述推荐在程序中插入了日志输出语句,将所述程序中所有程序语句作为期望涵盖的程序语句,将所述程序中所有日志输出语句作为待测日志输出语句,并判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,如果不满足,重新触发程序语句获取单元执行。权 利 要 求 书CN 104424097 A1/18页7一种程序日志检测方法、 推荐方法及各自对应的装置技术领域0001 本发明涉及程序日志领域,特别涉及一种程序日志检测方法、推荐方法及各自对应的装置。背景技术0002 在程序中添加日志输出语句是一种常用的辅助诊断程序错误的手段。借助有效的日志输出语句可以提高程序错误诊。
22、断率。0003 目前,在程序中添加的日志输出语句主要由程序开发人员在开发过程中书写。但是,即使是具备良好编程素养的开发人员,其书写的日志也可能是有瑕疵的,经常导致在程序运行出错后修改或补充日志输出语句。0004 而且,在程序运行出错后才发现日志不足对程序开发、调试过程带来了不良影响,降低了日志输出语句在程序中所起的辅助诊断错误的作用。发明内容0005 有鉴于此,本发明实施例的主要目的在于提供一种程序日志检测方法、推荐方法及各自对应的装置以实现对已有日志输出语句进行检测以及推荐有效的新日志输出语句的目的。0006 为了解决以上技术问题,本发明实施例采取的技术方案是:0007 第一方面,本发明实施。
23、例提供了一种程序日志检测方法,所述方法包括:0008 获取程序中需要检测的待测日志输出语句所在程序点、以及期望涵盖的程序语句;0009 判断所述期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后确定的定值可到达至少一条所述待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达程序点,所述第二条件为该变量在至少一个该变量的可达程序点处的待测日志输出程序语句中被引用;0010 如果是,确定所述待测日志输出语句有效,否则,确定所述待测日志输出语句失效。0011 在第一方面的第一种可能的实现方式中,所述。
24、判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件包括:0012 通过采用符号执行过程并调用约束求解工具确定所述程序语句中的可行路径;0013 根据所确定的可行路径判断每个在所述期望涵盖的程序语句中被执行定值操作的变量的定值是否可到达至少一条待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达程序点,且在至少一个该变量的可达程序点处的待测日志输出程序语句中被引用。0014 在第一方面的第二种可能的实现方式中,所述判断期望涵盖的程序语句中每个被说 明 书CN 104424097 A2/18页8执行定值操作的变量是否均满足第一条件且满。
25、足第二条件包括:0015 针对每条待测日志输出语句执行查找步骤,其中所述查找步骤包括:求解期望涵盖的程序语句中,以所针对的待测日志输出语句所在程序点、及在所针对的待测日志输出语句中被引用的变量集合为切片标准获得的程序切片,将所述程序切片纳入已查程序语句集合;0016 计算所述已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例;0017 如果所述比例在日志相对强度范围内,确定所述程序语句中每个被执行定值操作的变量均满足第一条件且满足第二条件;0018 如果所述比例未在日志相对强度范围内,确定所述程序语句中被执行定值操作的变量中存在不满足第一条件和/或者第二条件的变量。0019 。
26、结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在计算已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例之前,还包括:0020 针对所述已查程序语句集合中的程序语句,采用符号执行过程并调用约束求解工具,查找出已查程序语句集合中所有与待测日志输出语句所在程序点不存在可行路径的程序语句,将该程序语句从所述已查程序语句集合中排除。0021 第二方面,本发明实施例提供了一种程序日志检测装置,所述装置包括:0022 检测获取单元:用于获取程序中需要检测的待测日志输出语句所在程序点、以及期望涵盖的程序语句;0023 检测判断单元:用于判断所述期望涵盖的程序语句中每个被执行定。
27、值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后确定的定值可到达至少一条所述待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达程序点,所述第二条件为该变量在至少一个该变量的可达程序点处的待测日志输出程序语句中被引用;0024 检测确定单元:用于如果检测判断单元判断结果为是,确定所述待测日志输出语句有效,否则,确定所述待测日志输出语句失效。0025 在第二方面的第一种可能的实现方式中,判断可行路径子单元:用于通过采用符号执行过程并调用约束求解工具确定所述程序语句中的可行路径;0026 判断日志语句子单元:用于根据所确定的可。
28、行路径判断每个在所述期望涵盖的程序语句中被执行定值操作的变量的定值是否可到达至少一条待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为可达程序点,且在至少一个所述可达程序点处的待测日志输出程序语句中被引用。0027 在第二方面的第二种可能的实现方式中,所述检测判断单元包括:0028 查找子单元:用于针对每条待测日志输出语句执行查找步骤,其中所述查找步骤包括:求解期望涵盖的程序语句中,以所针对的待测日志输出语句所在程序点、及在所针对的待测日志输出语句中被引用的变量集合为切片标准获得的程序切片,将所述程序切片纳入已查程序语句集合;0029 计算子单元:用于计算所述已查程序语。
29、句集合中所有程序语句的数量与期望涵盖说 明 书CN 104424097 A3/18页9的程序语句的数量的比例;0030 比例判断子单元:用于如果所述比例在日志相对强度范围内,确定所述程序语句中每个被执行定值操作的变量均满足第一条件且满足第二条件;如果所述比例未在日志相对强度范围内,确定所述程序语句中被执行定值操作的变量中存在不满足第一条件和/或者第二条件的变量。0031 结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述检测判断单元还包括:0032 排除子单元:用于在计算子单元计算已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例之前,针对所述已查程序语句集合。
30、中的程序语句,采用符号执行过程并调用约束求解工具查找出已查程序语句集合中所有与待测日志输出语句所在程序点不存在可行路径的程序语句,将该程序语句从所述已查程序语句集合中排除。0033 第三方面,本发明实施例提供了一种程序日志推荐方法,所述方法包括:0034 获取期望涵盖的程序语句;0035 提取期望涵盖的程序语句中的至少一个程序点;0036 提取出与所述程序点对应的变量,所述变量包括在所述程序点处活跃的变量,和/或者,用户在所述程序点处指定的变量;0037 将每个所提取的程序点各自作为一个待检测日志输出语句所在程序点,以及,将每个程序点对应的变量作为该程序点的待检测日志输出语句引用的变量;003。
31、8 判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后确定的定值可到达至少一条所述待测日志输出语句所在程序点,其中,所述至少一条待测日志输出语句所在程序点为该变量的可达程序点,所述第二条件为该变量在至少一个该变量的可达程序点处的待测日志输出程序语句中被引用;0039 如果是,推荐在所述待测日志输出语句所在程序点插入所述待测日志输出语句。0040 在第三方面的第一种可能的实现方式中,所述获取期望涵盖的程序语句包括:0041 如果所述程序中已存在日志输出语句,针对每个在所述程序语句中被执行定值操作的变量,判断该变量的定值是否可。
32、到达至少一条已存在的日志输出语句所在程序点,其中,所述至少一条已存在的日志输出语句所在程序点为该变量的可达已存程序点,且该变量在至少一个该变量的可达已存程序点处的日志输出程序语句中被引用,如果否,将该执行定值操作的程序语句纳入期望涵盖的程序语句;0042 如果所述程序中不存在日志输出语句,将所述程序中的所有程序语句纳入期望涵盖的程序语句。0043 在第三方面的第二种可能的实现方式中,还包括:0044 如果期望涵盖的程序语句中被执行定值操作的变量不满足第一条件和/或者不满足第二条件,提取新程序点,返回到提取出与所述程序点对应的变量的步骤。0045 结合第三方面的第一种可能的实现方式至第二种可能的。
33、实现方式中的任一种,在第三种可能的实现方式中所述判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件包括:0046 针对每条待测日志输出语句执行查找步骤,其中所述查找步骤包括:求解期望涵说 明 书CN 104424097 A4/18页10盖的程序语句中,以所针对的待测日志输出语句所在程序点、及在所针对的待测日志输出语句中被引用的变量集合为切片标准获得的程序切片,将所述程序切片纳入已查程序语句集合;0047 计算所述已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例;0048 如果所述比例在日志相对强度范围内,确定所述程序语句中每个被执行定值操作的变。
34、量均满足第一条件且满足第二条件;0049 如果所述比例未在日志相对强度范围内,确定所述程序语句中被执行定值操作的变量中存在不满足第一条件和/或者第二条件的变量。0050 结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,在计算已查程序语句集合中所有程序语句的数量与期望涵盖的程序语句的数量的比例之前,还包括:0051 针对所述已查程序语句集合中的程序语句,采用符号执行过程并调用约束求解工具,查找出已查程序语句集合中所有与待测日志输出语句所在程序点不存在可行路径的程序语句,将该程序语句从所述已查程序语句集合中排除。0052 结合第三方面第三种可能的实现方式,在第五种可能的实现方式中,如。
35、果所述比例在日志相对强度范围内,还将所述比例作为日志相对强度范围的下限,更新所述日志相对强度范围;0053 所述推荐在所述待测日志输出语句所在程序点插入待测日志输出语句包括:0054 将该待测日志输出语句所在程序点及被该待测日志输出语句引用的变量记录在一条日志推荐提示中;0055 判断是否还继续进行推荐检测;0056 如果是,提取新程序点,返回到提取出与所述程序点对应的变量的步骤;0057 如果否,反馈最后记录的一条日志推荐提示。0058 在第三方面第六种可能的实现方式中,还包括:0059 如果已根据所述推荐在程序中插入了日志输出语句,将所述程序中所有程序语句作为期望涵盖的程序语句,将所述程序。
36、中所有日志输出语句作为待测日志输出语句,并判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,如果不满足,返回到获取期望涵盖的程序语句的步骤。0060 第四方面,本发明实施例提供了一种程序日志推荐装置,所述装置包括:0061 程序语句获取单元:用于获取期望涵盖的程序语句;0062 推荐位置提取单元:用于提取所述期望涵盖的程序语句中的至少一个程序点;0063 推荐变量提取单元:用于提取出与所述程序点对应的变量,所述变量包括在所述程序点处活跃的变量,和/或者,用户在所述程序点处指定的变量;0064 待测日志获取单元:用于将每个所提取的程序点各自作为一个待检测日志输出语句所在程序点,以及,将每个程序点对应的变量作为该程序点的待检测日志输出语句引用的变量;0065 推荐判断单元:用于判断期望涵盖的程序语句中每个被执行定值操作的变量是否均满足第一条件且满足第二条件,所述第一条件为该变量被执行所述定值操作后确定的定说 明 书CN 104424097 A10。