কীভাবে দক্ষতার সাথে সমস্যা সমাধান করতে হবে বা নতুন কোড পরীক্ষা করতে হবে যখন বাগের পুনরুত্পাদন করার জন্য হার্ডওয়্যার সেটআপ পাওয়া কঠিন বা অসম্ভব?


30

আমি একটি মাঝারি আকারের সংস্থায় (150ish কর্মচারী, 10 ডলার আকারের ইঞ্জিনিয়ারিং টিম) কাজ করি এবং আমার বেশিরভাগ প্রকল্পে আধা-স্বয়ংক্রিয় পরীক্ষামূলক অ্যাপ্লিকেশনগুলির উদ্দেশ্যে ল্যাব সরঞ্জামগুলির (অ্যাসিলোস্কোপস, অপটিক্যাল বর্ণালী বিশ্লেষক, ইত্যাদি) সাথে ইন্টারফেসিং জড়িত। আমি কয়েকটি ভিন্ন পরিস্থিতিতে চলে এসেছি যেখানে আমি কার্যকরভাবে নতুন কোড পরীক্ষা করতে বা নতুন কোড পরীক্ষা করতে পারছি না কারণ আমার কাছে আর আমার কাছে কখনও হার্ডওয়্যার সেটআপ উপলব্ধ ছিল না বা নেই।

উদাহরণ 1: একটি সেটআপ যেখানে 10-20 "বার্ন-ইন" প্রক্রিয়াগুলি একটি বেঞ্চ শীর্ষ ধরণের সেন্সর ব্যবহার করে স্বতন্ত্রভাবে পরিচালিত হয় - আমি পরীক্ষার জন্য এই জাতীয় একটি সেন্সর পেতে সক্ষম হয়েছি এবং মাঝে মাঝে ইন্টারফেসিংয়ের সমস্ত দিকের অনুকরণের জন্য একটি সেকেন্ড চুরি করতে পারি একাধিক ডিভাইস (অনুসন্ধান, সংযোগ, স্ট্রিমিং ইত্যাদি)।

অবশেষে একটি বাগ প্রদর্শিত হয়েছিল (এবং শেষ পর্যন্ত ডিভাইস ফার্মওয়্যার এবং ড্রাইভারগুলিতে উপস্থিত হয়েছিল) যা কেবলমাত্র একটি ইউনিটের সাথে সঠিকভাবে উত্পাদন করা খুব কঠিন ছিল, তবে যখন এই ডিভাইসগুলির 10-20 টি একসাথে ব্যবহার করা হয়েছিল তখন "শো স্টপার" স্তরের কাছাকাছি এসে আঘাত করে। এটি এখনও অমীমাংসিত এবং চলছে।

উদাহরণ 2: একটি পরীক্ষাটির মূল উপাদান হিসাবে একটি ব্যয়বহুল অপটিক্যাল বর্ণালী বিশ্লেষক প্রয়োজন। ডিভাইসটি বেশ পুরানো, নির্মাতার অনুসারে উত্তরাধিকার সূত্রে প্রাপ্ত যিনি একটি বৃহত্তর সংস্থার অধিগ্রহণ করেছিলেন এবং মূলত দ্রবীভূত হয়েছিলেন এবং এর একমাত্র ডকুমেন্টেশনটি একটি দীর্ঘ বাতাসযুক্ত (এবং তথ্যবিহীন) নথি যা খারাপভাবে অনুবাদ হয়েছে বলে মনে হয়। প্রাথমিক বিকাশের সময় আমি ডিভাইসটি আমার ডেস্কে রাখতে সক্ষম হয়েছি, তবে এখন এটি 24/7 মাল্টি-সপ্তাহের পরীক্ষার সময় শারীরিকভাবে এবং সময়সূচীতে উভয়টি আবদ্ধ।

বাগগুলি যখন ডিভাইসের সাথে সম্পর্কিত বা সম্পর্কহীন দেখায়, আমাকে প্রায়শই অ্যাপ্লিকেশনটির বাহ্যিক কোড পরীক্ষা করার এবং এটিতে ফিট করে দেওয়া, বা কোড অন্ধভাবে লেখার এবং কোনও পরীক্ষার সময় রান করার মাঝে রান করার চেষ্টা করতে হবে, যতটা সম্ভব প্রোগ্রাম লজিকের জন্য ওএসএ এবং বাকি পরীক্ষার হার্ডওয়্যারটি থাকা উচিত।

