删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

哈尔滨工业大学计算机科学与技术学院/国家示范性软件学院研究生考研导师简介-王甜甜

本站小编 Free考研网/2019-05-25

基本信息国际合作科学研究论文专著顶级国际期刊/会议《面向有效错误定位的测试用例优选》论文相关实验数据(Experiment results)论文《基于示例演化的学生程序自动修复》的示例
基本信息




王甜甜,女,汉族,1980年11月生,辽宁省丹东人。哈尔滨工业大学计算机学院航天软件工程研究中心,博士,副教授,硕士生导师。

2012年1月—12月在国家留学基金委资助下,在英国伦敦大学学院(University College London)计算机学院访问学者。

目前主持国家自然科学基金1项、教育部博士点基金1项、哈尔滨工业大学校创新基金1项;参与多项国家自然科学基金、国防基础等项目,发表SCI、EI等教学科研论文30余篇。



研究领域
1. 软件错误定位

2. 程序分析与程序理解

3. 基于搜索的软件工程

4. 软件测试与调试

5. 程序分析与理解

6. 软件安全

工作经历
时间

工作经历


2010.3-2013.12

哈尔滨工业大学计算机科学与技术学院,讲师,硕士研究生导师
2012/01-2012/12

英国伦敦大学学院(University College London, UCL),Visiting Research Scientist (国家留学基金委CSC资助)
2014.1至今

哈尔滨工业大学计算机科学与技术学院,副教授,硕士研究生导师


教育经历
2005/9-2009/7,就读于哈尔滨工业大学计算机科学与技术学院, 获工学博士学位

2003/9-2005/7,就读于哈尔滨工业大学计算机科学与技术学院, 获工学硕士学位

团队成员
马培军:博士,教授,博士生导师,研究方向:软件工程、智能信息处理与信息融合,图像处理与识别等;.苏小红:博士,教授,博士生导师,研究方向:克隆代码检测与重构,软件缺陷和代码坏味检测,信息融合等;王甜甜:博士,副教授,硕士生导师,研究方向:软件工程、程序分析与理解、软件错误定位、软件缺陷检测等;赵玲玲:博士,讲师,硕士生导师,研究方向:信息融合、目标跟踪以及非线性滤波方法等。


The CREST centre of UCL
The CREST centre at UCL builds on the three foundations of Program Dependence, Information Theory and Optimisation Algorithms. On these three foundations we develop ways to analyse, understand and improve software, with applications throughout the spectrum of software development activities. We are widely known for our work on Empirical Software Engineering, Evolutionary Computation, Code Provenance, Quantified Information Flow, Security, Software Testing, Program Slicing and Search Based Software Engineering. URL:http://crest.cs.ucl.ac.uk/Examples of the excellent produced in collaboration with Chinese visitors in CREST is shown in http://crest.cs.ucl.ac.uk/crests_on_going_collaborations_with_china/example_visits/

研究领域简述
软件错误定位(software fault localization) 程序设计是一项复杂的活动,很难推导程序中所有可能的执行路径,以及预见可能影响程序的环境因素。即使程序看起来正确执行,仍然可能在极少情况下或特定条件满足时产生失效。我们在编程过程中,经常遇到编译正确但是运行结果错误的情况,找到错误位置是很挠头的一件事情。

软件错误自动定位通过计算机分析程序源代码或执行过程中产生的运行时状态,检测程序中的异常情况,并将其独立出来作为需要进一步调试的可疑代码,从而将与软件失效无关的代码自动过滤掉,缩小缺陷代码的搜索范围,辅助开发人员更快地识别缺陷语句。

程序分析与程序理解(program analysis and comprehension) 如何在只有程序源代码的情况下,识别程序员的编程意图呢?

程序分析和程序理解技术通过计算机自动解析程序源代码,把程序表示为更容易理解的抽象表示形式,在此基础上进一步应用。

我们目前主要将此技术应用于学生程序自动评分、剽窃检测、软件缺陷检测等。

基于搜索的软件工程(search based software engineering)软件工程中的许多问题都可以形式化为优化问题。

SBSE将启发式搜索算法如遗传算法、蚁群算法、基因编程,应用于解决软件工程问题,降低计算复杂度。


科研项目
项目名称项目来源起止时间承担角色项目类别
面向理解的软件错误定位方法国家自然科学基金2013.01 ~ 2015.12负责人纵向
行为状态统计分析软件错误自动定位方法教育部博士点基金2012.01 ~ 2014.12负责人纵向
行为驱动的软件错误自动定位及理解方法校青年创新基金2011.01 ~ 2013.12负责人纵向


