品質モニタヌ-蚭蚈゚クスペリ゚ンスの向䞊

同僚、こんにちは



今日は、品質保蚌の方法ずツヌルの䜜成ず実装を促進する理由に぀いお話し、問題の履歎を調べ、既知のリスクを匷調し、 十分な品質のWeb゜リュヌションを確保するための勝利戊略を心に「確立」しようずしたす。 最埌に、Bitrixプラットフォヌムの第11バヌゞョンの新しいツヌルである「品質モニタヌ」に぀いお説明したす。



完璧な䞖界-滝





はい、はい。 Webプロゞェクトの高品質を確保するための手法がありたす。これにより、バグが発生せず、クラむアントがフォヌラムやtwitterで゚ラヌメッセヌゞを衚瀺しお攻撃するこずはありたせん。



これを行うには、次のものが必芁です。



  1. 5幎の経隓ず成功したプロゞェクトの倧芏暡なポヌトフォリオを備えたPHP蚀語での開発が認定されたプログラマヌを芋぀けおください。
  2. 最新バヌゞョンのすべおの䞀般的なブラりザでHTML / CSSの耇雑さを理解し、朝から昌食たでプロのフォヌラムでぶら䞋がっおいるコヌダヌを芋぀けたす私は曞いお、涙が私の目に芋えたす:-)。 しかし、これは十分ではありたせん、なぜなら タむプセッタヌはjavascript甚にプログラムできなければなりたせんそしお、すべおの䞀般的なブラりザヌでこの蚀語の方蚀を知っおいる必芁がありたす。 非垞勀の経隓豊富なプログラマヌになるため。
  3. 少なくずも1぀のオペレヌティングシステムに粟通しおおり、10幎以䞊の実務経隓があるシステム管理者を芋぀けたす。
  4. 単䜓テストず機胜テストで生成されたWebプロゞェクトコヌドを100網矅したシステムを線成できるテスタヌを芋぀けたす。 このテスタヌは、Webプロゞェクトのサブゞェクト領域の耇雑さを理解し、クラむアントよりもよく知る必芁がありたす。
  5. そしお、もちろん、aこの䞻題分野のアナリストよりも優れおいるこずを耇雑に知っおいるクラむアントを芋぀けるために、bWebプロゞェクトが運甚されるたで、芁件を倉曎したせん。
  6. チヌムが組み立おられたら、Webサむトの蚭蚈、描画、タむプセットを開始し、管理パネルずパブリック郚分の䞡方で各Webペヌゞの説明をTORに含めたす。ナヌザヌの画面解像床に応じおピクセルずさたざたなペヌゞオプションが正確です。 結果は、玄6か月で曞かれた、なんらかの500ペヌゞのむラスト付きTKです。
  7. 次に、䜜業指瀺曞の各ペヌゞを評䟡し、毎日の詳现な開発蚈画を䜜成し、Webプロゞェクトを運甚する日付を蚭定する必芁がありたす。
  8. もちろん、起動する前に、䜜成されたWebサむトを培底的にテストしおTORおよび蚭蚈レむアりトに準拠するために、TKのピクセルず文字に察しお正確な時間を割り圓おたす。 長時間テストする必芁がありたす。いく぀かのアプロヌチでは、クラむアントに察しお゚ラヌのある機胜を開くこずはできたせん。倚盞テストには、2〜3か月かかりたす。




そしお、Webプロゞェクトで゚ラヌが発生するこずはほずんどなく、システムは予定どおりに起動したす。 しかし、おそらくサむトは時代遅れになり、ナヌザヌはそれを必芁ずしなくなり、クラむアントは望んでいるものではなく、仕事の明现曞に曞いたものを受け取りたす:-)



残念なこずに、倚くの人々は、Webプロゞェクトが数孊を応甚した厳栌な「ブヌル」ロゞックを持぀゜フトりェアシステムであり、矎意識を持っおいないこずを忘れおいたす。 この゚ンゞニアリング構造は、他の構造橋、家、飛行機ず同様に、適切な方法でねじたで蚭蚈し、ねじたでテストする必芁がありたす。倉曎するには、すべおの蚭蚈文曞を確認する必芁がありたす。 そしお、培底的か぀科孊的に、圌らは以前に゜フトりェアシステムを開発したした- カスケヌドアプロヌチりォヌタヌフォヌル 。



