Nishimoto osh2014: Test driven development and accessibility

25
テスト駆動開発と アクセシビリティ(仮) 西本卓也 @24motz NVDA日本語チーム 2014-02-01 オープンセミナー2014広島 懇親会LT

description

テスト駆動開発と アクセシビリティ(仮) 西本卓也 @24motz NVDA日本語チーム 2014-02-01 オープンセミナー2014広島 懇親会LT

Transcript of Nishimoto osh2014: Test driven development and accessibility

Page 1: Nishimoto osh2014: Test driven development and accessibility

テスト駆動開発とアクセシビリティ(仮)

西本卓也@24motz

NVDA日本語チーム

2014-02-01オープンセミナー2014広島懇親会LT

Page 2: Nishimoto osh2014: Test driven development and accessibility

今年のテーマ TDD & AGILE

•むりやりこじつけてNVDAの話をする

• Windows 用のスクリーンリーダー• オープンソース

•日本語版は本家版のfork

• 2013年にやっと日本語化が完成

•現在は本家3か月ごとのラピッドリリースに追従

Page 3: Nishimoto osh2014: Test driven development and accessibility
Page 4: Nishimoto osh2014: Test driven development and accessibility
Page 5: Nishimoto osh2014: Test driven development and accessibility
Page 6: Nishimoto osh2014: Test driven development and accessibility
Page 7: Nishimoto osh2014: Test driven development and accessibility
Page 8: Nishimoto osh2014: Test driven development and accessibility
Page 9: Nishimoto osh2014: Test driven development and accessibility
Page 10: Nishimoto osh2014: Test driven development and accessibility
Page 11: Nishimoto osh2014: Test driven development and accessibility
Page 12: Nishimoto osh2014: Test driven development and accessibility
Page 13: Nishimoto osh2014: Test driven development and accessibility
Page 14: Nishimoto osh2014: Test driven development and accessibility

Webの自動テスト Selenium

• NVDA

• Firefox

• Python

# coding: utf-8from __future__ import unicode_literalsfrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.action_chains import ActionChainsimport timebaseUrl = 'http://www.nvda.jp'driver = webdriver.Firefox()driver.get(baseUrl + '/index.html')assert "NVDA日本語版ダウンロードと説明" in driver.titleActionChains(driver).send_keys(Keys.TAB).perform()time.sleep(3)ActionChains(driver).send_keys(Keys.TAB).perform()time.sleep(3)ActionChains(driver).send_keys(Keys.TAB).perform()time.sleep(3)ActionChains(driver).send_keys('2').perform()time.sleep(5)

ActionChains(driver).send_keys('2').perform()

Page 15: Nishimoto osh2014: Test driven development and accessibility

UI Automation

• Microsoftの技術

• ソフトウエアの自動テスト

• スクリーンリーダーとアプリケーションの通信• Windowsナレーター

• Appleにも同じ名前の技術がある

Page 16: Nishimoto osh2014: Test driven development and accessibility
Page 17: Nishimoto osh2014: Test driven development and accessibility
Page 18: Nishimoto osh2014: Test driven development and accessibility
Page 19: Nishimoto osh2014: Test driven development and accessibility

テスト駆動と自然言語処理

•自動点訳エンジンの開発

•音声合成エンジンのテキスト解析を流用

•複雑であいまいな点字表記の規則

• コーパス?テストケース?

Page 20: Nishimoto osh2014: Test driven development and accessibility

{ 'note': '+ 基本テスト +' },{

'input': 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨン',

'output': '⠁⠃⠉⠋⠊⠡⠣⠩⠫⠪⠱⠳⠹⠻⠺⠕⠗⠝⠟⠞⠅⠇⠍⠏⠎⠥⠧⠭⠯⠮⠵⠷⠽⠿⠾⠌⠬⠜⠴',

'inpos1': [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],

'cursorPos': 0,'brlCursorPos': 0,

},{

'input': 'ガギグゲゴザジズゼゾダジズデドパピプペポキャキュキョチャチュチョヒャヒュヒョジャジュジョピャピュピョ',

'output': '⠐⠡⠐⠣⠐⠩⠐⠫⠐⠪⠐⠱⠐⠳⠐⠹⠐⠻⠐⠺⠐⠕⠐⠳⠐⠹⠐⠟⠐⠞⠠⠥⠠⠧⠠⠭⠠⠯⠠⠮⠈⠡⠈⠩⠈⠪⠈⠕⠈⠝⠈⠞⠈⠥⠈⠭⠈⠮⠘⠱⠘⠹⠘⠺⠨⠥⠨⠭⠨⠮',},{

'text': '1234567890','input': '1234567890','output': '⠼⠁⠃⠉⠙⠑⠋⠛⠓⠊⠚','inpos2': [0,1,2,3,4,5,6,7,8,9],'inpos1': [0,0,1,2,3,4,5,6,7,8,9],

Page 21: Nishimoto osh2014: Test driven development and accessibility
Page 22: Nishimoto osh2014: Test driven development and accessibility
Page 23: Nishimoto osh2014: Test driven development and accessibility

{ 'note': '=== その2 複合語 ===' },{ 'note': '1.区切ると意味の理解を損なう短い複合語や短い略語は、一続きに書く。' },{

'comment': '点訳のてびき第3版第3章その2 1','text': '朝夕', 'input': 'アサユー'},

{ 'note': '【備考】内部に助詞などを含んでいても、1語として熟している短い複合語は一続きに書く。{

'comment': '点訳のてびき第3版第3章その2 1 備考','text': '息の根', 'input': 'イキノネ'},

{ 'note': '2.接頭語・接尾語・造語要素と自立語の間は続けて書く。' },{

'comment': '点訳のてびき第3版第3章その2 2','text': '相たずさえる', 'input': 'アイタズサエル'},

{'comment': '点訳のてびき第3版第3章その2 2','text': '各種', 'input': 'カクシュ'},

{

Page 24: Nishimoto osh2014: Test driven development and accessibility

TDDの心理学

•即座にフィードバックを得る

•書いたコードに自信を持つ

• これから書くコードに自信を持つ

•健康

•正しさ・正直さ

• モチベーション

Page 25: Nishimoto osh2014: Test driven development and accessibility

チクセントミハイのフロー理論

フロー

退屈

不安

無感動

挑戦

技能 high

high