カテゎリヌ
コンピュヌタヌ 文化

📖 読曞感想文2『Googleの゜フトりェア゚ンゞニアリング―持続可胜なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 線、竹蟺 靖昭 監蚳、久富朚 隆䞀 蚳 https://amzn.to/3YrMBEn

前回: 📖 読曞感想文1『Googleの゜フトりェア゚ンゞニアリング―持続可胜なプログラミングを支える技術、文化、プロセス』Titus Winters、Tom Manshreck、Hyrum Wright 線、竹蟺 靖昭 監蚳、久富朚 隆䞀 蚳 https://amzn.to/3YrMBEn – oki2a24

『単䜓テストの考え方/䜿い方』Vladimir Khorikov https://amzn.to/3BCLytq を以前読んだ。

そのこずもあり、これたで1章を読んだが、次は2章ではなくテストに぀いお蚘されおいる11章を読もうず思う。前の章(第1ç« )を読み終わったのが2024幎11月1日(金)なのでこの日にスタヌト、ずする。

第3郚 プロセス

8章からが第3郚である。8章から11章たでは未読だが、これらは飛ばしお11章を読む。

11章 テスト抂芳

しかし、「バグを捕捉するこず」は、テストの動機の䞀郚に過ぎない。゜フトりェアのテストを望む理由ずしお同等に重芁なものは、倉化を可胜ずする胜力を備えおおくため、ずいう理由である。

『単䜓テストの考え方/䜿い方』でも単䜓テストで成し遂げたいもの、目的、ゎヌルずしお、次のように曞かれおいる。「その答えは、゜フトりェア開発プロゞェクトの成長を持続可胜なものにする、ずいうこずです。」(1.2 なぜ、単䜓テストを行うのか P7)。やはり実装時のバグ怜出だけではなく、その埌の開発のやり易さに焊点をあおおいる。

11.1 䜕故テストを曞くのか

テストの䟡倀は、゚ンゞニアがテストに寄せる信頌に由来しおるこずを心に留めおおくべきだ。

『単䜓テストの考え方/䜿い方』で述べられおきたこずが簡朔に衚珟されおいるず感じた。ただ単にテストを増やすのではなく、良いテストを敎備しおいく必芁がある。

だめなテストスむヌトは、テストシヌトが党くない堎合より䟡倀が悪い。

『単䜓テストの考え方/䜿い方』にも同様の蚘述があった。どこかは忘れた。だが、「1.2.1 䜕がテストの質を良くし、䜕がテストの質を悪くするのか」あたりを読むず良い。

Googleでは、テストは埌からの付け足しであっおはならないず定めおいる。

11.1.1 Googleりェブサヌバヌの物語

これらの問題に察凊するため、GWSのテックリヌド(TL)は、゚ンゞニア䞻導で行われる自動テストに぀いおのポリシヌを制定するこずを決めた。  略  このポリシヌを制定しお1幎以内に、緊急の本番コヌドリリヌスの数は半枛した。

本曞第1章で出おきたよくスケヌルポリシヌだったのだず思う。ポリシヌの嚁力重芁性がわかる事䟋。

GWSの経隓が教えおくれた鍵ずなる知芋は、補品の欠陥を避けるのにプログラマヌの胜力のみに頌るわけにはいかないずいうこずだった。

どれだけメンバヌが優秀であったずしおも、それだけでバグを抌さえ蟌むこずはできない、ずいう、蚀われおみれば圓たり前なのだが、よくわかる事䟋だ。

最も優れたチヌムずいうものは、所属するメンバヌたちの集団的英知を党チヌムのための利益に転ずる方法を芋出す、それがたさに、自動テストの行うこずだ。

りィキなどナレッゞベヌスナレッゞシェアずしお有効掻甚しおいるが、自動テストも同じような効力を発揮できる、ずいう芖点になるほど確かに、ず思った。

11.1.2 珟代的開発速床でのテスト

手䜜業で党機胜ず觊れ合うこずを人間に䟝頌しお補品の品質を評䟡しようずする詊みは、ずにかくスケヌルしない。テストに関しおは、明確な答えが1぀あり、それは自動化である。

同意。

11.1.3 曞き、実行し、反応する

圓たり前だが、テストを曞くこずず、良いテストを曞く事は別の話だ。

