Integration Testing এবং Test Driven Development (TDD)

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Unit Testing এবং Integration Testing |
247
247

Integration Testing কী?

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

Integration Testing এর লক্ষ্য:

  1. একাধিক মডিউলের ইন্টারঅ্যাকশন পরীক্ষা: যখন একাধিক মডিউল একসাথে কাজ করে, তখন তাদের ইন্টারঅ্যাকশন সঠিক কিনা তা নিশ্চিত করা।
  2. ডাটাবেস, API, বা এক্সটার্নাল সিস্টেমের সাথে ইন্টিগ্রেশন পরীক্ষা: বিভিন্ন উপাদান যেমন ডাটাবেস, API বা অন্য কোনো এক্সটার্নাল সিস্টেমের সাথে সঠিক যোগাযোগ হচ্ছে কিনা তা পরীক্ষা করা।
  3. প্রধান ফিচারের একযোগ কাজ করা: অ্যাপ্লিকেশনের প্রধান ফিচারগুলি একত্রে কাজ করছে কিনা তা যাচাই করা।

Integration Testing কিভাবে করবেন?

ASP.NET Core-এ Integration Testing করতে হলে কিছু টুল এবং প্রক্রিয়া অনুসরণ করতে হবে। আপনি xUnit, NUnit, বা MSTest এর মতো টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।

Integration Testing উদাহরণ:

ধরা যাক, আমাদের একটি API আছে যা ডাটাবেস থেকে ব্যবহারকারীর তথ্য ফেরত দেয়। এই API টেস্ট করতে আমরা নিম্নলিখিত টেস্ট লিখতে পারি।

  1. প্রথমে Test Project তৈরি করুন:
dotnet new xunit -n MyApp.IntegrationTests
  1. Integration Test Setup:

Test Project ফোল্ডারে TestServer এবং WebApplicationFactory ব্যবহার করে অ্যাপ্লিকেশনকে ইনিশিয়ালাইজ করুন।

public class UserApiIntegrationTests : IClassFixture<WebApplicationFactory<Startup>>
{
    private readonly HttpClient _client;
    private readonly WebApplicationFactory<Startup> _factory;

    public UserApiIntegrationTests(WebApplicationFactory<Startup> factory)
    {
        _factory = factory;
        _client = factory.CreateClient();
    }

    [Fact]
    public async Task GetUser_ReturnsSuccessStatusCode()
    {
        var response = await _client.GetAsync("/api/users/1");
        response.EnsureSuccessStatusCode();  // Verifies 2xx status code
    }
}

এই কোডটি WebApplicationFactory ব্যবহার করে অ্যাপের API রুটে রিকোয়েস্ট পাঠাচ্ছে এবং প্রাপ্ত রেসপন্স যাচাই করছে।


Test Driven Development (TDD) কী?

Test Driven Development (TDD) হলো একটি সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়া, যেখানে প্রথমে টেস্ট লেখা হয় এবং তারপর সেই টেস্টটি পাস করার মতো কোড লেখা হয়। এই প্রক্রিয়াটি কোডের গুণগত মান উন্নত করে এবং সফটওয়্যার ডেভেলপমেন্টে আরও স্থিতিশীলতা আনে।

TDD এর মূল নিয়ম:

  1. লিখুন টেস্ট: প্রথমে একটি টেস্ট লিখুন যা বর্তমান ফিচারের জন্য সঠিক ফলাফল প্রত্যাশা করে।
  2. কোড লিখুন: টেস্টটি পাস করার জন্য প্রয়োজনীয় কোড লিখুন।
  3. টেস্ট চালান: কোড চালিয়ে দেখুন, টেস্টটি পাস হচ্ছে কিনা।
  4. কোড রিফ্যাক্টর করুন: প্রয়োজনীয় উন্নতি বা ক্লিনআপ করুন।
  5. ধাপগুলো পুনরাবৃত্তি করুন: আরও নতুন ফিচার যোগ করার জন্য এই ধাপগুলো আবার করুন।

TDD এর উদাহরণ:

ধরা যাক, আমাদের একটি ফাংশন তৈরি করতে হবে যা দুটি সংখ্যা যোগ করবে। প্রথমে TDD পদ্ধতিতে টেস্ট লিখি।

১. টেস্ট লিখুন (Red Phase):

public class MathTests
{
    [Fact]
    public void Add_ReturnsCorrectSum()
    {
        // Arrange
        var math = new MathOperations();

        // Act
        var result = math.Add(1, 2);

        // Assert
        Assert.Equal(3, result);
    }
}

এখানে আমরা Add ফাংশনটির জন্য একটি টেস্ট লিখেছি, যেখানে 1 এবং 2 যোগ করার পর প্রত্যাশিত ফলাফল 3 হওয়া উচিত।

২. কোড লিখুন (Green Phase):

এখন কোড লিখি যাতে টেস্টটি পাস হয়।

public class MathOperations
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}

৩. টেস্ট চালান (Green Phase):

টেস্টটি চালালে, এটি পাস করবে এবং Add ফাংশনটি সঠিকভাবে কাজ করবে।

৪. কোড রিফ্যাক্টর করুন (Refactor Phase):

এখন কোডটি পরিষ্কার বা আরও উন্নত করা যায়, যদি প্রয়োজন হয়।


TDD এবং Integration Testing এর সম্পর্ক

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

সারাংশ

Integration Testing এবং Test Driven Development (TDD) হল দুটি গুরুত্বপূর্ণ সফটওয়্যার ডেভেলপমেন্ট কৌশল। Integration Testing ব্যবহারকারীর সিস্টেমের ইন্টিগ্রেশন পয়েন্টগুলো পরীক্ষা করতে সহায়ক, যেখানে TDD আপনার কোডের গুণগত মান এবং স্থায়িত্ব নিশ্চিত করতে সহায়ক। TDD কোড লেখার আগে টেস্ট তৈরি করে এবং সেই টেস্ট পাস করার জন্য কোড লেখার প্রক্রিয়া অনুসরণ করে, যা সিস্টেমের প্রতিটি ইউনিট ও উপাদানের সঠিক কার্যকারিতা নিশ্চিত করে। Integration Testing-এ একাধিক সিস্টেম বা মডিউলের একসাথে কাজ করা যাচাই করা হয়, যা সফটওয়্যারের বড় স্তরের টেস্টিং প্রক্রিয়া।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion