এসি ভিত্তিক এমসিইউ প্রকল্পের জন্য আমি কোন ইউনিট পরীক্ষার কাঠামো ব্যবহার করতে পারি?


15

আমি আমার এমসিইউ প্রকল্পে ইউনিট পরীক্ষাগুলি কীভাবে ব্যবহার করতে পারি এবং এটি সহজ করার জন্য কোন ফ্রেমওয়ার্ক ব্যবহার করতে পারি সে সম্পর্কে আমি ভাবছি।

আজ আমি লিনাক্স পিসি থেকে ওপেনওসিডি-জেট্যাগ সহ একটি স্টেম 32 ব্যবহার করছি, যেখানে এটি সমস্ত ক্লাসিক মেকফাইল থেকে নিয়ন্ত্রিত এবং জিসিসি সহ ক্রসকোম্পিলযুক্ত।

আমি নিজেই কিছু তৈরি করতে পারতাম, তবে যদি এমন কাঠামো থাকে যা আমি এটি ব্যবহার করতে পারি তবে তা দুর্দান্ত। (যদি ফ্রেমওয়ার্ক জেনকিনস / হাডসন পড়তে পারে এমন ফর্ম্যাটে ফলাফল আউটপুট করতে পারে তবে এটি একটি বোনাস)।

স্টেম 32 দিয়ে ইউনিট পরীক্ষার কাঠামোটি ব্যবহার করার কোনও উপায় আছে কি?


3
আমার কাছে পূর্ণ উত্তর লেখার সময় নেই, তবে আমি এই কাগজপত্র এবং এই ব্লগ সিরিজে পাওয়া অনেকগুলি সরঞ্জাম এবং কৌশল ব্যবহার করেছি । এক কথায়: সিএমক!
কেভিন ভার্মির

উত্তর:


4

সিপুস্তেস্ট এবং জেমস গ্রেনিংয়ের দুর্দান্ত http://pragprog.com/book/jgade/test-driven-development-for-eebed-c দেখুন

CppUTest এর সি এবং সি ++ এর জন্য সমর্থন রয়েছে এবং এটি মেকফিল টেম্পলেটগুলির একটি দুর্দান্ত সেট পেয়েছে যা আমাকে খুব তাড়াতাড়ি শুরু করেছিল।


একটি ইপাব সংস্করণ কিনেছেন, দেখুন এটি কোনও ভাল কিনা :)
জোহান

বইটি ভাল, তবে আমি মনে করি যে unityক্য (সেই বইয়ের অন্যান্য কাঠামো) আমার প্রয়োজনের আরও ভালভাবে স্যুট করবে।
জোহান

বইটি আমাকে সঠিক দিকে ঠেলে দেওয়ার কারণে গ্রহণযোগ্য।
জোহান

5

প্রচুর ভেরিয়েবল রয়েছে যা আপনার পরিস্থিতিতে ব্যবহারের জন্য সেরা ইউনিট পরীক্ষার কাঠামো নির্ধারণ করবে। আপনার পছন্দকে প্রভাবিত করতে পারে এমন কিছু আইটেম হ'ল:

  • লক্ষ্য ভাষা।
  • লাইব্রেরি সমর্থন কি উপলব্ধ। যেমন libc বা এর একটি কাটা ডাউন সংস্করণ।
  • লক্ষ্য অপারেটিং সিস্টেম। উদাঃ কিছুই নয়, ফ্রিআরটিওএস, কাস্টম।

বেশিরভাগ xUnit ধরণের ফ্রেমওয়ার্ক কার্যকারিতার কিছু বেস স্তর সরবরাহ করবে যা দরকারী হতে পারে। আমি কুনিটকে অতীতে কিছু সাফল্যের সাথে ব্যবহার করেছি । (উবুন্টু / ডেবিয়ানে libcunit1-dev প্যাকেজ)। বেশিরভাগ ফ্রেমওয়ার্কগুলিতে libc উপলব্ধ থাকতে হবে, কারও কারও কাছে অতিরিক্ত ওএস সমর্থন প্রয়োজন।

আরেকটি পরিবর্তনীয় যা মাত্র 3 লাইন দীর্ঘ, মিনুনিট

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

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

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

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

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