论文期刊

论文标题SCI/SSCI/EI:Ability-training-oriented automated assessment in introductory programming course

作者WANG Tiantian, SU Xiaohong, MA Peijun, WANG Yuying, WANG Kuanquan

期刊名称Computers & Education

期卷56(1)

简单介绍SCI、SSCI、EI检索


论文标题顶级会议:Searching for Better Configurations:A Rigorous Approach to Clone Evaluation

作者WANG Tiantian, Harman Mark, JIA Yue, et al.

期刊名称ESEC/FSE

期卷31

简单介绍顶级会议


论文标题SCI:A test-suite reduction approach to improving fault-localization effectiveness

作者GONG Dandan, WANG Tiantian, SU Xiaohong, MA Peijun

期刊名称Computer Languages, Systems & Structures

简单介绍SCI检索


论文标题SCI/EI:Semantic similarity-based grading of student programs

作者WANG Tiantian, SU Xiaohong, WANG Yuying, MA Peijun

期刊名称Information and Software Technology

期卷49

简单介绍SCI、EI检索


论文标题基于程序理解的编程题自动评分方法

作者马培军, 王甜甜, 苏小红

期刊名称计算机研究与发展



论文标题一种语义保持的C克隆代码无定型过程提取方法

作者边奕心, 王甜甜, 苏小红, 马培军

期刊名称计算机研究与发展



论文标题基于系统依赖图的过程间指针分析方法

作者王甜甜,苏小红,马培军,郭全萍

期刊名称系统工程与电子技术



论文标题程序标准化转换中的指针分析算法研究

作者王甜甜, 苏小红, 马培军

期刊名称电子学报



论文标题用指针实现的程序的标准化及其应用

作者王甜甜, 郭全萍, 马培军,苏小红

期刊名称哈尔滨工业大学学报



论文标题面向程序理解的系统依赖图构建算法

作者王克朝,王甜甜,苏小红,马培军,童志祥

期刊名称哈尔滨工业大学学报



论文标题SCI/EI:Detection of semantically similar code

作者Wang Tiantian, Wang Kechao, Su Xiaohong, Ma Peijun

期刊名称Frontier of Computer Science

期卷8(6)

简单介绍SCI、EI检索


论文标题面向有效错误定位的测试用例优选方法

作者王克朝,王甜甜,苏小红,马培军,童志祥

期刊名称计算机研究与发展

期卷51(4)

简单介绍EI,国内一级期刊


论文标题结合用例约简与联合依赖概率建模的错误定位

作者苏小红,龚丹丹,王甜甜,马培军

期刊名称软件学报

期卷25(7)

简单介绍EI,国内一级期刊


论文标题SCI/EI:State Dependency Probabilistic Model for Fault Localization

作者Gong Dandan, Su Xiaohong, Wang Tiantian, Mapeijun, Wang Yu

期刊名称Information and Software

期卷57(1)

简单介绍SCI、EI检索


论文标题并发缺陷暴露、检测与规避研究综述

作者苏小红,禹振,王甜甜,马培军

期刊名称计算机学报

简单介绍EI、国内一级期刊

中国计算机学会推荐国际刊物(软件工程、系统软件与程序设计语言)


序号

刊物简称

刊物全称

出版社

网址

级别
1

TOPLAS

ACM Transactions on Programming Languages & Systems

ACM

http://www.acm.org/toplas

A类
2

TOSEM

ACM Transactions on Software Engineering Methodology

ACM

http://www.acm.org/pubs/tosem/
3

TSE

IEEE Transactions on Software Engineering

IEEE

http://www.computer.org/portal/web/tse/home
1

ASE

Automated Software Engineering

Springer

http://www.springer.com/computer/ai/journal/10515

B类
2



Empirical Software Engineering

Springer

http://www.springerlink.com/content/1573-7616/
3

TSC

IEEE Transactions on Service Computing

IEEE

http://www.computer.org/portal/web/tsc
4

IETS

IET Software

IET

http://www.ietdl.org/IET-SEN
5

IST

Information and Software Technology

Elsevier

http://www.sciencedirect.com/science/journal/**
6

JFP

Journal of Functional Programming

Cambridge
University Press

http://journals.cambridge.org/action/displayJournal?jid=JFP
7



Journal of Software: Evolution and Process

