90 likes | 269 Views
迎新报告. 报告人:岳翰 导师:吴鹏. 课题介绍. 并发程序有时会有 bug. Initial: a = 0. Thread2 G(…) { … a += 1; … }. Thread1 F(…) { … a += 1; … }. assert(a == 2). 课题介绍. 不一定所有输入都会引发 bug. 失效区域. ···. 点状 (Point). 条状 ( Strip ). 块状 (Block). 课题介绍. 要解决的问题 如何用更短的时间对并发程序进行检验。
E N D
迎新报告 报告人:岳翰 导师:吴鹏
课题介绍 • 并发程序有时会有bug Initial: a = 0 Thread2 G(…) { … a += 1; … } Thread1 F(…) { … a += 1; … } assert(a == 2)
课题介绍 • 不一定所有输入都会引发bug 失效区域 ··· 点状(Point) 条状(Strip) 块状(Block)
课题介绍 • 要解决的问题 如何用更短的时间对并发程序进行检验。 如何用更少的测试用例覆盖所有的并发bug。
课题介绍 • 覆盖度准则(coverage):interleaving idiom idiom : 线程间共享内存访问的依赖关系的一种模式 idiom模式
课题介绍 • 并发程序测试 • 压力测试(stress testing) • 系统性测试(systematic testing) • 主动测试(active testing) 反复执行测试用例 计算出所有可能的线程交织序列 预测出可能引发并发错误的线程交织序列
课题介绍 • 测试用例的选择 Fixed Size Candidate Set Version of the ART(FSCS-ART)
未来工作 • 改进方法 • TSO/PSO内存模型下的检测?