Fakapヒットパレード:テスターの日を記念して私たちのお気に入りのバグのトップ5

イラスト インターネットでは、非常に興味深いバグの選択が既にかなり多くあります-最も面白いバグと最大の被害をもたらしたバグ(たとえば、 ここ )。



しかし、エイリアンの熊手は、もちろん、自分の身長に合わせて確実に教えられているわけではありません。



したがって、生産プロセスに携わっているすべての人、バグの発見と修正を祝福します。 ところで、もちろん、私はテスターのチームを誇りに思っています。 これらの人々は、プリミティブ型から予測不可能な魔法まで、考えられるすべてのバグをキャッチすることができ、毎日非常に成功しています。 したがって、私は毎日の勝利については語りません。 それどころか、休日を記念して、私たちの最も壮大な間違いと偽りを説明します。



ここでは、問題がユーザー側にある場合や、売り手の誤解によるものである場合を意図的に引用しません。もちろん、そのような状況は、別の研究に値します。そして今日-私たち自身の間違いと間違いだけです。



いくつかの陰謀を保持するために、各ケースは2つの部分で構成されます-最初から見た様子と、最後にわかったことです。

だから-





5.予測不可能な効果を持つDeja vu



外観は次のとおりです。
かつて、10月の不親切な日に、地元の黙示録が発生しました。 早朝からさまざまな国のすべてのクライアントがシステムについて不満を言い始め、最も多様な苦情が寄せられました。 誰かがプログラムに参加できませんでした。 誰かが始めたが、昨日のデータを見せた。 誰かが恥知らずに減速した。 既に終了している広告キャンペーンに対して誰かが推奨事項を提示しました。



たとえば、メジャーリリースを配信したばかりであれば、状況は明らかです。 または、1人のクライアントだけが落ちた場合。 または、最悪の場合、すべての顧客が同じデータセンターにいます。 しかし、私たちはクライアントサーバーで長い間変更を加えておらず、すべての場合で共通するものはありませんでした...



実際に何を:
...いつものように、ログがわからなくなるまで。 私たちのアプリケーションは非常にリソースを消費するため、ほとんどの計算は夜間に実行されます-朝までにユーザーはすでにネットワークを改善するための最新の推奨事項を受け取ります。 さらに、前日のソースデータの準備は午前1時から2時までです。



そのため、同期と計算は、通常どおり、X時間、データの可用性を待機し、更新を開始しました。 そして、ヨーロッパ中のちょうど午前3時に、サーバーが1時間から冬時間に切り替わりました。



そして、私たちのシステムは再びスケジュール通りに、同期と計算の2番目のコピーを開始しました。 また、データを同時に更新する2つの並列オペレーティングシステムは、予測不可能な状況の尽きることのないソースです。



4. Vasyaが来ました!



外観は次のとおりです。
クライアントのオペレーターの1人が私たちに次のように書いています。「ああ、あなたは世界中のサイトで自分自身を宣伝することに決めました。 よくできた、すばらしいプログラム、あなたはあなたについて知っているべきです。 しかし、なぜあなたが広告を連続して全員に表示しているのかわかりませんか?」



実際に何を:
最初は、まったく宣伝しなかったので、完全に当惑します。 そして、誰かがクライアントのサイトを見ると推測しました。 メインページでMaxifayerのロゴを見ました。 これは原則として決してすべきではありません。



答えは平凡で攻撃的であることが判明しました。 誤ってアルゴリズムをデバッグするために必要なテスト広告キャンペーンは、自社のテストサイトではなく、クライアントの広告ネットワーク全体で開始されました。 確かに、正確に言えば、これは特定の種類のターゲティングを備えた広告サーバーのドキュメント化されていない機能が原因で発生したもので、テストプロセス中に偶然発見したものです。 この甘い間違いの結果として、私たちは1日を通してヨーロッパ全体で約500万回ロゴを見せました。



謝罪、損失の補償などをする必要があります。 繰り返しますが、最も重大な間違いはプログラムではなく人によって行われることを理解しています。 または、彼らが言うように、あなたは愚か者からの保護を提供することができますが、非発明者からのみです。



3.誰も私たちの時代を信じることができません。 できる!



外観は次のとおりです。
戦略的なクライアント向けのデモがあります。 標準のデモは彼にはふさわしくありません。いつものように、売り手は最新の、昨日だけ頭に、そして今日はまだ不確かにコードに存在していたものを見せたいです。



私たちは、石鹸と泡でバージョンをインストールします。 ショーの30分前。 販売者の1人からの手紙が届いています。「聞いてください。私たちのシステムは非常にインテリジェントで、人が決してできない方法ですべてのネットワーク依存関係を分析しています。 そして、彼女がより正確に予測するもの-私も理解しています。 しかし、ここに私の目の前に予報がある推奨事項のリストがあります。 すべての推奨事項について、予測はマイナスです。 もちろん、私たちのシステムはとても重要なものを知っているので、それらを使用するために提供することを理解しています。 しかし、顧客が尋ねた場合、顧客に何を答えるべきか教えてもらえますか?」



実際に何を:
さて、もしバグが予測システムに忍び込んで、今ではそれが間違った値を与えていることに気づいたら、30分で何ができるでしょうか(読まれた-でたらめ)。 ただし、値だけではなく、予測チャートが描画されます。 バグは、そのような期間に、何も修正されていない場所は明確ではありません。 そして、新しい顧客に製品を販売する機会を増やすために、お望みの方法です。