Wiley

http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)
2047-7481

8

JSS

Journal of Systems and Software

Elsevier

http://www.journals.elsevier.com/journal-of-systems-
and-software/

9

RE

Requirements Engineering

Springer

http://www.springer.com/computer/swe/journal/766
10

SCP

Science of Computer Programming

Elsevier

http://www.journals.elsevier.com/science-of-computer
-programming/

11

SoSyM

Software and System Modeling

Springer

http://www.sosym.org/
12

SPE

Software: Practice and Experience

Wiley

http://www3.interscience.wiley.com/cgi-bin/jhome/1752
13

STVR

Software Testing, Verification and Reliability

Wiley

http://as.wiley.com/WileyCDA/WileyTitle/productCd
-STVR.html

1



Computer Languages, Systems and Structures

Elsevier

http://www.elsevier.com/wps/find/journaldescription
.cws_home/638299/description#description


C类
2

IJSEKE

International Journal on Software Engineering and Knowledge Engineering

World
Scientific

http://www.worldscientific.com/worldscinet/ijseke
3

STTT

International Journal on Software Tools for Technology Transfer

Springer

http://www.springerlink.com/content/1433-2787/
4



Journal of Logic and Algebraic Programming

Elsevier

http://www.journals.elsevier.com/the-journal-of-logic-
and-algebraic-programming/

5

JWE

Journal of Web Engineering

Rinton Press

http://www.rintonpress.com/journals/jwe/
6



Service Oriented Computing and Applications

Springer

http://www.springer.com/computer/communication+
networks/journal/11761

7

SQJ

Software Quality Journal

Springer

http://www.springer.com/computer/programming/
journal/11219

8

TPLP

Theory and Practice of Logic Programming

Cambridge
University Press

http://journals.cambridge.org/action/displayJournal?jid=TLP


中国计算机学会推荐国际学术会议(软件工程、系统软件与程序设计语言)


序号

会议简称

会议全称

出版社

网址

级别
1

FSE/ESEC

ACM SIGSOFT Symposium on the Foundation of Software Engineering/ European Software Engineering Conference



http://esec-fse.inf.ethz.ch/

A类
2

OOPSLA

Conference on Object-Oriented Programming Systems, Languages, and Applications

ACM

http://splashcon.org/2013/cfp/618
3

ICSE

International Conference on Software
Engineering

ACM/IEEE

http://www.icse-conferences.org/
4

OSDI

USENIX Symposium on Operating Systems
Design and Implementations

USENIX

http://www.usenix.org/event/osdi12
5

PLDI

ACM SIGPLAN Symposium on Programming Language Design & Implementation

ACM

http://pldi2013.ucombinator.org/
6

POPL

ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages

ACM

http://www.cse.psu.edu/popl/12
7

SOSP

ACM Symposium on Operating Systems Principles

ACM

http://sosp.org/
1

ECOOP

European Conference on Object-Oriented Programming

AITO

http://ecoop.org/

B类
2

ETAPS

European Joint Conferences on Theory and Practice of Software

Springer

http://www.etaps.org/
3

FM

Formal Methods, World Congress

FME

http://www.fmeurope.org/
4

ICPC

IEEE International Conference on Program Comprehension

IEEE

http://icpc12.sosy-lab.org/
5

RE

IEEE International Requirement Engineering Conference

IEEE

http://www.cin.ufpe.br/~re2013/
6

CAiSE

International Conference on Advanced Information Systems Engineering

Springer

http://www.pros.upv.es/index.php/en/home-caise2013
7

ASE

International Conference on Automated Software Engineering

IEEE/ACM

http://ase2013.org/
8

ICFP

International Conf on Function Programming

ACM

http://icfpconference.org/icfp2013/
9

LCTES

International Conference on Languages, Compilers, Tools and Theory for Embedded Systems

ACM

http://www.dcs.gla.ac.uk/conferences/lctes13/
10

MoDELS

International Conference on Model Driven Engineering Languages and Systems

ACM, IEEE

http://www.modelsconference.org/
11

CP

International Conference on Principles and Practice of Constraint Programming

Springer

http://cp2013.a4cp.org/
12

ICSOC

International Conference on Service Oriented Computing

Springer

http://www.icsoc.org/
13

ICSM

International. Conference on Software Maintenance

IEEE

http://icsm2013.tue.nl/
14

VMCAI

International Conference on Verification, Model Checking, and Abstract Interpretation

Springer