আমার ধারণা আমার প্রশ্নটি আমার কীভাবে এটির কাছে আসা উচিত? আমি সম্ভবত ডিভাইস সিমুলেটর বিকাশ করতে সময় ব্যয় করতে পারি, তবে বিকাশ অনুমানের মধ্যে অনুমান করা যে এটি সম্ভবত প্রশংসার চেয়ে বেশি বেলুন করবে। এটি উভয়ই সঠিকভাবে পুনরুত্পাদন করতে না পারে এবং এখানে প্রায় দুইবার একই সরঞ্জাম ব্যবহার করা খুব বিরল। আমি ইউনিট টেস্টিংয়ে আরও ভাল হতে পারতাম ... ইত্যাদি ... আমিও এই বিষয়টি নিয়ে উচ্চস্বরে উঠতে পারি এবং অন্যকে বুঝতে পারি যে অস্থায়ী বিলম্বের প্রয়োজন হবে, গবেষণা এবং বিকাশের জন্য মাথা ব্যথার চেয়ে বেশি নয়, সাধারণত একটি রসিকতা হিসাবে বিবেচিত উত্পাদন উত্পাদন যখন।


5
একটি ডিভাইস কাল্পনিক (অথবা mockable ইন্টারফেস) শুধু সুবিধার নিজেই জন্য টাকা দিতে হবে
খামখেয়াল র্যাচিট

21
@ratchetfreak - যিনি তাঁর দিনগুলি সিমুলেটিং ডিভাইসগুলিতে ব্যয় করেন (আমি একটি মেডিকেল ডিভাইস সিমুলেটরের পুরো সময় নিয়ে কাজ করি), আমি আপনাকে নিশ্চিত করে বলি যে অন্য কারও টুকরো টুকরো টুকরো একটি স্বল্প-বিশ্বস্ততা সিমুলেশনও খুব কঠিন উদ্যোগ হতে পারে, তার উপর নির্ভর করে সংযোগ, প্রোটোকল এবং ডেটা প্রকারের সাথে জড়িত। ওপি যে পরীক্ষার সরঞ্জামগুলি ব্যবহার করে তা যদি আমার সাথে মোকাবেলা করা গিয়ারের মতো কিছু হয় তবে রক্তাক্ত জিনিসটি আসলে কী করছে (চিত্রটি যা বলছে তার বিপরীতে) এটি নির্ধারণ করতে কয়েক দিন বা কয়েক সপ্তাহ সময় লাগতে পারে। সুতরাং এটি কোনও সিগুলেটারের পক্ষে মূল্যবান যে পূর্বাভাস উপসংহারে নয়।
মাইকেল কোহেন

উত্তর:


35

ম্যানেজমেন্ট বুঝতে পারে যে যখন আপনার কাছে হার্ডওয়্যার পরীক্ষার সম্পূর্ণ অ্যাক্সেস নেই তখন সফ্টওয়্যার বিকাশ এবং বজায় রাখতে আরও বেশি সময় লাগবে। আপনার অনুমানগুলি করার সময় আপনার এটিকে বিবেচনায় নেওয়া উচিত। আপনার সফ্টওয়্যারটিকে উত্পাদনের জন্য গ্রহণযোগ্যতার মানদণ্ডের অংশটি হ'ল আপনার উত্পাদন বন্ধ না করে বেশিরভাগ পরিস্থিতিতে সফ্টওয়্যারটি বজায় রাখার উপায় থাকতে হবে। আপনি যদি টিডিডি অনুশীলন করেন তবে প্রাকৃতিকভাবেই এটি হওয়া উচিত।

