SlideShare a Scribd company logo
国際会議で学んだ
  “Mutation testing”
          takehikom
          2013年2月
このファイルは,大学院ゼミ向けに2012年10月に作成した
内容をWeb公開にあたり改変したものです.


                                1 /10
国際会議 JCKBSE 2012
• 2012年8月23~26日,
  ロドス(ギリシャ)にて
• Joint Conference on Knowledge-
  Based Software Engineering
     2年おきに欧州で開催
      前回はカウナス(リトアニア)
     日本人参加者が多い
     出席して初日に座長(session chair)を務め,2日目に
      発表し,guided tourは寝過ごして参加できず


                                     2
Mutation testing
• 関心を持った経緯
    座長を担当した,最初の質疑が噛み合わず
     • 「ソースを改変して,なぜ良くなるの?」
    2つの論文とWebの情報を通じて,面白さを理解
     • M. Papadakis and N. Malevris: Killing mutants effectively - a
       search based approach, Proc. JCKBSE 2012, pp.217-226,
       doi:10.3323/978-1-61499-094-9-217.
     • R. Lacanienta, S. Takada, H. Tanno, X. Zhang and T. Hoshino:
       A mutation test based approach to evaluating test suites for
       Web applications, Proc. JCKBSE 2012, pp.227-236,
       doi:10.3323/978-1-61499-094-9-227.


                                                                       3
ソフトウェアテスト
                         Test suite


Test case 1   Test case 2             ...   Test case n

【 ソースコード 】
…
y = x + 1;
…


Output 1      Output 2                ...   Output n


                         出力が期待したものと異なる
                         ⇒ソースコードを修正                       4
Mutation testing
                        Test suite


Test case 1    Test case 2           ...       Test case n

【 Original 】           1か所だけ          【Mutant】                Mutantは
…                     改変 (mutant      …                      多数作られる
                        operator)                            ランダムでは
y = x + 1;                            y = x – 1;               ない
…                                     …


Output 11
 Output        Output 22
                Output               ...       Output nn
                                                Output

                        出力が異なる
                        ⇒mutantはkilled                           5
killできないmutant
• (あるテストケースで)出力が異なる ⇒ killed
• では,出力が同じなら?

• Unkilled mutant
     テストスイートを充実させれば,killedになる.
• Equivalent mutant
                              【 Original 】   【Mutant】
     どんなにテストスイートを            …              …
      充実させても,killedに          x = y;         x = y;
      ならない.                   if (z < y)     if (z < x)
     例(Lacanienta et al.):   …              …
                                                          6
スコアの算出                   unkilledかequivalentか
                                              の識別は…
                                       “one of biggest obstacles”
• 4種類のmutantの関係                             (ムズい!)




                       #(killed)
• Mutation score =
                   #(non-equivalent)
     Mutation score = 1
      ⇒ non-equivalentならばkilled
      ⇒ テストはコード全体を網羅している
     Mutation score < 1
      ⇒ non-equivalentかつunkilledなmutantがある
      ⇒ テストスイートを充実させる必要あり
                                                            7
Mutation testingから学んだこと
 • ソフトウェアの品質を向上させたい.


 • テストスイートが,ソースコードの
   すべてを網羅するようにしたい.


 • ソースコードを改変してテストする
   ことで,網羅率が算出できる.
           Mutantは,テストスイートを
           より良くさせる手段となるが,
           直接ソースコードを改善しない.    8
関連情報
• http://en.wikipedia.org/wiki/Mutation_testing
• http://www.simple-talk.com/dotnet/.net-
  tools/mutation-testing/
• http://d.hatena.ne.jp/takehikom/20120829/134625
  2399

• 画像の出典
     http://www.mofa.go.jp/mofaj/area/greece/
     http://en.wikipedia.org/wiki/Mutation

                                                    9
おしまい!
  10

More Related Content

Similar to Mutation Testing (Aug 2012)

ソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テストソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テスト
Toru Tamaki
 
ユニットテスト 1日目
ユニットテスト 1日目ユニットテスト 1日目
ユニットテスト 1日目
Yoshiki Shibukawa
 
R Study Tokyo03
R Study Tokyo03R Study Tokyo03
R Study Tokyo03Yohei Sato
 