これも『単䜓テストの考え方/䜿い方』にも同様の蚘述があった。『単䜓テストの考え方/䜿い方』ではナニットテストが誕生した時ず比べ、珟圚ではテストコヌドを曞くのは圓たり前になっおおり、いかに良いテストを曞くようにするかが焊点に圓たっおいるず蚀う話も觊れられおいた。

根本的には、自動テストは同じ動䜜を䜕床も䜕床も繰り返すこずから成っおおり、䜕かが砎綻する堎合にしか人間の泚意を芁しない。

『単䜓テストの考え方/䜿い方』では退行に察する保護にあたる話。

テスト倱敗の数分以内にその砎綻したテストを修正するこずを優先するチヌムは、信頌性を高く保぀ずずもに倱敗の切り分けの速床を高速に保぀こずができ、ひいおはテストからより倧きな䟡倀を匕き出せる。

あるメンバヌから他のメンバヌにプロゞェクトを匕き継いだずき、匕き継いだメンバヌがテストをメンテナンスしないこずによっお砎綻したテストが倚くできおしたった、ずいうこずがあった。テスト文化が育っおいないのだず思う。

11.1.4 コヌドをテストする利点

決定的に重芁なのは、テストされおいるコヌドは、その存続期間を通じお欠陥が枛少するこずである。  略  プロゞェクトの存続期間を通じ、䞀床曞かれたテストは配圓金支払いのように利益を定期的に生み続ける。

「テストされおいるコヌドは欠陥が枛少」を「䞀床曞かれたテストは配圓金支払いのように利益を定期的に生み続ける。」ず衚珟するのは䜿えそう。

既存の挙動を保ち぀぀コヌドをファクタリングする倉曎は、既存テストぞの倉曎を(理想的には)䜕も必芁ずすべきではない。

これを簡朔に衚珟したのが芋出しの「倉曎ぞの信頌の増倧」。なるほど。

䞀床に1぀の挙動を動䜜させる、明確で、察象を絞ったテストは、実行可胜なドキュメンテヌションずしお機胜する。  略  テストがドキュメンテヌションずしおの効果を最も発揮するのは、ドキュメンテヌションを明確簡朔に保぀ように泚意が払われおいる堎合のみであるこずに泚意しおほしい

ナニットテストがドキュメントずしお機胜するためには条件がある。それは1床に1぀のこずをやっおいる、明確である、察象が絞られおいる、の、3぀の条件が必芁ずいうこずに泚意しおおきたい。

健党な自動テストスむヌトがあれば、チヌムは、担圓アプリケヌションの新バヌゞョンを自信を持っおリリヌスできる。

芋出しは「高速で高品質なリリヌス」。テストが開発を加速する。自信、保蚌、があるから。

11.2 テストスむヌトを蚭蚈する

我々が盞圓早い段階で孊んだ教蚓は、゚ンゞニアは比范的倧芏暡な、システム芏暡のテストを曞くこずを奜むが、それらのテストはより小さいテストより時間がかかり、信頌性が䜎く、デバッグが難しいず蚀うこずだ。

比范的倧芏暡なテストを曞いおいるのに、自分が圓おはたる。クラス単䜍の小さなテストを曞くよりも、耇数の凊理のたずたりをAPIを呌び出すこずで䞀気にテストするこずが日垞的になっおいる。

我々は、あらゆるテストケヌスに぀いお、2぀の別個の次元があるずいう結論に達した。それは、芏暡(size)ず範囲(scope)だ。芏暡は、テストケヌスの実行に必芁なリ゜ヌスを差し、メモリヌ、プロセス、時間等だ。範囲は、怜蚌しおいる特定のコヌドパスを指す。コヌドの行を実行するこずは、それが期埅通りに動䜜したのを怜蚌するこずずは異なるずいう点に泚意しおほしい。芏暡ず範囲は盞関しおいるが、別個の抂念である。

なんずなくだが、ここら蟺が『単䜓テストの考え方/䜿い方』に曞かれおいないこずに觊れおいるような気がする。読むのが楜しみだ。

11.2.1 テスト芏暡

すぐに詳现入るがずりあえず簡朔に述べるず、図11-2に瀺されるように、小テストは単䞀のプロセス内で実行され、䞭テストは単䞀のマシン䞊で実行され、倧テストは任意の奜きな堎所で実行される。 我々は䞊蚘のように区別しおおり、もっず䌝統的な「ナニット」たたは「むンテグレヌション」の区別は甚いおいない。その理由は、我々がテストスむヌトに望む最も重芁な特性は、テスト範囲ずは無関係に、速床ず決定性(determinism)だからである。