しかし、盎感的には、この方法でりェブサむトを立ち䞊げるこずは非垞に費甚がかかり、明らかに非垞に長いこずを瀺唆しおいたす。 たた、チヌム内で高床な資栌を持぀専門家を芋぀けるこずは簡単なこずではありたせん。 数孊で宿題をやるのではなく、「安くチヌト」する方法を芋぀けたいず思いたす。耇数のボリュヌムの技術仕様がなくおも、どのようにしおWebプロゞェクトを迅速か぀十分な品質で開始したすか :-)



スカりティング-反埩アプロヌチ





人々は、クラむアントず䞀緒に座っお䌚議宀から出お、2〜3日でWeb゜リュヌションを蚭蚈するこずは䞍可胜であるこずに気付きたした。 たた、オフィスでシステムアナリストを1週間ロックしおも、問題は解決したせん。 毎回システム郚品に぀いお議論し、䜜成し、完了した段階の結果を分析し、次の段階を蚭蚈する際にそれらを考慮するこずがより効率的であるこずを理解するようになりたした。 3か月など、さらに先を芋るこずなく、少しず぀前進したす。



倚くのクラむアントがこの方法で䜜業する方が䟿利です。結果を確認しお蚈画を調敎したす。 開発者ずテスタヌに​​ずっお、これはもちろん、面倒なこずです。

  1. すべおのプロゞェクトドキュメント、スクリヌンショット、図、TKを最新の状態に保぀こずはできたせん。 しばらくしおから、倉曎を加える必芁があるでしょう。 したがっお、圌らは「トリック」に進みたす-圌らは同僚の蚘憶に䟝存しお、 コンポヌネント間の䟝存関係を远跡するこずなく、䟋えばWikiなどのシステムのあたり正匏な説明を導きたせん:-)
  2. 予想される倉曎を簡単でリスクの少ないプロセスにするために、プログラム/レむアりトが必芁です。 これは、a デザむンパタヌンを知っお正しく䜿甚する必芁があるこずおよびこの領域を知っおいる開発者を芋぀けるこずは容易ではないこず、b誘惑に負けず、あらゆる堎所で普遍的で拡匵的なシステムを䜜成できないこずを意味したす 開発時間が倧幅に増加したす
  3. これをテストし、定期的にシステムを倉曎できる必芁がありたす。 どこで䜕が倉化し、どこで珟れるかを知る。 ぀たり テスタヌの負荷が増加したす-倉曎の説明、単䜓テストおよび統合テストの倉曎などが必芁です。




反埩的なアプロヌチでは、䞀方ではクラむアントにずっお、そしおおそらくは圌ず䞀緒に働くプロゞェクトマネヌゞャヌにずっおはより䟿利になり、他方では開発者や品質スペシャリストの負担が増え、資栌の芁件も増えおいるこずがわかりたす。







同様のプロセスを、より正匏に RUPなどおよびあたり正匏に線成するこずは可胜です。 それはすべお特定のWebプロゞェクトに䟝存したす。 したがっお、 特殊な゜フトりェアを䜿甚できたすが、すべおを「ひざの䞊に」構築するこずができたすExcel、Wiki、葉の壁など。



曲芞飛行...カオスの瀬戞際-アゞャむルフレキシブルプロセス





珟圚、りェブサむトの開発プロセスが人気を集めおいたす。 以䞋が想定されおいたす。

  1. 芁件は垞に倉化しおいたす 垂堎は倉化しおいるため、詳现なTKを倉曎しお最新の状態に保぀こずは時間の無駄です。 それ以倖の堎合は、システム分析郚門、蚭蚈郚門、およびアヌキテクチャ蚭蚈郚門が必芁になりたす。
  2. なぜなら 芁件が倉曎されおいるため、プロゞェクトの倉曎は垞に行われるため、プロゞェクトが砎壊されず、倉曎が迅速か぀安䟡に行われるようにすべおを行う必芁がありたす。
  3. クラむアントたたはその代理人は垞に連絡を取り合うこずができ、プロゞェクトチヌムからの質問に答える必芁がありたす。
  4. 開発者ず他のプロゞェクト参加者は垞に情報をやり取りし、情報亀換し、官僚䞻矩は最小限に抑えられ、人々は高床に組織化され、䞀緒に働きたす匷制的に働く必芁はありたせん
  5. Webプロゞェクトは、2〜3週間で繰り返しリリヌスされたす。 サむト蚪問者はテストに積極的に参加したす。




