Mobile application testing
মোবাইল অ্যাপ্লিকেশন টেস্টিং এমন একটি প্রক্রিয়া যার মাধ্যমে হ্যান্ডহেল্ড মোবাইল ডিভাইসের জন্য তৈরি অ্যাপ্লিকেশন সফ্টওয়্যারটি তার কার্যকারিতা, ব্যবহারযোগ্যতা এবং ধারাবাহিকতার জন্য পরীক্ষা করা হয়। মোবাইল অ্যাপ্লিকেশন পরীক্ষা একটি স্বয়ংক্রিয় বা ম্যানুয়াল ধরনের পরীক্ষা হতে পারে। মোবাইল অ্যাপ্লিকেশনগুলি হয় আগে থেকে ইনস্টল করা থাকে অথবা মোবাইল সফ্টওয়্যার বিতরণ প্ল্যাটফর্ম থেকে ইনস্টল করা যেতে পারে। 2015 সালে বিশ্বব্যাপী মোবাইল অ্যাপের মোট আয় ছিল 69.7 কোটি মার্কিন ডলার এবং 2020 সালের মধ্যে এটি 1 বিলিয়ন মার্কিন ডলার হবে বলে পূর্বাভাস দেওয়া হয়েছে। ব্লুটুথ, জিপিএস, সেন্সর এবং ওয়াই-ফাই হল পরিধানযোগ্য যন্ত্রের কিছু মূল প্রযুক্তি। মোবাইল অ্যাপ্লিকেশন টেস্টিং সেই অনুযায়ী ফিল্ড টেস্টিং, ব্যবহারকারীর ফোকাস এবং হার্ডওয়্যার এবং সফ্টওয়্যারকে একযোগে পরীক্ষা করার প্রয়োজনীয়তার দিকে মনোনিবেশ করে। মোবাইল অ্যাপ্লিকেশন পরীক্ষার মূল চ্যালেঞ্জগুলি অবশ্যই ডাউনলোডযোগ্য হতে হবেঃ অ্যাপ্লিকেশনটি অবশ্যই নির্দিষ্ট প্ল্যাটফর্মের জন্য সাধারণত একটি অ্যাপ স্টোর থেকে উপলব্ধ হতে হবে। মোবাইল প্ল্যাটফর্ম/ওএস-এর বৈচিত্র্যঃ বাজারে বিভিন্ন মোবাইল অপারেটিং সিস্টেম রয়েছে। এর মধ্যে প্রধান হল অ্যান্ড্রয়েড, আইওএস এবং উইন্ডোজ ফোন। প্রতিটি অপারেটিং সিস্টেমের নিজস্ব সীমাবদ্ধতা রয়েছে। ডিভাইসের উপলব্ধতাঃ ডিভাইস এবং অপারেটিং সিস্টেম সংস্করণগুলির ক্রমবর্ধমান তালিকা থাকলে সঠিক সেটের ডিভাইসগুলিতে অ্যাক্সেস একটি ধ্রুবক মোবাইল অ্যাপ্লিকেশন পরীক্ষার চ্যালেঞ্জ। পরীক্ষকরা যদি বিভিন্ন স্থানে ছড়িয়ে থাকেন তবে যন্ত্রগুলিতে প্রবেশাধিকার আরও বেশি চ্যালেঞ্জিং হয়ে উঠতে পারে। মোবাইল নেটওয়ার্ক অপারেটরঃ বিশ্বে 400 টিরও বেশি মোবাইল নেটওয়ার্ক অপারেটর রয়েছে; কেউ কেউ সিডিএমএ, কেউ কেউ জিএসএম, এবং অন্যরা ফোমা এবং টিডি-এসসিডিএমএ-এর মতো কম প্রচলিত নেটওয়ার্ক মান ব্যবহার করে। স্ক্রিপ্টিংঃ বিভিন্ন ধরনের যন্ত্র একটি পরীক্ষার স্ক্রিপ্ট (স্ক্রিপ্টিং) সম্পাদনকে একটি প্রধান চ্যালেঞ্জ করে তোলে। যেহেতু কীস্ট্রোক, ইনপুট পদ্ধতি, মেনু কাঠামো এবং প্রদর্শন বৈশিষ্ট্যগুলিতে ডিভাইসগুলি পৃথক হয়, তাই প্রতিটি ডিভাইসে একটি একক স্ক্রিপ্ট কাজ করে না। পরীক্ষার পদ্ধতিঃ মোবাইল অ্যাপ্লিকেশনগুলি পরীক্ষা করার দুটি প্রধান উপায় রয়েছেঃ বাস্তব ডিভাইসে পরীক্ষা করা বা এমুলেটরগুলিতে পরীক্ষা করা। এমুলেটরগুলি প্রায়শই এমন সমস্যাগুলি মিস করে যা কেবল আসল ডিভাইসে পরীক্ষার মাধ্যমে ধরা যেতে পারে, তবে বাজারে বিভিন্ন ডিভাইসের সংখ্যার কারণে আসল ডিভাইসগুলি কেনার জন্য ব্যয়বহুল এবং পরীক্ষার জন্য ব্যবহার করতে সময়সাপেক্ষ হতে পারে। সামঞ্জস্যঃ সামঞ্জস্যতা পরীক্ষা করা প্রয়োজন; এটি নিশ্চিত করা যে অ্যাপ্লিকেশনটি বিভিন্ন ডিভাইসের বৈশিষ্ট্যগুলির সাথেও ধারাবাহিকভাবে কাজ করে, যেমন বিভিন্ন পর্দার আকার এবং রেজোলিউশন। ফোনটি তুলতে সক্ষম হওয়া উচিতঃ অ্যাপ্লিকেশনটি কার্যকর করার সময় একটি কল তুলতে সক্ষম হওয়া উচিত। মোবাইল ডিভাইসের বৈচিত্র্যঃ মোবাইল ডিভাইসগুলি বিভিন্ন হার্ডওয়্যার ক্ষমতার সাথে স্ক্রিন ইনপুট পদ্ধতিতে (কিউ. ডব্লিউ. ই. আর. টি. ওয়াই, স্পর্শ, স্বাভাবিক) পৃথক হয়। মোবাইল অ্যাপ্লিকেশন পরীক্ষার ধরন কার্যকরী পরীক্ষা নিশ্চিত করে যে অ্যাপ্লিকেশনটি প্রয়োজনীয়তা অনুযায়ী কাজ করছে। এর জন্য পরিচালিত বেশিরভাগ পরীক্ষা ইউজার ইন্টারফেস এবং কল ফ্লো দ্বারা পরিচালিত হয়। পরীক্ষাগার পরীক্ষা, সাধারণত নেটওয়ার্ক বাহক দ্বারা পরিচালিত হয়, সম্পূর্ণ বেতার নেটওয়ার্ক অনুকরণ করে করা হয়। যখন কোনও মোবাইল অ্যাপ্লিকেশন কিছু কাজ সম্পাদনের জন্য ভয়েস এবং/অথবা ডেটা সংযোগ ব্যবহার করে তখন কোনও ত্রুটি খুঁজে বের করার জন্য এই পরীক্ষাটি করা হয়। কম ব্যাটারি, খারাপ নেটওয়ার্ক কভারেজ, কম উপলব্ধ মেমরি, একাধিক ব্যবহারকারীর দ্বারা অ্যাপ্লিকেশনের সার্ভারে একযোগে অ্যাক্সেস এবং অন্যান্য অবস্থার মতো নির্দিষ্ট পরিস্থিতিতে অ্যাপ্লিকেশনের কার্যকারিতা এবং আচরণ পরীক্ষা করার জন্য কর্মক্ষমতা পরীক্ষা করা হয়। একটি অ্যাপ্লিকেশনের কার্যকারিতা দুটি দিক থেকে প্রভাবিত হতে পারেঃ অ্যাপ্লিকেশনের সার্ভারের দিক এবং ক্লায়েন্টের দিক। উভয় পরীক্ষা করার জন্য কর্মক্ষমতা পরীক্ষা করা হয়। মেমরি লিকেজ টেস্টিংঃ মেমরি লিকেজ ঘটে যখন কোনও কম্পিউটার প্রোগ্রাম বা অ্যাপ্লিকেশন বরাদ্দ করা মেমরি পরিচালনা করতে অক্ষম হয় যার ফলে অ্যাপ্লিকেশনটির দুর্বল কর্মক্ষমতা এবং সিস্টেমের সামগ্রিক মন্দা ঘটে। যেহেতু মোবাইল ডিভাইসগুলিতে উপলব্ধ মেমরির উল্লেখযোগ্য সীমাবদ্ধতা রয়েছে, তাই একটি অ্যাপ্লিকেশন ইন্টারাপ্ট টেস্টিংয়ের সঠিক কার্যকারিতার জন্য মেমরি ফুটো পরীক্ষা অত্যন্ত গুরুত্বপূর্ণঃ একটি অ্যাপ্লিকেশন কাজ করার সময় ইনকামিং কল বা নেটওয়ার্ক কভারেজ আউটেজ এবং পুনরুদ্ধারের মতো বেশ কয়েকটি ব্যাঘাতের মুখোমুখি হতে পারে। বিভিন্ন ধরনের বাধাগুলি হলঃ ইনকামিং এবং আউটগোয়িং এস. এম. এস এবং এম. এম. এস ইনকামিং এবং আউটগোয়িং কল ইনকামিং বিজ্ঞপ্তি ব্যাটারি অপসারণ কেবল সন্নিবেশ এবং ডেটা স্থানান্তর নেটওয়ার্ক বিভ্রাট এবং পুনরুদ্ধারের জন্য অপসারণ মিডিয়া প্লেয়ার চালু/বন্ধ ডিভাইস পাওয়ার সাইকেল একটি অ্যাপ্লিকেশন স্থগিত অবস্থায় গিয়ে এবং পরে পুনরায় শুরু করে এই বাধাগুলি পরিচালনা করতে সক্ষম হওয়া উচিত। অ্যাপ্লিকেশনটি তার লক্ষ্য অর্জন করছে কিনা এবং ব্যবহারকারীদের কাছ থেকে অনুকূল প্রতিক্রিয়া পাচ্ছে কিনা তা যাচাই করার জন্য ব্যবহারযোগ্যতা পরীক্ষা করা হয়। এটি গুরুত্বপূর্ণ কারণ একটি অ্যাপ্লিকেশনের ব্যবহারযোগ্যতা বাণিজ্যিক সাফল্যের চাবিকাঠি (এটি ব্যবহারকারীর বন্ধুত্ব ছাড়া আর কিছুই নয়)। ব্যবহারযোগ্যতা পরীক্ষার আরেকটি গুরুত্বপূর্ণ অংশ হল সমস্ত ডিভাইসে ব্যবহারকারীর অভিজ্ঞতা অভিন্ন কিনা তা নিশ্চিত করা। পরীক্ষার এই বিভাগটি বিভিন্ন মোবাইল ডিভাইসের মূল চ্যালেঞ্জ এবং মোবাইল প্ল্যাটফর্ম/ওএসের বৈচিত্র্যকে মোকাবেলা করার আশা করে, যাকে ডিভাইস বিভাজনও বলা হয়। এই ধরনের ব্যবহারযোগ্যতা পরীক্ষার একটি মূল অংশ হল নিশ্চিত হওয়া যে বিভিন্ন ডিভাইসে ইউজার ইন্টারফেসের কার্যকারিতা, স্থাপন বা আকারে কোনও বড় ত্রুটি নেই। ইনস্টলেশন টেস্টিংঃ কিছু মোবাইল অ্যাপ্লিকেশন ডিভাইসে আগে থেকে ইনস্টল করা থাকে যেখানে অন্যদের দোকান দ্বারা ইনস্টল করতে হয়। ইনস্টলেশন টেস্টিং নিশ্চিত করে যে ইনস্টলেশন প্রক্রিয়াটি ব্যবহারকারীকে কোনও সমস্যার মুখোমুখি না করেই মসৃণভাবে চলে। এই পরীক্ষার প্রক্রিয়ায় একটি অ্যাপ্লিকেশন শংসাপত্র পরীক্ষার ইনস্টলেশন, আপডেট এবং আনইনস্টল অন্তর্ভুক্ত রয়েছেঃ সম্মতি শংসাপত্র পেতে, প্রতিটি মোবাইল ডিভাইসকে বিভিন্ন মোবাইল প্ল্যাটফর্ম দ্বারা নির্ধারিত নির্দেশিকাগুলির বিরুদ্ধে পরীক্ষা করা প্রয়োজন। নিরাপত্তা পরীক্ষাঃ হ্যাকিং, প্রমাণীকরণ এবং অনুমোদন নীতি, তথ্য সুরক্ষা, অধিবেশন পরিচালনা এবং অন্যান্য নিরাপত্তা মানগুলির দুর্বলতা পরীক্ষা করে। অবস্থান পরীক্ষাঃ নেটওয়ার্ক এবং অবস্থানের সাথে সংযোগের পরিবর্তন হয়, তবে আপনি একটি পরীক্ষাগারের সেই ওঠানামা পরিস্থিতিগুলি অনুকরণ করতে পারবেন না। শুধুমাত্র দেশে অ-স্বয়ংক্রিয় পরীক্ষকরা ব্যাপক ব্যবহারযোগ্যতা এবং কার্যকারিতা পরীক্ষা করতে পারেন। পুরনো সফ্টওয়্যার পরীক্ষাঃ সবাই নিয়মিত তাদের অপারেটিং সিস্টেম আপডেট করে না। কিছু অ্যান্ড্রয়েড ব্যবহারকারীর নতুন সংস্করণে প্রবেশাধিকার নাও থাকতে পারে। পেশাদার পরীক্ষকরা পুরনো সফ্টওয়্যার পরীক্ষা করতে পারেন। লোড টেস্টিংঃ যখন অনেক ব্যবহারকারী একই সাথে কোনও অ্যাপ বা গেম ডাউনলোড, লোড এবং ব্যবহার করার চেষ্টা করেন, তখন ধীর লোড সময় বা ক্র্যাশ ঘটতে পারে যার ফলে অনেক গ্রাহক আপনার অ্যাপ, গেম বা ওয়েবসাইট পরিত্যাগ করতে পারে। ম্যানুয়ালি করা অভ্যন্তরীণ মানব পরীক্ষা লোড পরীক্ষা করার সবচেয়ে কার্যকর উপায়। ব্ল্যাক-বক্স টেস্টিংঃ যেখানে অ্যাপ্লিকেশন কোড এবং লজিক না দেখে অ্যাপ্লিকেশনটি পরীক্ষা করা হয়। পরীক্ষকের কাছে ইনপুট করার জন্য নির্দিষ্ট পরীক্ষার তথ্য থাকে এবং সংশ্লিষ্ট আউটপুট যা অ্যাপ্লিকেশনটির তৈরি করা উচিত, এবং পরীক্ষক যা আশা করেছিলেন তার সাথে সামঞ্জস্যপূর্ণ ডেটা আউটপুট করার জন্য প্রোগ্রামের সন্ধানকারী পরীক্ষার তথ্য ইনপুট করে। পরীক্ষার এই পদ্ধতিটি সফ্টওয়্যার পরীক্ষার প্রতিটি স্তরে কার্যত প্রয়োগ করা যেতে পারেঃ ইউনিট, ইন্টিগ্রেশন, সিস্টেম এবং গ্রহণযোগ্যতা। ক্রাউডসোর্সড টেস্টিংঃ সাম্প্রতিক বছরগুলিতে, ক্রাউডসোর্সড টেস্টিং জনপ্রিয় হয়ে উঠেছে কারণ সংস্থাগুলি পরীক্ষকদের একটি বিশ্বব্যাপী সম্প্রদায় ব্যবহার করে মোবাইল অ্যাপ্লিকেশনগুলি দ্রুত এবং সস্তা পরীক্ষা করতে পারে। ডিভাইস এবং অপারেটিং সিস্টেমের ক্রমবর্ধমান বৈচিত্র্যের পাশাপাশি স্থানীয়করণের প্রয়োজনের কারণে, ছোট অভ্যন্তরীণ পরীক্ষার দলগুলির সাথে মোবাইল অ্যাপ্লিকেশনগুলি ব্যাপকভাবে পরীক্ষা করা কঠিন। পরীক্ষকদের একটি বিশ্বব্যাপী সম্প্রদায় বিভিন্ন ডিভাইস এবং প্ল্যাটফর্মে সহজ প্রবেশাধিকার প্রদান করে। বিশ্বব্যাপী বিতরণকৃত একটি দল একাধিক স্থানে এবং বিভিন্ন নেটওয়ার্ক অবস্থার অধীনেও এটি পরীক্ষা করতে পারে। পরিশেষে, স্থানীয়করণের সমস্যাগুলি প্রয়োজনীয় ভৌগোলিক অঞ্চলে পরীক্ষক নিয়োগের মাধ্যমে পরীক্ষা করা যেতে পারে। যেহেতু প্রকৃত ব্যবহারকারীরা বাস্তব ডিভাইস ব্যবহার করে অ্যাপ্লিকেশনটি পরীক্ষা করে, তাই এটি বাস্তব বিশ্বের পরিস্থিতিতে ব্যবহারকারীদের সম্মুখীন হওয়া সমস্যাগুলি খুঁজে পাওয়ার সম্ভাবনা বেশি। তথ্যসূত্র মোবাইল সফ্টওয়্যার ডেভেলপমেন্ট সফ্টওয়্যার টেস্টিং মোবাইল ফোন