xUnit Test Patterns - Chapter16
xUnit Test Patterns - Chapter16xUnit Test Patterns - Chapter16
xUnit Test Patterns - Chapter16
Takuto Wada
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suharasleepy_yoshi
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suharasleepy_yoshi
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
Shinichi Hirauchi
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
Hiroshi Yamashita
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとはTakuya Akiba
 

Similar to Mutation Testing (Aug 2012) (10)

ソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テストソフトウェア工学2023 11 テスト
ソフトウェア工学2023 11 テスト
 
ユニットテスト 1日目
ユニットテスト 1日目ユニットテスト 1日目
ユニットテスト 1日目
 
R Study Tokyo03
R Study Tokyo03R Study Tokyo03
R Study Tokyo03
 
xUnit Test Patterns - Chapter16
xUnit Test Patterns - Chapter16xUnit Test Patterns - Chapter16
xUnit Test Patterns - Chapter16
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suhara
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suhara
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
 

Recently uploaded

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 

Recently uploaded (16)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 

Mutation Testing (Aug 2012)

  • 1. 国際会議で学んだ “Mutation testing” takehikom 2013年2月 このファイルは,大学院ゼミ向けに2012年10月に作成した 内容をWeb公開にあたり改変したものです. 1 /10
  • 2. 国際会議 JCKBSE 2012 • 2012年8月23~26日, ロドス(ギリシャ)にて • Joint Conference on Knowledge- Based Software Engineering  2年おきに欧州で開催 前回はカウナス(リトアニア)  日本人参加者が多い  出席して初日に座長(session chair)を務め,2日目に 発表し,guided tourは寝過ごして参加できず 2
  • 3. Mutation testing • 関心を持った経緯  座長を担当した,最初の質疑が噛み合わず • 「ソースを改変して,なぜ良くなるの?」  2つの論文とWebの情報を通じて,面白さを理解 • M. Papadakis and N. Malevris: Killing mutants effectively - a search based approach, Proc. JCKBSE 2012, pp.217-226, doi:10.3323/978-1-61499-094-9-217. • R. Lacanienta, S. Takada, H. Tanno, X. Zhang and T. Hoshino: A mutation test based approach to evaluating test suites for Web applications, Proc. JCKBSE 2012, pp.227-236, doi:10.3323/978-1-61499-094-9-227. 3
  • 4. ソフトウェアテスト Test suite Test case 1 Test case 2 ... Test case n 【 ソースコード 】 … y = x + 1; … Output 1 Output 2 ... Output n 出力が期待したものと異なる ⇒ソースコードを修正 4
  • 5. Mutation testing Test suite Test case 1 Test case 2 ... Test case n 【 Original 】 1か所だけ 【Mutant】 Mutantは … 改変 (mutant … 多数作られる operator) ランダムでは y = x + 1; y = x – 1; ない … … Output 11 Output Output 22 Output ... Output nn Output 出力が異なる ⇒mutantはkilled 5
  • 6. killできないmutant • (あるテストケースで)出力が異なる ⇒ killed • では,出力が同じなら? • Unkilled mutant  テストスイートを充実させれば,killedになる. • Equivalent mutant 【 Original 】 【Mutant】  どんなにテストスイートを … … 充実させても,killedに x = y; x = y; ならない. if (z < y) if (z < x)  例(Lacanienta et al.): … … 6
  • 7. スコアの算出 unkilledかequivalentか の識別は… “one of biggest obstacles” • 4種類のmutantの関係 (ムズい!) #(killed) • Mutation score = #(non-equivalent)  Mutation score = 1 ⇒ non-equivalentならばkilled ⇒ テストはコード全体を網羅している  Mutation score < 1 ⇒ non-equivalentかつunkilledなmutantがある ⇒ テストスイートを充実させる必要あり 7
  • 8. Mutation testingから学んだこと • ソフトウェアの品質を向上させたい. • テストスイートが,ソースコードの すべてを網羅するようにしたい. • ソースコードを改変してテストする ことで,網羅率が算出できる. Mutantは,テストスイートを より良くさせる手段となるが, 直接ソースコードを改善しない. 8
  • 9. 関連情報 • http://en.wikipedia.org/wiki/Mutation_testing • http://www.simple-talk.com/dotnet/.net- tools/mutation-testing/ • http://d.hatena.ne.jp/takehikom/20120829/134625 2399 • 画像の出典  http://www.mofa.go.jp/mofaj/area/greece/  http://en.wikipedia.org/wiki/Mutation 9