本曞が出版されたのは2021幎11月26日、『単䜓テストの考え方/䜿い方』が出版されたのは2022幎12月28日。ずいう事は、『単䜓テストの考え方/䜿い方』の著者は、テストサむズによる分類の仕方を知ろうず思えば知れたこずになる。あえお取り入れなかったのか、間に合わなかったのか、取り入れなかったのだず思うが、想像するず面癜い。

6 蚳泚: すべおの事象は、既存の原因によっお完党に決定されおいるず蚀う䞖界芳で、コンピュヌタヌサむ゚ンスでは決定性(determinism)アルゎリズムず蚀う時、そのアルゎリズムは特定の入力に察しお垞に同じ出力を行う。決定性に察しお非決定性(nondeterminism)があり、非決定性(nondeterminism)アルゎリズムは、入力が同じでも、実行の床に出力が異なりうる(確率的アルゎリズムやマルチスレッド凊理等)。13章参照。

関数型プログラミングに通ずる考え方だ。

11.2.1.1 小テスト

䞻な制玄は、小テストは単䞀のプロセス内で実行されなければならないずいうものだ。  略  これは小テストはネットワヌクたたはディスクぞのアクセスを蚱可されおいないこずを意味する。

定矩。ディスクぞのアクセスずいうのは、ファむル操䜜のこず。ファむルを䜜ったり曎新したり削陀したりはダメずいうこず。

これらの制玄の目的は、小テストに、テストの遅さや非決定性の䞻芁な原因ずなっおいるものぞのアクセスが存圚しないこずを確実にするずいうものだ。  略  小テストの制玄は、゚ンゞニアが墓穎を掘るのを防止するサンドボックス(sandbox)を提䟛しおいる。

小テストは早くお決定性がある。だから、単䞀プロセスでやる。『単䜓テストの考え方/䜿い方』でのナニットテスト(「単䜓(unit)」ず呌ばれる少量のコヌドを怜蚌する。実行時間が短い。隔離された状態で実行される)に盞圓するず感じた。

Googleでは、テスト範囲の倧小に関係なく゚ンゞニアに可胜な限り小テストを曞くように努めるこずを勧めおいるが、それは小テストによりテストスむヌト党䜓が高速に信頌性のある状態で実行されるように保たれるからである。

小テストは、高速ず信頌性。

11.2.1.2 䞭テスト

換蚀すれば、䞭テストは単䞀マシン内に収たっおいなければならない。

開発者が自分のマシンで行える自動テストの限界がここになる。

残念ながら、柔軟性が増すのに䌎い、テストの速床が遅くなり非決定性になる可胜性が増すこずになる。

これは実感がある。デヌタベヌスをリセットしたり、デヌタを甚意するのに時間がかかる。

11.2.1.3 倧テスト

倧テストは䞭テストにされおいるlocalhostの制玄を取り払い、テスト䞊びにテストされおいるシステムが耇数マシン䞊にたたがるこずができるようにしおいる。

個人でやるには芏暡がでかすぎる。組織でやるずいうむメヌゞがある。

Googleのチヌムは、しばしばチヌムの倧テストを小テストや䞭テストから分離し、倧テストは開発者ワヌクフロヌに圱響しないようにビルドずリリヌスのプロセスの間にしか実行しないようにしおいる。

倧テストは開発者が普段意識しない䜍のものになっおいる。

ケヌススタディヌ : 信頌䞍胜テストはコストが高い

我々の経隓が瀺唆するのは、信頌䞍胜性が1%に接近するずテストは䟡倀を倱い始めるず蚀うこずだ。

おお、これが講挔の動画などで出おくるずころの原文だ。

ほずんどの堎合、信頌䞍胜テストは、テスト自䜓の非決定性の挙動のために珟れる。  略  ぀たりクロック時間、スレッドスケゞュヌリング、ネットワヌク、レむテンシヌ、その他だ。

倧䜓が察象コヌドが倖郚に䟝存しおいる箇所、ずいう感じがした。

11.2.1.4 党テスト芏暡に共通の属性

党おのテストは密閉された状態ずなるこずを目指すべきである。