http://lara.epfl.ch/vmcai2012/
15

ICWS

International Conference on Web Services
(Research Track)

IEEE

http://conferences.computer.org/icws/2013/
16

SAS

International Static Analysis Symposium

Springer

http://research.microsoft.com/en-us/events/sas2013/
17

ISSRE

International Symposium on Software Reliability Engineering

IEEE

http://2012.issre.net/content/ieee-issre-2012-dallas-tx
18

ISSTA

International Symposium on Software Testing and Analysis

ACM SIGSOFT

http://issta2013.inf.usi.ch/
19

Middleware

Conference on middleware

ACM/IFIP/ USENIX

http://www.middleware-conference.org/
20

WCRE

Working Conference on Reverse Engineering

IEEE

http://wcre.wikidot.com/2013
21

HotOS

USENIX Workshop on Hot Topics in Operating Systems

USENIX

https://www.usenix.org/conference/hotos13/
1

PASTE

ACMSIGPLAN-SIGSOFTWorkshoponProgram Analysis for SoftwareTools and Engineering

ACM

http://dept.cs.williams.edu/PASTE2013/cfp.html

C类
2

APLAS

Asian Symposium on Programming Languages and Systems

Springer

http://aplas12.kuis.kyoto-u.ac.jp/
3

APSEC

Asia-Pacific Software Engineering Conference

IEEE

http://apsec2012.comp.polyu.edu.hk/
4

COMPSAC

International Computer Software and Applications Conference

IEEE

http://compsac.cs.iastate.edu/
5

ICECCS

IEEE International Conference on Engineering of Complex Computer Systems

IEEE

http://www.iceccs.org/
6

SCAM

IEEE International Working Conference on Source Code Analysis and Manipulation

IEEE

http://www.ieee-scam.org/
7

ICFEM

International Conference on Formal Engineering Methods

Springer

https://www.cs.auckland.ac.nz/research/conferences
/icfem2013/

8

TOOLS

International Conference on Objects, Models, Components, Patterns

Springer

http://tools.ethz.ch/
9

PEPM

ACM SIGPLAN Symposium on Partial Evaluation and Semantics Based Programming Manipulation

ACM

http://www.program-transformation.org/PEPM13
10

QSIC

International Conference on Quality Software

IEEE

http://www.di.univaq.it/qsic2012/
11

SEKE

International Conference on Software Engineering and Knowledge Engineering

KSI

http://www.ksi.edu/seke/seke13.html
12

ICSR

International Conference on Software Reuse

Springer

http://www.icsrc.org/
13

ICWE

International Conference on Web Engineering

Springer

http://icwe2012.webengineering.org
14

SPIN

International SPIN Workshop on Model Checking of Software

Springer

http://spin2013.cs.sunysb.edu/
15

LOPSTR

International Symposium on Logic-based Program Synthesis and Transformation

Springer

http://www.cs.man.ac.uk/~kung-kiu/lopstr/
16

TASE

International Symposium on Theoretical Aspects of Software Engineering

IEEE

http://selab.bjut.edu.cn/tase2012/
17

ICST

The IEEE International Conference on Software Testing, Verification and Validation

IEEE

http://icst.org/
18

ATVA

International Symposium on Automated Technology for Verification and Analysis



http://www.iarcs.org.in/atva2012/
19

ESEM

International Symposium on Empirical Software Engineering and Measurement

ACM/IEEE

http://esem-conferences.org/index.php
20

ISPASS

IEEE International Symposium on Performance Analysis of Systems and Software

IEEE

http://ispass.org/
21

SCC

International Conference on Service Computing

IEEE

http://conferences.computer.org/scc/2013/
22

ICSSP

International Conference on Software and System Process

ISPA

http://www.icsp-conferences.org/index.html


《面向有效错误定位的测试用例优选》实例
程序及测试用例实例,其中s12为错误语句,应该为r=x+temp;tf为失效测试用例,t1-t8为成功测试用例:

测试用例优选前的错误定位结果,错误语句s12没有被准确定位:
优选测试用例后的错误定位结果,错误语句s12排序为1,被准确定位,错误定位有效性提高:
以下演示相关概念及测试用例的选择过程:

语句覆盖矩阵C:
失效相关的成功覆盖矩阵CSF:
覆盖等价ECE和失效覆盖等价类ECC,每个ECC中的语句覆盖等价:
测试用例优选模型ES的测试用例优选过程举例:

论文《基于示例演化的学生程序自动修复》的示例
1 示例分析

以判定回文串的程序为例,分析本文方法的优缺点.题目是“输入一个字符串,判定其是否能通过添加一个字母,变为回文串的功能,如果是,输出“YES”;否则,输出“NO”.”给定的测试用例(输入,输出)集合为:

{(“ABCAB”,“YES”), (“ABB”, “YES”), (“aBC”,“NO”),(“BBA”,“YES”)}.

解决该问题有多种思路,图5和图6分别给出了采用不同算法的两个模板程序.模板程序A采用的算法是:判定字符串的和它的反向字符串的公共子序列长度是否与原字符串的长度相等或短1,如果是,则输出"YES",否则,输出"NO".

模板程序B采用的算法是:删除字符后判定是否是回文串.如果删除的是中间位置字符,那么原字符串本身必为回文;假设原字符串长度为length,如果删除的是两端字符,那么长度为length-1的两个子串必有一个也是回文.
图7和图8是两个缺陷程序.其中图7中缺陷程序C采用了公共子序列算法,但是由于第19行len变量赋值错误,导致该程序对测试用例集合中的所有测试用例均失效.图8中缺陷程序D采用了删除字符后判定回文的方法,但是由于缺少分支判定条件,导致对部分测试用例执行成功,部分测试用例执行失效.

修复缺陷程序C的步骤如下.

(1)根据语法相似度选择模板程序A作为修复缺陷程序C的示例程序.

(2)插桩模板程序A和缺陷程序C,然后用各个测试用例执行插桩后的程序,获得执行值序列,分别如表3和表4所示.表4中最后一行为各个测试用例的执行结果.

(3)根据执行值序列相似度,匹配变量及其赋值语句,如表5所示.表5中,同一行的两个程序中的变量为匹配变量对,对应的语句行为匹配的赋值语句.

(4)使用最长公共子序列算法求缺陷程序和示例程序抽象语法树序列的最大匹配,识别差异语句,并根据结构语义,进一步识别可能匹配的变量对{(len,23),(len,28)},{ (d,24),(dis,29)}.尽管缺陷程序C和模板程序A存在循环结构表示形式、表达式、变量名不同,语句顺序调换等差别,本文基于结构语义和执行值序列分析可以识别和消除这些代码多样化.通过差异分析,把缺陷程序C中第29行识别为可疑语句,将其变异位置概率赋以W2.将示例程序中第23行识别为可能执行替换的语句,赋以概率W2,并识别该位置处可能执行的变异操作为替换操作.

(5)使用遗传编程算法,进行迭代演化,将模板程序A语法树中的子树插入或替换到缺陷程序C语法树中,生成的新程序,在执行子树插入或替换操作之前,根据变量映射表中匹配的变量对,修改子树中的变量名,使之生成语法正确的程序.当生成可以通过测试用例集中所有测试用例的变异程序时,停止迭代,输出修复程序,即把图7中第28行的缺陷语句用正确语句(见第27行注释)替换后生成的程序.

通过以上示例,可以看出,尽管缺陷程序对测试用例集中的所有测试用例均执行失效,本文方法可以有效定位并修复其中的缺陷语句.
修复缺陷程序D的步骤和上面类似.差别在于选择的示例程序是模板程序B.缺陷程序D执行测试用例集时有部分成功,部分失效.示例程序C和缺陷程序D的执行值序列如表6所示,匹配变量对{(isPaBegin,8), (isPaBegin,8)}, {(isPaEnd,9), (isPaEnd,9)}.识别的变异操作为插入操作,最后生成的修复程序同模板程序B.

需要强调的是,本文程序修复方法的有效性依赖于给定的模板程序,对不同的求解算法或数据结构,需要提供相应的模板程序.尽管本文通过结构语义分析识别等价的但语法表示形式不同的语法结构,通过执行值序列容忍变量名和语句顺序的多样化,但是不可否认的是,也有可能存在缺陷程序实现方法很特殊,而模板程序有限的情况,在这种情况下,则有可能错误语句直接被模板程序中的正确语句替换,生成可以通过测试的修复方案,但是可能不是最小修复.也有可能由于搜索空间过大,导致有限时间内不能搜索到修复方案.因此本文的方法前提是需要充足的模板程序.在实际应用中,对于学生程序而言,可以由教师提供模板程序,也可以从已经提交的正确学生程序中挖掘新的模板.


相关话题/程序 测试 论文 软件 软件工程