明らかに、このような「倧倱敗」には、チヌム内の自己組織化された人々、その分野の専門家、専制君䞻の攻撃からのこの超創造的な雰囲気をサポヌトするリヌダヌ、官僚の個人的なmerc兵の目暙などが必芁です。 さもなければ、拍手で-誰もが再びオフィスの机の呚りに散らばり、手玙を投げ始め、文孊的な批刀に苊しむでしょう。



結果指向のクラむアント、このプロセスは非垞に䟿利です。 Web゜リュヌションは、競合他瀟に遅れずに絶えず倉曎および開発できたす。さもないず、クラむアントは1幎前に曞いたようにTKの人質になりたす。 チヌムが予枬可胜なパフォヌマンスに匷い堎合、クラむアントはWeb゜リュヌションの今埌のリリヌスを効果的に蚈画し始めたす。





䞀方、゜リュヌションの技術的な耇雑さは非垞に急激に増加したす。 「技術的健党性」の状態で絶えず倉化するシステムをサポヌトするこず自信を持っおさらに開発でき、倉曎を行うコストが指数関数的に増加し始めないこずを知っおいる堎合は、気匱な人の仕事ではなく、高床な資栌を持぀開発者を必芁ずしたす。



そのようなシステムの品質を管理するために倚くの堎合、正匏な技術文曞なしで、効果的な技術の歊噚が䜿甚されたす。

  1. 自動化された単䜓テスト 。 プログラマは、コヌドを䜜成しおコヌドをテストしたす。
  2. 機胜テストたたは自動受け入れテスト-完了した機胜ずプロセスがテストされたす。
  3. Webプロゞェクトのリリヌスがすぐに開始されたす。 蚪問者はすぐに゜リュヌションをテストし、短時間でベヌタから適切な状態に移行したす。
  4. チェックリストは、生産のすべおの段階で䜿甚されたす。 結論は簡単です-耇数ペヌゞのマニュアルを曞いお読んだ埌、「生き残る」ためには、䞍芁な質問をせずにこれらのポむントに埓う必芁がありたす。 戊闘憲章ずの盎接の類䌌点。






明らかに、以来 このような開発プロセスは、「制埡されたカオス」の寞前でバランスを取りたす。そうでない堎合、垂堎では䜜業が蚱可されないこずがよくありたす。順序ず予枬可胜性を確保する重芁な圹割は、チェックリストチェックリストによっお補完される最倧のテスト自動化に属したす システムはそれ自䜓を怜蚌し、重倧な゚ラヌを迅速に識別できる必芁がありたす。たた、レむアりトから負荷䞋での運甚たで、生産のさたざたな段階で自動化が困難な堎合迅速にチェックする必芁があるものず堎所を知る必芁がありたす。



このプロセスの健党な進化は、通垞、次のシナリオに埓っお進行したす。

  1. 2〜3週間で、新しいWeb゜リュヌションリリヌスが蚭蚈およびリリヌスされたす。
  2. 反埩の経隓が分析され、生産のさたざたな段階のチェックリストが改善されたす
  3. 以前の反埩で蚭定されたいく぀かの束葉杖-察応
  4. ナニットおよび機胜テストのグリッドで芆われた新しいシステムモゞュヌル




時間が経぀に぀れお、Webプロゞェクトの開発プロセスは安定し、倉曎を加えるこずは「それほど怖くない」ものになりたす。圌らはそれを埅っおおり、システムは絶えず曎新、改善し、倖郚だけでなく内郚も比范的健党です。 「効果的な䞖界」の段階が来おいたすが、これはただ芳察されおいたせん。 偏りがあるず、生産が混乱たたは愚かな圢匏化に陥り、コストの䞊昇が始たりたす。



成功を統合するために、このレベルに到達した人は、継続的な統合のサむクルを実装するこずがよくありたす 。 これを行うには、 特殊な゜フトりェアを䜿甚する必芁はありたせん。単玔なスクリプトのグルヌプず熱狂的なチヌムの枩かい心に自分を制限するこずができたす。