আমি million 60 মিলিয়ন এয়ারক্র্যাফ্টের জন্য সফটওয়্যার লিখতাম। স্পষ্টতই, সেখানে উচ্চতর নির্ভরযোগ্যতার প্রয়োজনীয়তা রয়েছে এবং তারা প্রতিটি বিকাশকারীকে তাদের ডেস্কের জন্য দিতে নারাজ। আমাদের কাছে প্রাথমিক পর্যায়ে প্রতিটি স্তরে আরও বেশি আসল হার্ডওয়্যার সহ পরীক্ষার পরিবেশগুলির 5 টি স্তর ছিল, একটি সম্পূর্ণ বিমান পর্যন্ত। আমি অনুমান করি যে আমাদের সফ্টওয়্যারটির 95% কেবলমাত্র অনুকরণকারী এবং ইউনিট পরীক্ষার মাধ্যমে বিকাশ ও ডিবাগ করা যায়। অবশিষ্ট বৈশিষ্ট্যগুলির 95% পরবর্তী স্তরের উপরে কাজ করা যেতে পারে, ইত্যাদি on

নিজের জন্য পরীক্ষার পরিবেশের একই স্তরের স্থাপনের চেষ্টা করুন। আপনি কখনই আসল হার্ডওয়্যার অ্যাক্সেসের প্রয়োজনের আশা করতে পারবেন না, তবে আপনি যদি এটি সেট আপ করে থাকেন যাতে হার্ডওয়্যার উপলব্ধ না হয়ে আপনি আপনার সফ্টওয়্যারটির জিইউআইতে কাজ করতে পারবেন না, আপনি একটি ব্যয়বহুল উত্সের জন্য মূল্যবান সময় নষ্ট করছেন (না আপনার আর্কিটেকচারের সাথে আপনার কিছু সংযোজন সম্পর্কিত সমস্যা রয়েছে উল্লেখ করুন)। বিবেচনা করুন যে অন্যান্য বিকাশকারীদের সম্ভবত আপনার মতো একই সমস্যা রয়েছে। আমি হার্ডওয়্যার বিক্রেতাকে জিজ্ঞাসা করব যদি তাদের ইতিমধ্যে এমুলেটর বা অন্য পরীক্ষার সংস্থান উপলব্ধ থাকে।

আপনার যদি কেবলমাত্র হার্ডওয়্যারটিতে সীমাবদ্ধ অ্যাক্সেস থাকে তবে আপনার মানসিকতাও কিছুটা পরিবর্তন করতে হবে। সাধারণ ক্রমিক পদ্ধতিতে আপনার অ্যাপ্লিকেশনটি ডিবাগ করার চেষ্টা করার পরিবর্তে আপনার প্রায়শই যত তাড়াতাড়ি সম্ভব তথ্য সংগ্রহের উদ্দেশ্যে বিশেষভাবে কোড লিখতে হবে।

উদাহরণস্বরূপ, সম্ভবত আপনার একটি ত্রুটি রয়েছে এবং আপনি 10 টি সম্ভাব্য কারণ সম্পর্কে ভাবতে পারেন। অপারেটর বিরতিতে থাকা 15 মিনিটের মধ্যে যদি কেবলমাত্র আপনি কোনও মেশিনে উঠতে পারেন তবে একটি সংক্ষিপ্ত, স্ব-রচিত, সঠিক (সংকলনযোগ্য) লিখুন, যা বাগটি ট্রিগার করে এবং এসএসসিসিই ব্যবহার করে 10 টি স্বয়ংক্রিয় পরীক্ষাগুলি আপনার তত্ত্বগুলি পরীক্ষা করতে লিখুন এবং একগুচ্ছ ডেটা লগ ইন করুন। এরপরে আপনার ডেস্কে ফিরে যতক্ষণ না আপনি আপনার পরবর্তী প্রচেষ্টাটির জন্য ডেটা স্যুইচ করতে হবে ততক্ষণ আপনি নিতে পারেন। ধারণাটি হ'ল হার্ডওয়্যার দিয়ে আপনার সীমিত সময়ের ইউটিলিটি সর্বাধিক করা।


