ソフトウェアの品質とテスト
ソフトウェアの品質についてお勉強が必要になったため、いい本を探してました。
とりあえず、本屋さんで目についたこの本を読んでみました。
- 作者: ジェームズ・ウィテカー,ジェーソン・アーボン,ジェフ・キャローロ,長尾高弘
- 出版社/メーカー: 日経BP社
- 発売日: 2013/05/23
- メディア: 単行本
- この商品を含むブログ (8件) を見る
以下、自分の理解と思った事を混ぜてまとめました。
品質とは
- 「品質」とは、何も無い状態が最もいい状態。
- 設計が始まった直後から品質が低下する可能性が増えていく。
- コードが追加/変更される事によって品質の低下が具体化する。
- 設計不備、コードの誤り、などなど
- 「テスト」という手段で、品質の低下を抑止/改善する。
テストとは
- 品質の低下を抑止/改善する手段。
- 対象の「製品」の品質を維持/改善する事がゴール。
- テストの結果をまとめた成果物が目的ではない。
- 開発ペースを遅くする摩擦をもつものであってはならない。
テストチームの役割
テストすること
や品質の維持
を目的としない。開発者がテストしやすい環境
を作り、開発者の生産性を向上する
事をめざす。
開発者と品質の関係
- ソフトウェアの品質は
開発者
が責任を持つ- テストチームだけの責任ではない。
テストプロセス(行程)
各テストプロセス(行程)は、テストの対象/範囲を明確に定義しておく。
- 呼び方/名称はなんでもいい。
- 関係する人全員が意識を共有出来ている事が大事。
人間の直感/思考を挟まなくても解けるなら、自動化すべき。
- できるとこから少しずつ。
- 「人間の思考領域の一歩手前」までを自動化するを目標に
設計思想
- 単純性と統一性を守る
いろいろと勉強になりました。
読みながら参考になったページに付箋ペタペタ貼ってたら、付箋だらけになってました。
もっと早く読めばよかった。
UIWebViewでload失敗する件
iOSアプリon iOS7 でUIWebViewで指定されたNSURLをロードする動作に失敗する話。
この話は対策がまだ見えてません。
NSString から [NSURL URLWithString:]で作ったNSURLを使って作ったNSURLRequestでloadしてます。
iOS7のsimulator、実機 with iOS7では動作してました。
しかし、test flight経由でinstallしたアプリではUIWebViewで指定したURLがloadされない...。
Organizerのconsoleで見てみると、以下のようなログが出てました。
<Warning>: void SendDelegateMessage(NSInvocation *): delegate (webView:decidePolicyForNavigationAction:request:frame:decisionListener:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode
ただいま、原因を調査中... 。
UITableViewCellのprepareForReueseではsuperを呼ぶこと
UITableViewCellのカスタムクラスを使っているとき、prepareForReuseをoverrideして自身の必要な情報を初期化する。
このとき、superを呼び出していないと、cellの状態がきちんと初期化されない様子。
具体的には、UITableViewから deleteRowsAtIndexPaths:withRowAnimation: でrowを削除した後、同じrowを作ると初期状態で表示されない(削除なボタンが表示されたままな状態になる)
これまでのiOS6まででは特に問題なかった気がする。
iOS7からはきちんとsuperを呼ばないといけないのかも。
イヤフォンチップを初めて使ってみたらいい感じだった
ずっと迷ってようやく買った Jaybird BlueBuds X とかいうbluetooth イヤフォンを使ってます。
Jaybird BlueBuds X Bluetooth Earphones (Storm White)[並行輸入品]
- 出版社/メーカー: Jaybirtd
- メディア: エレクトロニクス
- この商品を含むブログを見る
せっかくいいお値段のイヤフォンを使ってるので、汚れやすい耳に入れる部分を買い替えられるイヤフォンチップを使ってみようと思いました。
yodobashi.comで見かけた Comply Tx-500 とかいうものを買ってみてつけてみるといい感じでした。
Comply (コンプライ) イヤホンチップ Tx-500 ブラック Lサイズ (3ペア)
- 出版社/メーカー: Comply (コンプライ)
- メディア: エレクトロニクス
- この商品を含むブログを見る
大きさはS、M、Lの三種類あるみたいですが、Lサイズを購入。
いざ Tx-500のイヤフォンチップをJaybird BlueBuds Xにつけてみようとしたところ、 どうみてもTx-500の方が穴が小さくて入らなさそう...。
でも、Tx-500は伸縮性があるため、ちょっと広げてから力を混めて入れてみると入ってくれた。
Tx-500は伸縮性があるため耳の穴にピッタリとフィットしてくれるし、耳垢ガードついてるしでいいお買い物しました。
二段階認証
Providing your 2FA security code
githubさんが二段階認証を始めたらしい。
Google Authenticatorが使えるのだけど、仕組みが気になってぐぐってみた。
Googleの2段階認証で使われているOTPの仕様が気になった
なるほどねー。
Developer CenterはSafariで見た方がいいらしい
Developer CenterにあるProvisioning Profileを更新する画面を使おうとしてると、どうしても画面が進まなくなる事があった。
よく観察してみると、どうやらchrome on macで操作しているとjavascriptのエラーが出ていて動いてくれていなかった。
数時間悩んだ挙げ句、safari on macを使ってみるとすんなり動いた。