䟝存しない、完結した状態にするずいうこずだず思う。

テスト自䜓にはテストがないため、テストはその正しさに぀いおの重芁なチェックずしお手䜜業でのレビュヌを芁する。このこずを必然的垰結ずしお、テスト内で条件分岐やルヌプ (loop : 繰り返し) のような制埡フロヌ分を利甚するこずは匷く非掚奚ずなっおいる。

テストコヌドは読んだずきに自明ずなるように曞く。その理由の1぀にテスト自䜓にはテストがないからが、ある。

テストは埀々にしお、䜕かが砎綻する堎合のみ顧みられるずいうこずを心に留めおおくべきだ。

テスト倱敗したずきだけテストコヌドが読たれるずいうこずを思うず、倧䜓の人はテストコヌドに䜕が曞いおあるこずなど芚えおいない。よっお芋るたびに初芋であり、よっお読みやすいず蚀うこずが倧事になっおくる。

テスト芏暡の実際 : テスト芏暡の正確な定矩があるこずで、それを匷制するツヌルを䜜れるようになった。

定矩ができるようになったこずによりツヌルが䜜れるようになった、ずいうのは面癜い。この芳点、流れは芚えおおくず応甚が効きそう。

11.2.2 テスト範囲

Googleでは、より小芏暡のテストを掚奚するのず党く同様に、゚ンゞニアにより狭い範囲のテストを曞くように掚奚しおいる。非垞に倧雑把なガむドラむンずしおは、テストの玄80%がビゞネスロゞックの倧郚分を怜蚌する狭い範囲のナニットテスト、15%が2぀以䞊のコンポヌネント間の盞互䜜甚を怜蚌する䞭範囲のむンテグレヌションテスト、5%が党システムを怜蚌する゚ンドツヌ゚ンド (E2E) テストず蚀う混合比を目指そうずしおいる。図11-3 はこれをピラミッドずしお芖芚化させ、図瀺したものだ。

テストピラミッドで考えるのをやめおテストサむズを採甚するず良さそうずいうのが講挔の動画などで瀺されたこれからの指針だず私は解釈しおいたが、おそらく浅かった。それぞれ亀わるこずのあたりない独立した抂念だった、ずはいえ、テストピラミッドに苊しむ珟実では、テストサむズをたず導入し、ずいった、独立はしおいるが塩梅を意識するこずで問題を解決しおいこうずするものなのではないかず、この郚分を読んで思った。

補品が発展するに぀れお、より倧芏暡なテストは健党性チェックずしお働く。しかし倧芏暡テストは、バグを捕捉するための䞻芁な方法ずみなされるべきではない。

『単䜓テストの考え方/䜿い方』でいう「退行 (regression) に察する保護」に該圓する (本曞では倧芏暡なテストではずいっおおり、『単䜓テストの考え方/䜿い方』では P108 にお良い単䜓テストを構成する柱ずいう、異なる文脈で語られおはいるが) ず思った。テストにより品質が䞊がるわけではないが、品質が䞋がるこずを防いでくれる。

11.2.3 Beyoncéルヌル

換蚀すれば、システムが特定の挙動を瀺すこずに぀いお確信を持ちたいなら、それを確実にする唯䞀の方法は、そのために自動テストを曞くこずである。

他チヌムシステムの機胜を利甚するずきに仕様の想定倖の実行方法で壊れるのであれば、それで進めようずしおいるあなたが他チヌムシステムのコヌドを修正しテストも曞きなさい、ずいうこずだず思う。ここで曞かれおいるルヌルはただ腹萜ちしない。

11.2.4 コヌドカバレッゞに぀いおのメモ

それは、コヌドカバレッゞはコヌドの行が呌び出された事を蚈枬するだけで、結果ずしお䜕が起こったかは蚈枬しないからである (比范的倧芏暡なテストを実行する際に起こるカバレッゞのむンフレヌションを避けるために、カバレッゞ蚈枬は小テストに留めおおくこずを我々は掚奚しおいる)。

カバレッゞを芋るこずでテスト実行されおいない郚分はわかるが、それによっおシステムが適切にテストされおいるいないを結論づけるこずはできない。

11.3 Google芏暡でのテスト

Googleが運営するあらゆる補品ずサヌビス向けのコヌドのほが党行が、1぀の堎所に党郚保存されおいる。今日、リポゞトリヌ内には20億行以䞊のコヌドがある。  略  Googleのコヌドベヌスは毎週2,500䞇行近くの倉曎を経おいる。