আমি এখন বিষয়বস্তু থেকে কিছুটা দূরে, তবে মনে করি এই ধারণাগুলি আপনার পরীক্ষার কাঠামো এবং পরীক্ষার পদ্ধতিগুলির চয়ন করতে সহায়তা করতে পারে।


আমি লক্ষ্য করেছি যে কীভাবে আমি কোডটিতে কোড পাই এবং আমি স্ক্রিপ্ট মোডে জিডিবি ব্যবহার করতে পারি বিভিন্ন ব্রেকপয়েন্টে যেমন টেস্ট_ক বা টেস্ট_ফয়েল ( ফান- টেক.সি / স্টেম 32 / টেস্টসুইট / ইন্ডেক্স.পিপি ) বন্ধ করতে। সুতরাং আমি অর্ধেক ধরণের। বিভিন্ন "পরীক্ষা" কীভাবে তৈরি করা যায় এটি আরও প্রশ্ন। আমার ধারণাগুলি আজ কিছুটা ফ্লেক্সিবল থেকে সামান্য, সে কারণেই আমি এক ধরণের কাঠামোর সন্ধান করতে শুরু করেছি।
জোহান

1

এম্বেইনটিট http://embunit.sourceforge.net/embunit/index.html দেখুন । এটি নিম্ন পাদদেশ সহ একটি এম্বেড করা সি ইউনিট পরীক্ষার কাঠামো।

আমরা এম্বেডেড মাইক্রোকন্ট্রোলার প্রকল্পগুলির কয়েকটিতে এটি সফলভাবে ব্যবহার করেছি। ডেস্কটপ ইউনিট পরীক্ষার কাঠামোর সাথে আপনি যে বিকল্পগুলি এবং বৈশিষ্ট্যগুলি পেয়েছেন সেগুলি আশা করবেন না। তবে এটি অবশ্যই যথেষ্ট শক্তিশালী।

এটিতে আপনার জন্য সংজ্ঞা নির্ধারিত বরাদ্দ রয়েছে, তাই আপনাকে minUnit এর মতো কাস্টম সংস্থাগুলি লেখার সময় বরাদ্দ দিতে হবে না।


1

কিছু সময় আগে আমি এই বিষয়ে একটি পূর্ণাঙ্গ টিউটোরিয়াল লিখেছি: ইউনিট-টেস্টিং (এম্বেড করা) সি অ্যাপ্লিকেশন সহ সি অ্যাপ্লিকেশন ; আমি এই প্রযুক্তিগুলি একগুচ্ছ প্রকল্পগুলিতে ব্যবহার করি এবং আমি এ পর্যন্ত বেশ খুশি।


2
এটি কেবলমাত্র একটি লিঙ্ক-উত্তর, এবং ইউআরএল পরিবর্তন হলে বা লিঙ্কটি নীচে নামলে এগুলি অদৃশ্য হয়ে যাবে। উত্তরের সাথে সম্পর্কিত তথ্যটি আপনার ব্যাখ্যা করা উচিত , তারপরে আপনি লিঙ্কটি একটি রেফারেন্স হিসাবে যুক্ত করতে পারেন।
পাইপ

2
@ পাইপ হ্যাঁ, তবে প্রশ্ন (মূলত পণ্যের সুপারিশ) এর মতো উত্তরগুলির জন্য অনুরোধ করে।
দিমিত্রি গ্রিগরিয়েভ

0

আমি কেবল এটি নিজের মধ্যে সন্ধান করছিলাম। আমি একটি তিনটি অংশ নিবন্ধ পেয়েছি যা এখানে ইউনিট পরীক্ষার কাঠামোর রূপরেখা দেয়:

http://www.eetimes.com/design/embedded/4007177/Doing-C-code-unit-testing-on-a-shoestring-Part-1-The-basics-and-the-tools

অস্টিন যা উল্লেখ করেছে তার সাথেও আমি একমত হব।


-1

লিন্ট চেষ্টা করুন, তবে আমি মনে করি না এটি ইউনিট পরীক্ষার জন্য, কোড বিশ্লেষণের জন্য।


2
স্ট্যাটিক কোড বিশ্লেষণ কোড কার্যকর করতে এবং এটি পরীক্ষা করতে সহায়তা করতে পারে না, সুতরাং এটি সত্যিই সহায়ক নয় l
জোহান

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