「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about Fault Propagation and Love Mutation Testing」 slide for lab seminor (Japanese)
研究室輪講用資料です.
発表論文は「Automated Oracle Creation Support, or: How I Learned
to Stop Worrying about Fault Propagation and Love Mutation Testing」で,ICSE2012に採択されています.
This presentationt is written about "Code Complete" Chapter 22 Developer Testing.
This chapter describes how important developer test is and how to perform efficient developer testing.
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...nkazuki
研究室輪講用資料です.
発表論文は「X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications」で,ICSE2013に採択されています.
More Related Content
Similar to 「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about Fault Propagation and Love Mutation Testing」 slide for lab seminor (Japanese)
This presentationt is written about "Code Complete" Chapter 22 Developer Testing.
This chapter describes how important developer test is and how to perform efficient developer testing.
Similar to 「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about Fault Propagation and Love Mutation Testing」 slide for lab seminor (Japanese) (20)
Mutation Analysis for JavaScript Web Applicaiton Testing SEKE2013nkazuki
This slide is for a presentation at the 25th International Conference on Software Engineering and Knowledge Engineering (SEKE'13) at Boston.
Abstract of the published paper:
When developers test modern web applications that use JavaScript, challenging issues lie in their event-driven, asynchronous, and dynamic features. Many researchers have assessed the adequacy of test cases with code coverage criteria; however, in this paper, we show that the code coverage-based approach possibly misses some faults in the applications. We propose a mutation analysis approach for estimating the fault-finding capability of test cases. We assume that developers can find overlooked fault instances and improve the test cases with the estimated capability. To create a set of faulty programs, i.e., mutants, we classify the JavaScript features in web applications and then define a comprehensive set of mutation operators. We conducted a case study on a real-world application and found that our approach supported the improvement of test cases to expose hand-seeded faults by an extra ten percent.
You can find the transcript used in the presentation from the link below:
https://docs.google.com/document/d/1CsqcYKyHZQL6Z7OkM_LVVyB-aMURMWl37lc03LOa4fI/edit?usp=sharing
Supporting View Transition Design of Smartphone Applications Using Web Templ...nkazuki
This slide is for presentation in International Conference on Web Engineering 2012 at Berlin.
The abstract from published paper is as follows;
Many developers have implemented native smartphone applications (NSAs) that have the same functionalities as those of existing web applications (WAs). They need to redesign web pages as views of NSAs owing to their constraints, such as compact displays. However, it can produce a NSA with low global navigability. We propose a framework that can support developers in designing view transitions of NSAs on the basis of WAs. We focus on web templates to leverage well-designed web page transitions. Our framework 1) extracts a page transition model from a WA to create candidate view transitions of a NSA, 2) provides an interface where developers design these views to solve the constraints, and 3) suggests design modifications to increase global navigability calculated by proposed criteria of navigation costs for users. After examining case studies, we concluded that our framework could support developers to design easy-to-navigate NSAs.
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about Fault Propagation and Love Mutation Testing」 slide for lab seminor (Japanese)
1. Automated Oracle Creation Support,
or: How I Learned to Stop Worrying
about Fault Propagation and Love
Mutation Testing (ICSE2012)
輪講用資料
対象: コンピュータ科学専攻の修士・博士学生
(ソフトウェア工学専攻とは限らない)
1
発表時間: 25分
2012年 6月 28日
2. 発表論文
“Automated Oracle Creation Support, or: How I Learned
to Stop Worrying about Fault Propagation and Love
Mutation Testing”
- テストオラクル(後述)の選択を自動化する
By. Matt Staats (Korea Advanced Institute of Science & Technology)
Gregory Gay, Mats P. E. Heimdahl (University of Minnesota)
34th International Conference on Software Engineering
(ICSE 2012, Acceptance ratio: 21%)
2
3. テストとは
テスト:実装の正しさを,実行して確かめること
// x2 + |x| + 5を求める
X=3とする int calc(int x) {
int val = x * x;
if (x > 0) {
val += x;
} else {
val -= x;
}
return val + 5;
}
正しいかわからないプログラム
3
4. テストオラクルとは
オラクル
オラクル:正しい振舞いを決めるもの
期待値オラクル
// x2 + |x| + 5を求める
X=3とする int calc(int x) { ここでのvalは9である
int val = x * x;
if (x > 0) { ↑本研究の対象
val += x;
} else {
この分岐は実行されない
val -= x;
}
return val + 5; 出力は5以上である
}
出力変数だけでなく,内部変数もオラクルに利用することで, 4
テストの結果が改善できる (Staats, 2011)
8. 前提知識:ミューテーションテスト(2/2)
ミュータント:プログラムの一部を変換して欠陥を埋め込んだもの
テスト1
ミュータント1 欠陥
assertEqual( int doubledDiff(int a, int b) {
成功
1, doubledDiff(1, 0)); int c = a - b;
成功 int d = a – b;
テスト2 return c * d; }
assertEqual( 失敗
ミュータント2
12, doubledDiff(4, 2)); 失敗
int doubledDiff(int a, int b) {
テスト3 int c = a + b;
失敗 int d = a – b;
assertEqual( 成功 return c / d; }
5, doubledDiff(3, 2));
欠陥
8
テスト2が良い(欠陥発見能力が高い)とわかる
11. 1. ミュータントの生成
一般的なミューテーションテスト[1]の手法通り
演算子(+, -, *, /, !, ==, など)の置換
Boolean値の反転
定数の置換
など 演算子の置換
int doubledDiff(int a, int b) { int doubledDiff(int a, int b) {
int c = a + b; int c = a - b;
int d = a – b; int d = a – b;
return c * d; } return c * d; }
プログラム ミュータント
11
[1] An analysis and survey of the development of mutation testing,
Yue Jia, Mark Harman(2010, IEEE Software Engineering)
34. 参考文献
ミューテーションテスト
[1] An analysis and survey of the development of mutation testing,
Yue Jia, Mark Harman(2010, IEEE Software Engineering)
がとても詳しい.2010出版で,既に120披引用
マシンパワーの増加もあって,最近流行っている?
集合被覆問題の貪欲法による解法
[2] A Greedy Heuristic for the Set-Covering Problem
V. CHVATAL(1979, Mathematics of Operations Research)
有名な解法なので,ぐぐると日本語資料もたくさんある 34
35. 参考文献
MC/DCカバレッジ
[3] DO-178B, Software Considerations in Airborne Systems and
Equipment Certification
RTCA(Requirements and Technical Concepts for Aviation ), 1992
厳格なテストを必要とした航空業界の人々が提案
構造カバレッジメトリクスを満たすための,
モデル検査器を用いたテストケース自動生成
[4] Coverage Based Test-Case Generation using Model Checkers
Sanjai Rayaduragam, Mats P.E. Heimdahl, 2001,
35
IEEE Int’l Conf. on Engineering of Computer Based Systems
36. 著者(MATT STAATS)による関連研究
[5] “Programs, tests, and oracles: the foundations of
testing revisited” Matt Staats, Michael W. Whalen,
Mats P. E. Heimdahl (ICSE 2011, Distinguished Paper)
- テストオラクルも含めてテスティングの枠組みを再考しよう!
[6] “Better testing through oracle selection” Matt
Staats, Michael W. Whalen, Mats P. E. Heimdahl
(ICSE 2011(New Ideas and Emerging Results Track))
- テストオラクルの選択でテストの欠陥発見能力が変わること
を調べたよ!
36
発表論文は,上記2つの論文を元にしたもの