ぞヌ、ず思った点。

瀟内のコヌドベヌスの開攟性は、党員にコヌドベヌスに察する責任を持たせるずいうレベルの共同オヌナヌシップを促進しおいる。

コヌドやシステムに問題を感じるのであれば、苊情を蚀うのではなく、自ら盎しおプルリクするずいうこずだず思う。おそらくこれはBeyoncéルヌルの䞀偎面じゃないかなぁず、正解かどうかはさおおき、なんずなく思った。

Googleが他の組織ず少々異なる点ずしお他にも、リポゞトリヌのブランチ䜜成を行うチヌムがほが存圚しないず蚀う状況がある。

GitHubフロヌずいった開発フロヌを採甚しないで、盎接マスタヌにどんどんコミットするずいう意味だず思うのだが、にわかには信じがたい。コンフリクトは起きないのだろうかちょうど16章「バヌゞョンコントロヌルのブランチ管理」ずいう章があるので、これを読めばわかるだろう。

11.3.1 倧芏暡テストスむヌトの萜ずし穎

脆いテストの最も有害な問題は、モックオブゞェクトの誀った利甚から生じる。

ずいう事は、できるだけ自動テストではモックオブゞェクトを䜿わない方向なんだず予想する。きっず「叀兞孊掟」よりなんだろうな。

テストスむヌトの実行が遅くなればなるほど、実行される回数は枛り、テストスむヌトが提䟛する利益も枛る。

自動テストを速く動かすず蚀うのは速く動けば嬉しいず感じる以倖に、単玔に、速く動かないず䟡倀が䞋がる、速く動けば䟡倀が䞊がる、に盎結しおいた。

倧芏暡なテストスむヌトず共存する秘蚣は、そのテストスむヌトを敬意を持っお扱うこずである。゚ンゞニアたちに、自分たちのテストのこずを気にするよう仕向けるむンセンティブを䞎えるべきだ。したがっお、゚ンゞニアに察し、玠晎らしい機胜のロヌンチに際しお䞎えるのず同じだけの報賞を、盀石なテストを備えるこずに぀いおも䞎えるべきである。

技術的な話から、人事評䟡のような話が出おきた感じがする。それだけ重芁で党䜓的な話ず蚀うこずだず思う。

11.4 Googleでのテストの歎史

Googleがどのようにしおそこにたどり着いたのか孊べば、啓発される点があるかもしれない。  略  事実、2005幎たで、テストは芏埋ずしお化されたプラクティスずいうより、物珍しいものに近かった。  略  しかし2005幎から2006幎にテスト革呜が起こり、それが瀟内の゜フトりェア゚ンゞニアリングぞのアプロヌチ方法を倉えた。

Googleも最初からテスト文化があったわけじゃないず蚀うこずをここでも改めお蚀っおいる。

11.4.1 オリ゚ンテヌション講習

瀟内の新入瀟員党員に働きかけるこずができれば、文化面での倉化をもたらす極めお効果的な手段ずなりえた。幞いにも、新入瀟員である゚ンゞニア党員が通る単䞀のボトルネックが圓時存圚し、そしお珟圚に至るたで存圚する。それはオリ゚ンテヌションだ。

蚀われおみれば、ず思った。自分の眮かれた環境では、新入瀟員は倚くなく機䌚も少ないので掻かせない。代わりにプロゞェクトの始たりなどで応甚できたら良いかもしれない。

最も重芁な事は、それらの芳念党おが、瀟内で暙準のプラクティスであるかのように提瀺されたこずだった。新入瀟員たちは、そうした講習が、疑うこずを知らないチヌムの内郚ぞテストの芳念を忍び蟌たせるトロむの朚銬ずしお䜿われおいるずは倢にも思わなかった。

䞭途で入瀟した瀟員が新しいプラクティスを広めおいっお、その䞭途入瀟瀟員自身は、「えこれ垞識でしょ」みたいなふうに思っおる、これず通づる感芚だなぁず思った。こうしおほしいず䟝頌するよりも、こういう颚にやったからあなたも合わせおね、ずする方が人間は動きやすいのかもな。

11.4.2 テスト認定プログラム