チェックリストの詳现





Webプロゞェクトの開発方法「Web」だけでなくの進化を流repeatedに繰り返し、珟圚、システムの正匏な系統的開発に十分な時間を費やしおいる人はいないこずを確認したしたただし、「りォヌタヌフォヌル」ず䟝存関係マトリックスぱラヌのコストが非垞に高い産業-家、橋、飛行機の建蚭、米囜でのヘルスケア゜フトりェアの開発など、チヌムは生き残り、非垞に効果的なツヌルの限られたセットを䜿甚しお恐怖ず戊う チェックリスト。











チェックリストは通垞​​、経隓豊富な埓業員、システムおよびビゞネスアナリスト、および機胜マネヌゞャヌによっお䜜成されたす。 知識ベヌスに䌚瀟の知的荷物が蓄積されるず、チェックリストが䜜成されお改善されたす。 芁点は簡単です-埓業員がレヌキを2回以䞊無意識に堎合によっおは任意に螏たないようにしお時間ずお金を節玄したす。







プログラマヌ向けの基本チェックリストの䟋

  1. 実装する必芁があるものを理解したす。 質問が残る堎合は、アナリスト/マネヌゞャヌ/クラむアントを苊々しく振っおください。
  2. これを実装する方法を考えおください。 時間をかけおコヌディングしおください。 論理デヌタモデル、3぀のUMLダむアグラムを䜜成したす-システムのロゞックず動䜜の䞡方を反映したす。
  3. リヌド開発者に盞談しおください。
  4. デヌタベヌステヌブルを蚭蚈したす。 同僚/郚門長ず話し合う。
  5. システムをテストする方法を考えおください。
  6. 蚭蚈パタヌンを芚えおおいおください。それらのいく぀かは圹に立぀かもしれたせん。
  7. ナニットテストの蚘述を芚えおいる間に、遅かれ早かれ機胜を゚ンコヌドしたす。
  8. メむンリポゞトリにコヌドを远加する前に、単䜓テストを実行する必芁がありたす。
  9. wikiでロゞックを説明したす。




各項目は、Wikiの手法ぞのリンクにするこずができたす。



耇雑なこずはありたせんが、これらのポむントの倚くが無芖される頻床です。



そしお、ストレステストやサヌバヌメンテナンスのためにWebプロゞェクトを準備するチェックリストに関しおは、プロゞェクトごずに繰り返される非垞に倚くの重芁な小さなこずがありたす。 倚くの堎合、人々は芚えおいるず蚀いたす。実際、経隓は、芚えおいない、重芁なポむントを芋逃し、プロゞェクトからプロゞェクトぞず「熊手を螏む」こずに埓事しおいるこずを瀺しおいたす。 経隓豊富なプロゞェクトマネヌゞャヌが、レむアりトデザむナヌからシステム管理者たで、責任ある埓業員によっお䜜成されたチェックリストレポヌトがある堎合にのみ、ステヌゞ/リリヌスを閉じたす。



品質モニタヌ-Bitrixプラットフォヌムの第11バヌゞョン





ボックスプラットフォヌム1C-BitrixSite ManagementでWebプロゞェクトを開発する堎合、䞊蚘のプロセスのいずれかを䜿甚できたす。 次のリスクが軜枛されたす。

  1. 開発者は「最高床の献身」をする必芁はありたせん。ZCE蚌明曞を取埗し 、OOPず蚭蚈パタヌンを詳现に理解したす。 最も困難なのはプラットフォヌムのコア郚分にあり、Bitrix瀟内で開発およびテストされおいたす。 PHPプログラマヌずレむアりトデザむナヌは、基本的なスキルず最小限の経隓を持ち、 トレヌニングコヌスを受講するだけで十分です数日で完了できたす。
  2. システムのドキュメントを曎新する必芁はありたせん。なぜなら プラットフォヌムは、顧客ず開発者の䞡方のための公匏ドキュメントで非垞に詳现に説明されおいたす。 Webプロゞェクトの統合䞭に行われた改善/機胜倉曎のみを蚘述する必芁がありたす。
  3. テスタヌは、Web゜リュヌション党䜓をテストする必芁はありたせん。 プラットフォヌムは内郚で培底的にテストされおいたす。 機胜の改善/倉曎をテストするだけです。 これにより、時間ずリスクが倧幅に削枛されたす。




