[Android][iOS]Awesome tips

Headless simulators

Appium(with WDA) can run headless simulators isHeadless against Xcode9+.
Awesome: https://github.com/appium/appium-xcuitest-driver/pull/472/files

composer, swarmer and mainframer

Replace Spoon for Espresso.

[Mobile]Security Testing tools

[Kotlin]SoftAssertions with Kotlin and AssertJ

Hi there,

Do you know soft assertions provided by AssertJ?

In many cases, one test case has one assertion.
But sometimes we’d like to collect some assertions within one assertion, and then we can use SoftAssertions() for the purpose.

Of course, we can use AssertJ in JUnit. In addition, we can use it in Kotlin like the following.

SoftAssertions().apply {
  assertThat(1 + 1).isEqualTo(1)
  assertThat(1 + 3).isEqualTo(2)
  assertThat(1 + 1).isEqualTo(3)
}.assertAll()

So useful syntax 🙂

「The Art Of Software Testing 3rd Edition」を読んだ。

The Art Of Software Testing 3rd Editionを読んだ。

翻訳がされている2版との、大きく差分になっている箇所を主に。その主に増えていたのは、Agileの話とモバイルの話。3版であるこの本は、2011年に出ているので、モバイルが流行りだした前後になるのでしょうか。

Agileは、Agile Manifestoや、XPの話が紙面を割いていたことが印象的でした。モバイルは、Connectivity、Diversity Devices、Device Constraint、Input Devices、Installation and maintainceといった特性から入り、実機などの話や挑戦的なところの話が含まれていた。

いずれも、私個人の経験としてはずれていない話だったのですんなり読むことができた。これは、なるべくは特にテスト界隈に触れる人たちには読んで欲しいものの1つですね。

XPの話がこのソフトウェアテストの話にもでるように、やっぱり技能としてはプログラミング能力の必要性は高いのだろうな。

「ソフトウェア・グローバリゼーション入門」を読んだ

ソフトウェア・グローバリゼーション入門  I18NとL10Nを理解する を読んだ。

2017/07/11現在のものです。まだβ版らしいですね。

I18NやL10Nから入り、G11Nへ続く入門としてとてもまとまっていて良かったです。
断片的に知っていることも、知らないことも含めて学ぶことができました。

ゲーム業界でよく言われるカルチュライゼーションや、翻訳コンテンツの品質の話、質を向上させるために どのような情報・コンテキストの共有が必要か といったこと。
また、ある有名企業における L10N をどのように 開発プロセスに組み込んでいるか と行ったちょっとした例も。

そのほか、よく誤りやすい日付や時刻の話もちゃんと記載されていました。他には文化的なものや、慣習(数字の数え方とか…)。

翻訳の質を評価する方法としてのAccuracy、Fluency、Terminology、Style、Design、Locale convention、Verityや、 エラー評価の体系的な参考の存在 など。

こういう分野は世界を見ると避けては通れないところである上に、膨大な知見が必要になるはずなので、この手の方向性を持つエンジニアは今後重宝されるのではなかろうか…

Continuous Localization系の、モバイルアプリに関するものは現段階で見当たらないので、何か作りたいですね。作れるかな…実際、こうなると最高という形は思い描けていても、それを実現するための技術的な制約が大きすぎる…

[Appium]Get invisible elements

uiautomator2 start supporting findInvisibleElement.
https://github.com/appium/appium-uiautomator2-server/issues/61

After the following method, you can get invisible elements from uiautomator2.

update_settings allowInvisibleElements: true

https://github.com/appium/ruby_lib/blob/cc913edb4bc24c18a58c2c5490dfb7b5a705d303/lib/appium_lib/common/command.rb#L46

「ソフトウェア要求のためのビジュアルモデル」を読んだ

ソフトウェア要求のためのビジュアルモデル を読んだ。

数年前の積読に目を通してみた。

この書籍は、RML(Requirements Modeling Language)(要求モデル)をどのように区分し、どう使えるかをまとめながら、要求をモデリングしていく手段を提供している。システム開発全体の中で、目標、人間、システム、データのそれぞれに焦点を当てながらモデリングする手段を整理している。様々な知見を有していると特別目新しいものは少ないが、それぞれに対して実際に例を提示しながら説明しているところがとても良いと感じた。

  • 目標
    • システムのビジネス価値に対して、要求とフィーチャーに優先順位をつける
      • ビジネス目標モデル
      • 目標チェーン
      • KPIモデル
      • フィーチャーツリー
      • 要求マッピングマトリクス
    • 目標空間の境界を定める
  • 人間
    • システムの利用者を、ビジネスモデルと目標とともに表現する
      • 組織図
      • プロセスフロー
      • ユースケース
      • 役割権限マトリクス
    • 人間空間の境界を定める
  • システム
    • ユーザインタフェースの外観、システムの相互作用やその振る舞いを表現する
      • エコシステムマップ
      • システムフロー
      • ユーザインタフェースフロー
      • 表示アクション応答モデル
      • デシジョンテーブル
      • デシジョンツリー
      • システムインターフェーステーブル
    • システム空間の境界を定める
  • データ
    • データのライフサイクルを表現し、様々なレポートとしてデータを使えるかを示す
      • ビジネスデータダイアグラム
      • データフローダイアグラム
      • データディクショナリ
      • 状態遷移表
      • 状態遷移図
      • レポートテーブル
    • データの空間の境界を定める