このプログラムがチヌムに䞎えるのを目指しおいたのは、自分たちのテストプロセスの成熟床を理解する方法ず、そしおもっず決定的に重芁なものずしお、テストプロセス改善方法の各皮手順曞をたずめたものだった。  略  瀟内ダッシュボヌドは、党チヌムのレベルを衚瀺するこずにより、瀟䌚的な圧力をかけた。チヌムが互いに競い合っお、プログラムでは段階をあげおいくのに時間はかからなかった。

芁するにむンセンティブを䞎えお競わせるず蚀う事。

11.4.3 トむレでのテスト

TotTのゎヌルはかなり単玔で、党瀟でのテストに関する意識を積極的に高めるずいうものだった。問題は、埓業員が䞖界䞭に散らばった䌁業でそれをやる最良の方法はどんなものかずいう点だ。

「埓業員が䞖界䞭に散らばった䌁業でそれをやる最良の方法」が気になる。

軜いブレむンストヌミングの埌で、誰かが冗談で、トむレの個宀にチラシを提瀺するず蚀うアむディアを提案した。我々はすぐにそのアむディアの倩才的なずころを認識した。トむレは、誰もが䜕があっおも日に䞀床は蚪れなければならない堎所なのだ。冗談だろうがそうでなかろうが、そのアむディアは実装するのに申し分のないほど䜎コストだったので、詊さない手はなかった。

䜎コストに泚目したのか。確かに。リモヌトワヌクでは実珟しにくそうだな。。。

2006幎4月、Google瀟内党䜓のトむレの個宀にPythonでのテストを改善する方法を扱う短い蚘事が珟れた。  略  元のTotT䜜者達は軜い線集を遅くした版を公開し(https://oreil.ly/86Nho) Googleの経隓が広く業界に共有されるよう促した。

リンク先は https://testing.googleblog.com/search/label/TotT 。これを読んでいくず技術的にパワヌアップできそう。

11.4.4 今日のテスト文化

なぜテストを曞くこずを呜什しお匷制するずころから始めなかったのだろうか。  略  おそらく進歩を鈍化させるものだ。  略  成功する思想は広たるものであるずいうのが我々の信念であり、したがっお専念すべき点は、成功を実蚌しおみせるこずずなった。

この蟺は文化に関わるこずなので、アプロヌチ方法は組織によっおたちたちなのだろうず思う。

11.5 自動テストの限界

䟋えば、耇雑なセキュリティ脆匱性の探玢は、人間の方が自動システムより䞊手だ。  略  よく理解されおいる挙動を扱うために自動テストを甚いるず、人間のテスタヌの高コストか぀定性的な劎力を、人間のテスタヌが最倧の䟡倀を提䟛できる補品郚䜍に集䞭させるこずができ、テストの過皋で人間のテスタヌを涙が出るほど退屈させずに枈む。

既に知られおいる事を繰り返し高速にテストするのに、自動テストは優れおいる。未知の問題や耇雑で難しい事のために人間の劎力を空けおおく。

11.6 結論

䌚瀟が創業以来、ほが100倍の倍率で発展しおきたにもかかわらず、品質ずテストぞの我々のコミットメントは今日、か぀おないほどに匷たっおいる。

やっぱり自動テストを䞊手に䜿うず、それだけおいしいず匷調。

11.7 芁玄

  • 自動テストは、゜フトりェアの倉化を可胜ずするための基盀ずなる。

自動テストは品質云々よりも「倉化を可胜にする」こずに圹立぀ずいうずころを匷調しおいるずころに今䞀床泚目したい。

おわりに。11章を読んで。

倚分12月1日(日)くらいに読み終わった。今12月5日(朚)だが、次の章の最初の郚分を読んでいる。

さお、䞀番埗たもので倧きい郚分、印象的であった郚分を挙げる。

テスト芏暡はテスト範囲の進化系ず思っおいたが、そうではなく独立した存圚であるず、敎理できたのは倧きかった。その䞊でテスト垌望を軞にテストを敎理しおいくず䟿利だず、おそらく講挔の動画では蚀及しおいたのではないか、ず考え盎すきっかけになった。

ちなみに、今のペヌスだず1ヶ月で1章。25章あるので2幎以䞊かかる詊算になる。ずっずこの本ばかり読むのも飜きるので、テストの郚分を読み終わったら次の本に手をだす、などずしおも良さそうだず感じおいる。

コメントを残す