それでも、統合に必芁な既知の芁件に埓わない堎合、理想に近い条件で䜜業しおいおも、Webプロゞェクトをカオスに倉えるこずができたす。これは、維持ず開発が非垞に難しく、費甚がかかりたす。 さらに、コヌドずアヌキテクチャの秩序の欠劂は専門家を匷く動機づけ、スタッフの離職が始たりたす。これは、Web゜リュヌションの開発により状況をさらに悪化させたす。



䞊蚘のリスクから開発チヌムを保護するために、バヌゞョン11からプラットフォヌムに品質モニタヌが組み蟌たれたした。



Webプロゞェクトのリリヌスを送信するには、レむアりトからホスティングたたはクラりドでの展開および負荷テストたで、生産のすべおの段階で自動および手動の制埡手順を実行する必芁がありたす。







各テストにはいく぀かの状態があり、䞀郚のテスト、特に定期的なテストは自動化されおいたす。











実際、プロゞェクトマネヌゞャヌたたは開発者は、すべおのテストず自動テストを実行しお、リリヌス/反埩を完了するためにテストツリヌを「グリヌン化」する必芁がありたす。







リリヌスがリリヌスされるず、デスクトップずテストレポヌトのリストで確認できたす。







特に「高床な」開発者向けのチェックリストを遞びたいず思いたす。 これらの項目は、コヌドの品質ずアヌキテクチャに真剣に泚意を払うAglle / XPチヌムで特に需芁がありたす。







開発チヌムは、必須およびオプションのチェックリストず自動テスト項目を远加できたす。たずえば、CodeStyle怜蚌のカスタマむズ、バヌゞョン管理システムずの正しい統合、 UnitTestsコヌドの存圚ずカバレッゞ、 PHPDocumentorのスタむルのドキュメントなどです 。







カヌネルお​​よびプラットフォヌムラむブラリを倉曎するずいう事実も自動的にチェックされたす。







未来ぞのアむデア





創造的なプロセスずしおの開発は楜しいはずです。 そうすれば、Webプロゞェクトは死んで怖くはなくなり、それらをサポヌトする方が簡単で面癜くなりたす:-)



Bitrixプラットフォヌムでの開発プロセス党䜓をカバヌするチェックリスト。瀟内チヌムのチェックリストで拡匵できたす。 これにより、プラットフォヌムの知識ず理解の欠劂、および䞀般に「グッドプラクティス」に関連するリスクが倧幅に削枛され、 振り返っおみるず、チヌムが「品質モニタヌ」に新しいアむテムを远加しおプロセスを改善できたす。



分散バヌゞョン管理システム Mercurial 、 git ずの透過的か぀効率的な統合、 phingなどのビルドツヌルのサポヌト、マルチステヌゞ開発環境dev、テスト、ステヌゞ、プロダクションのサポヌト、 継続的むンテグレヌションシステムのサポヌト、地理的な効率的な䜜業のサポヌトなど、倚くの興味深いタスク分散チヌム-掻発に議論されおいたす。



「品質モニタヌ」によっお、チヌムが内なる可胜性を解き攟ち、創造的な開発プロセスに焊点を圓お、アヌキテクチャを改善し、振り返っお埗られる䞀皮の知識ベヌスになるこずを心から願っおいたす。



十分なサむト品質を確保するための勝利戊略を念頭に眮いた「萜ち着き」に぀いお...耇雑で倧芏暡なWeb゜リュヌションの開発たたはそのようなシステムのリファクタリング/リラむトの詳现な蚭蚈ず圢匏化に時間をかけるには時間がかかるず確信しおおり、品質は保蚌されたせんカオスは生産から始たりたす。 「オヌプンでモダンな」クラむアントを持぀䞭芏暡のプロゞェクトには、反埩方法論が適しおいたす。 小芏暡なプロゞェクトの堎合、柔軟な方法論がその䟡倀を蚌明しおいたす。 実隓しお前進するこずを恐れないでください。 頑匵っお



All Articles