এটি সর্বাধিক সম্পূর্ণ বলে এই উত্তরটি গ্রহণ করে - এবং আমি মনে করি "আপনার অনুশীলনগুলি পরিবর্তন করুন" এর সাথে "পরিচালনা সচেতন করুন" এর একটি ভাল ভারসাম্য। আমি মনে করি ডেকপলিংয়ের আরও ভাল স্তরের এবং কিছু স্তরের হার্ডওয়্যার সিমুলেটরগুলির জন্য কিছু প্রচেষ্টা ব্যয় করা সার্থক হওয়া উচিত এবং আমি এটি আমার অনুমানের মধ্যে প্রদর্শন করতে পারি। আমি বিশেষত কিছু দ্রুত পূর্ণ বৈশিষ্ট্যযুক্ত পরীক্ষাগুলিতে কিছু সংকুচিত হওয়ার টিপস পছন্দ করি যা ডিবাগ করার সময় প্রচুর ডেটা ক্যাপচার করে দেয় - আপনাকে ধন্যবাদ।
plast1k

14
"ম্যানেজমেন্ট বোঝে" পরে আমি পড়া বন্ধ করে দিয়েছি
প্লাজমাএইচ

1
"প্রতিটি বিকাশকারীকে তাদের ডেস্কের জন্য একটি দিতে নারাজ"। হাস্যকরভাবে, আপনি সম্ভবত সংখ্যাগুলি বেঁকে দিতে পেরেছিলেন যে প্রমাণ করতে যে প্রতিটি বিকাশকারীকে তাদের নিজস্ব $ 60 মিলিয়ন বিমান দিয়ে কাজ করা এয়ারলাইনের বিপর্যয়ের মোট ক্রমবর্ধমান ব্যয়ের চেয়ে সস্তা হবে!
মিঃ জাভাস্ক্রিপ্ট

15

আপনি এমন একটি সমস্যা সমাধানের চেষ্টা করছেন যা সমাধান করার মতো নয়।

ব্যবস্থাপনার সরঞ্জামগুলিতে অ্যাক্সেসকে অগ্রাধিকার দেওয়া দরকার। এর অর্থ হতে পারে আপনি আরও বেশি অ্যাক্সেস দিয়ে শেষ করেছেন তবে এর অর্থ আপনিও কম দিয়ে শেষ করতে পারেন।

আপনার পরিচালনা টিমের কাছে উদ্দেশ্যীয় বিন্যাসে আপনার যে চ্যালেঞ্জ রয়েছে তা উপস্থাপন করুন এবং তাদের গাইডেন্সের জন্য জিজ্ঞাসা করুন। আপনার উপস্থাপনাটি আরও শক্তিশালী হবে যদি আপনি অন্যদের যাদের অ্যাক্সেসের প্রয়োজন হয় তাদের সাথে সহযোগিতা করেন, তবে আপনারা সবাই একই সাথে আপনার কেস উপস্থাপন করতে পারেন।

সেখান থেকে সংস্থাটি (পরিচালনা) কে অগ্রাধিকার দিতে হবে কে কখন অ্যাক্সেস পায় এবং কখন। এটি একটি ব্যবসায়ের সিদ্ধান্ত যা তাদের গ্রহণ করা উচিত যেহেতু সম্পদের (অভাব) প্রাপ্যতা ব্যবসায়ের বিকাশকে প্রভাবিত করছে।


4
ব্যবস্থাপনার সাথে কথা বলতে সহায়তা করতে পারে এমন একটি জিনিস হ'ল সরঞ্জাম অ্যাক্সেস সম্পর্কে আপনার সময়সূচী (বা আপনার মাইলফলক) পূর্বাভাস। আপনি কেবলমাত্র আপনার সামনে থাকা হার্ডওয়্যার ব্যতীত এত কিছু করতে পারবেন এবং আপনি যদি এটি পরিষ্কার করে দেন যে তারা যখন আপনাকে এটি দেওয়ার সময় থেকে অনুমান হয় তখন ম্যানেজমেন্ট পুরো জ্ঞান নিয়ে সিদ্ধান্ত নিতে পারে।
মাইকেল কোহেন

4

আপনি কার্যকরভাবে অন্ধকে কোডিং করছেন।

যদি ম্যানেজমেন্ট পরীক্ষার ডিভাইসগুলির জন্য অর্থ প্রদান করে না, তবে আপনার বাগের আসল সম্ভাবনা রয়েছে, এমনকি আপনার যদি ব্যবহারের জন্য সত্যিকারের ডিভাইস ব্যবহার না করে তবে বিকাশও তার চেয়ে বেশি সময় নেয়।

