ما الذي يزيله vibe testing فعليًا
إنه يزيل خطوة الترجمة. في العادة تعرف السلوك الذي تريده، ثم تقضي ساعة في تحويله إلى محدِّدات وفترات انتظار وتأكيدات، ومعظمها يتعلق بإطار العمل لا بمنتجك. أمّا وصف السلوك وترك الترجمة للوكيل فيُبقي الجزء الذي يحمل المعنى ويُسقط الجزء الذي لا يحمله.
والشيء الثاني الذي يزيله هو ضريبة الصيانة. فالخطوة المُعبَّر عنها كنيّة تصمد أمام إعادة تصميم لا يصمد أمامها محدِّد مكتوب بشكل ثابت، لأن النيّة تبقى صحيحة حين يتغيّر موضع الزر.
أين يخطئ الفحص الموصوف
غامض أكثر من أن يفشل
عبارة «تأكّد من أن لوحة التحكم تعمل» لا يمكن أن تفشل، لأنه لم يُدّعَ فيها شيء محدّد.
حدِّد ما يمكن ملاحظته: أي رقم، وأي صف، وأي حالة.
تأكيد الإجراء
«انقر على حفظ» خطوة وليست فحصًا. يمكن لأي تشغيل أن ينفّذها دون أن يُثبت شيئًا.
قل ما ينبغي أن يكون صحيحًا بعد ذلك، واجعله شيئًا تؤكّده إعادة تحميل الصفحة.
فاعل غامض
عبارة «يرى المستخدم طلباته» تترك هوية المستخدم غير محدّدة، وهناك تحديدًا تسكن عيوب الصلاحيات.
حدِّد طلبات مَن، وافحص أن شخصًا آخر لا يمكنه رؤيتها.
العادة الوحيدة التي تفصل الفحوص الحقيقية عن الفحوص الزخرفية
اكسر الشيء عمدًا وتأكّد من أن الفحص يتحوّل إلى الأحمر. يستغرق ذلك دقيقة، وهو الدليل الوحيد على أن الفحص متّصل بشيء ما.
وهذا أهمّ هنا منه في الاختبارات المكتوبة يدويًا، لأن الفحص الموصوف يترك مجالًا أوسع للتأويل المتساهل. فالتشغيل الذي ينتهي دون الوصول إلى أي تأكيد ليس نجاحًا، والطريقة الوحيدة لاكتشاف أن لديك واحدًا كهذا هي أن تحاول إفشاله.
البدء
يثبّت الإعداد هذه القدرة داخل وكيل البرمجة، فيمكن وصف الفحوص وتشغيلها في المكان نفسه الذي يُكتب فيه الكود.
لا شيء من هذا يحتاج إلى طرفية. أنشئ مشروعًا في لوحة تحكم TestSprite، وصف الفحص بلغة عادية، ووجّهه إلى تطبيقك. ويمكن للمطوّرين في فريقك تشغيل الشيء نفسه من سطر الأوامر إن فضّلوا ذلك، وهو موجود في مستودع CLI.
ما الذي تصفه أولًا
المسار الذي تعرضه في عرض توضيحي. إن تعطّل فستكتشف ذلك علنًا، لذا ينبغي أن يكون أول ما تغطّيه.
أي شيء يتعلق بالمال أو الصلاحيات. الكلفة الأعلى عند الخطأ، وكلاهما يفشل بصمت.
آخر شيء تعطّل. ما باغتك مرة يستحق فحصًا دائمًا، وأنت تعرف تمامًا كيف تصفه.
وصف فحص يصمد
الفرق بين فحص يحميك وآخر يزيّن خط الأنابيب يكمن دائمًا تقريبًا في طريقة وصفه، والنمط قابل للتعلّم.
الوصف الجيّد يتكوّن من ثلاثة أجزاء: حالة ابتدائية، وإجراء، وشيء يمكن ملاحظته بعده وتؤكّده إعادة التحميل. «بصفتك مستخدمًا مسجَّل الدخول لا يملك أي مرشّحات محفوظة، أنشئ مرشّحًا باسم Recent، وأعد تحميل الصفحة، وتأكّد من ظهوره في الشريط الجانبي.» كل جزء من ذلك يمكن أن يفشل، والفشل يخبرك أين.
قارن ذلك بـ«تأكّد من أن المرشّحات تعمل». النيّة نفسها، لكن بلا حالة ابتدائية، ولا إجراء محدّد، ولا شيء قابل للملاحظة. والوكيل المطلوب منه تحقيق ذلك سيفعل شيئًا معقولًا ويبلّغ بالنجاح، ولن تكون قد تعلّمت شيئًا. الخمس عشرة ثانية الإضافية التي تنفقها على الصيغة الأولى هي الفارق كلّه.
ثم توقّف عن تقرير موعد تشغيلها
سواء كان موصوفًا أو مكتوبًا بالكود، الفحص الذي ينتظر إنسانًا هو فحص يُتخطّى في أسبوع مزدحم.
اربط المستودع من لوحة التحكم لتبدأ عمليات التشغيل من النشر الذي تنتجه أصلًا، أو أضف خطوة إلى سير عملك الخاص بدلًا من ذلك.
ماذا يفعل TestSprite بالفحص الموصوف
أنت تقول ما ينبغي أن يكون صحيحًا، ويتولّى TestSprite معرفة كيفية فحصه وتشغيله على تطبيقك المنشور. أما خطوة الترجمة، وهي الجزء الذي لم يكن المقصود يومًا، فتختفي.
خاصيّتان تجعلان النتيجة معمّرة. فالخطوات تُحفظ بوصفها نوايا لا مسارات داخل DOM، لذا لا تؤدي إعادة تصميم تنقل زرًّا إلى كسر الفحص. والنتيجة تعود في صورة وصف لما جرت محاولته، وما حدث فعلًا، وأين تباعد الاثنان، وهذا ما يتيح لوكيل البرمجة التصرّف بناءً على الفشل دون أن يفسّره إنسان أولًا.
والتحسين يبقى بلغة عادية أيضًا. فإن كان الفحص متساهلًا أكثر من اللازم، قل ذلك في جملة بدل تعديل الكود، وهذا هو السبب كلّه في أن الفحوص الموصوفة تستحق العناء.
هل vibe testing موثوق بما يكفي لمنتج حقيقي؟
للتغطية السلوكية للمسارات، نعم، شريطة أن يحدّد كل فحص شيئًا معيّنًا وأن تكون قد تأكّدت من قدرته على الفشل. أما التأكيدات على تسلسل دقيق أو على مستوى المكوّنات، فالاختبارات المكتوبة تبقى الأداة الأفضل.
بمَ يختلف هذا عن تسجيل سلسلة نقرات؟
التسجيل يلتقط مسارًا وينكسر حين يتغيّر المسار. أما الفحص الموصوف فيلتقط نيّة ويصمد أمام التغيير، وهنا يكمن معظم الفرق في الصيانة.
ماذا لو فسّر الوكيل وصفي بشكل مختلف؟
اقرأ الخطوات المولَّدة مرة واحدة قبل أن تثق بالفحص. فأخطاء التفسير تكون واضحة هناك، ويصعب اكتشافها كثيرًا لاحقًا في نتيجة ناجحة.
هل يمكنني تحسين فحص دون إعادة كتابته؟
نعم. عدّله بلغة عادية، بالطريقة نفسها التي وصفته بها في الأصل.
هل يحلّ هذا محلّ اختبارات الوحدة؟
لا. اختبارات الوحدة أسرع وأفضل في المنطق. وهذا يغطّي الطبقة التي لا تراها، وهي ما إذا كان المنتج المجمَّع يتصرّف بشكل صحيح.
صف شيئًا محدّدًا، ثم أفشِله مرة واحدة.
يزيل Vibe testing الترجمة من النيّة إلى كود الاختبار، وهو الجزء الذي لم يكن المقصود يومًا. حدِّد شيئًا معيّنًا قابلًا للملاحظة، وتأكّد من أن الفحص قادر على التحوّل إلى الأحمر، وشغّله تلقائيًا بدل أن تقرّر في كل مرة.