その結果、アルゴリズムは変更せず、出力を変更します。 小さなプラス値からランダム-そして今、私たちのすべての推奨事項は非常に合理的な数値を生成します。 さらに、5分で手で描かれたいくつかの静的なグラフ-そして今、広告キャンペーンの過程の視覚化があります。 次に、売り手による短いブリーフィング-そしてデモは突然終了します。



顧客を欺くのは良くないことを知っています。 しかし、ここでは、ほとんど自動車販売店のように、あなたが宣伝されているきらめく素晴らしい輝かしい奇跡は、あなたがすぐに立ち上がってキャットウォークを出ることができるという事実ではありません。 しかし、これはあなたには関係ありません-しかし、すでにそれを買ったとき、あなたは中に座って点火にキーを挿入しなければなりません。最後の瞬間に問題や失望はないはずです。



ところで、だからこそ、SaaSの販売が大好きです。 彼は開発者がアイドル状態のシステムを販売することを許可せず、そのお金をカナリアに投棄し、deされた顧客に壊れたトラフを残します。 彼らは毎月支払う-結果のために。 もちろん、顧客が結果を使用するだけで支払いをしないのは非常に問題です。 Win-Winの状況。



2.わからない



外観は次のとおりです。
今回は、サポートチームから苦情が寄せられました。 Vida-「ユーザーが聞いたことがないこの種の推奨事項について質問する」または「ユーザーが、システムが原則として生成できないメッセージのスクリーンショットを送信する」

そして同時に、プログラマーと開発者もシステムを認識せず、助けられません。



実際に何を:
正直に言うと、この場合、これはバグではなく、計画とコミュニケーションの面白さです。 当初、このシステムはロシアから開発されましたが、西洋市場向けに開発されました。 そして、すべての名前とメッセージは「ルーブル」に何らかの形で書かれていました。 もちろん、識字レベルは十分でしたが、おそらく理想的ではありませんでした。 ただし、顧客はそれに慣れており、文句を言わず、数年間システムで正常に動作しています。



そして、製品改善の一環として、ニューヨークでテクニカルライターを雇いました。 そして彼女は熱心にビジネスに取りかかりました。 しかし、ドキュメントが翻訳されている間、すべてが悪くはありませんでした。 そして、販売者の1人がこのフレーズをインターフェイスから理解していなかったため、TsUはネイティブスピーカーの観点から完全に正しいようにすべての名前と説明を作り直しました。



そして、短い名前からのすべての名前が過度に明確になりました。 ニュアンスは2つしかありません-最初に、テクニカルライターは既存のドキュメントに基づいてその意味を理解しましたが、それは常に完全で正確ではありませんでした(さらに、効率を向上させるためにクライアントに提供する数百種類の改善の違いを理解し、説明すること自体)それ自体は自明ではなく、理解できる...)。 そして、第二に、テクニカルライターは新旧間の通信の全リストを保持しました。



そして彼は、非常時のように、次のメジャーリリースがまもなく行われる最後の瞬間に結果を出しました。 そして、ローカライズを担当する唯一のプログラマーは、古いものと新しいものの間の対応のリストを持っていました。 そして、唯一のテスターで-検証を担当します。



その結果、顧客だけでなく私たちにとっても非常に珍しいシステムが顧客に送られました。 そして、どんな質問でもサポートをロシアに置きます。 彼女は単に意味が理解できなかった。 そしてプログラマーは助けられませんでした-そして彼らは初めてシステムを見ました。



インターフェイスが突然見慣れない言語に切り替わったように感じます。 最後に、もちろん、マッチのリストを見つけて、それを完成させ、全員に印刷して、しばらくして慣れましたが、最初のショックと腐った血は長い間記憶されていました。



1.クリスマスツリーがクリスマスを台無しにした方法



外観は次のとおりです。
-イゴール、あなたはそれを信じませんが、私たちのクリスマスツリーはシステム全体を台無しにしました。

-わかりませんか? このメッセージは私にとって本当に正しいものですか?

-私はあなたに思い出させます。 クリスマスを記念して、お客様を驚かせることにしました。 そして、プログラムのアイコンをクリスマスツリーの画像に変更しました。 このバージョンでは他に何も変わっていません。 しかし、今では、クライアントのいずれもが機能するシステムを備えていません。

-どうやって? これはどのように可能ですか?



実際に何を:
結局のところ、システムを「正しく」設計すれば簡単です。 計算には、ユーザー向けに視覚化されたバージョンと、クラスターモードでの計算専用の「非表示」バージョン(予測と推奨の生成)の両方があります。 つまり グラフィカルインターフェイスを必要としないサービスの起動。



そのため、プラグインを置き換えて、すべてのバージョンに配置します。 その結果、各バージョンは起動時に開始され、非常にクリスマスツリーを表示しようとします-ウィンドウタイトル、タイトルバーなどを検索します。 そしてOSが答えて、申し訳ありませんが、彼らは、グラフィックディスプレイがあなたに割り当てられていないと言います。 そして、プラグインは不可逆的な例外をスローしますが、キャッチすることを想定していませんでした。 最初は、同様の状況は単に予測されていませんでした。



結論はまた、証拠のキャプテンに値します-変更がどれほど重要でないように見えても、テストなしでバージョンを置く必要はありません。 可能性は低いですが、例外をキャッチして処理する必要があります。 まあ、もちろん、最後の瞬間にすべてをしないでください。



これらのすべての物語があなたの精神を高め、またはあなたに思考の糧を与えたことを願っています。 自分の経験から好奇心が強いまたは有益なストーリーがある場合は、コメントで共有してください-それは興味深いです。



All Articles