ডিভাইসগুলির ব্যয় সম্পূর্ণ "বিকাশ" চক্রের জন্য বরাদ্দ করা দরকার না। হতে পারে এগুলি উত্পাদন ব্যবহারে বা ব্যাকআপ হিসাবে ঘোরানো যেতে পারে। তারা এমনকি অন্য কোথাও আবার বিক্রি হতে পারে?

সময় এবং অর্থ উভয়ই বাগ বাগের ফিক্সিংয়ের জন্য চেষ্টা করুন এবং ব্যয় করুন এবং আপনার দল / সংস্থাকে সামগ্রিক ব্যয় দেখান।


4

আপনার মনিবদের সাথে বিতর্ক করা খুব সহজ যখন আপনার কিছু নম্বর থাকে বা কমপক্ষে কিছু উপকারিতা এবং হাতের কাছে থাকা হয়, তাই আমার পরামর্শটি কোনও ব্যয় বনাম বেনিফিট বিশ্লেষণ করার চেষ্টা করছে। মোটামুটি ধারণাটি এরকম:

  • ডিভাইস সিমুলেটর লেখার জন্য আপনি কতটা বিকাশের প্রচেষ্টা আশা করছেন? (নোট করুন যে কোনও ডিভাইস সিমুলেটর মূল হার্ডওয়্যারটি 100% প্রতিস্থাপন করতে পারে না, বিশেষত যখন হার্ডওয়্যারটিতে কিছু অপ্রত্যাশিত quirks থাকে)।

  • এই জাতীয় সরঞ্জাম ছাড়া আপনি কত পরীক্ষার / ডিবাগিং প্রচেষ্টা আশা করেন? আপনার ল্যাব কর্মীদের জন্য ব্যয় অন্তর্ভুক্ত করুন কারণ পরীক্ষার উদ্দেশ্যে আপনাকে হার্ডওয়্যারটি ব্লক করতে হবে। বাগের কারণে সিস্টেমটি যে সময় ব্যবহার করা যায় না তার জন্য ব্যয়ও অন্তর্ভুক্ত করুন এবং মূল কারণটি খুঁজে পেতে আপনার সমস্যা হচ্ছে।

  • পরীক্ষার জন্য অতিরিক্ত হার্ডওয়্যার কত হবে?

  • পরীক্ষার উদ্দেশ্যে আপনি হার্ডওয়্যারটি ব্লক করার প্রয়োজনের কতটা সময় আশা করেন?

অবশ্যই, বাস্তবতা এত সহজ নাও হতে পারে, এবং এই সমীকরণে অনেকগুলি অজানা পরিবর্তনশীল রয়েছে তবে কিছু অনুমান করার চেষ্টা করুন এবং যেখানে আপনি অনিশ্চিত আছেন সেখানে আপনার পরিবেশ থেকে অন্য ব্যক্তিকে জিজ্ঞাসা করুন।

ফলাফলগুলি আপনার পরিচালনায় উপস্থাপন করুন, বিকল্পগুলি নিয়ে আলোচনা করুন এবং তারপরে তাদের সিদ্ধান্ত নিতে দিন।


আমি মনে করি আপনি এখানে বোঝাতে পারবেন না নোট করুন যে কোনও ডিভাইস সিমুলেটর খুব কমই মূল হার্ডওয়্যারকে 100% প্রতিস্থাপন করতে পারে , বিশেষত যখন হার্ডওয়্যারটিতে কিছু অপ্রত্যাশিত quirks থাকে
রামি

@ রুমি: সম্ভবত "ক্যান কদাচিৎ" শব্দটি কি সরল ইংরেজিতে শৃঙ্খলাবদ্ধ নয়? এফডাব্লুআইডাব্লু, আমি এই উত্তরটি পরিষ্কার করার জন্য আমার উত্তরটি পরিবর্তন করেছি, উত্তরের জন্য ধন্যবাদ।
ডক ব্রাউন

আমি স্থানীয়ভাবে ইংরেজি বলতে পারি না তবে এটি অদ্ভুতভাবে পড়েছে। ধন্যবাদ
রমী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.