#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
// #include<bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <vector>
#include <list>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <queue>
#include <ctime>
#include <cassert>
#include <complex>
#include <stack>
#include <string>
#include <cstring>
#include <chrono>
#include <random>
#include <bitset>
#include <sstream>
#include <iomanip>
using namespace std;


#define int int64_t
#define vi vector<int>
#define vb vector<bool>
#define vbb vector< vector<bool> >
#define all(x) (x).begin(), (x).end()
#define vii vector< vector<int> >
#define rip(dp, n, m) vector< vector<int> > dp(n, vector<int>(m,0))
#define ff first
#define ss second
#define pii pair<int64_t, int64_t>
#define miv map<int, vector<int> >
#define mp make_pair
#define pb push_back
#define prr(x) cout << (#x) <<'	' << (x) << endl
#define pr(x) cout  << (x) << endl
#define f(i,n) for(i=0;i<n;i++)
#define pqb priority_queue<int>
#define pqs priority_queue<int,vi,greater<int> >
#define setbits(x)  __builtin_popcountll(x)
#define zrobits(x)  __builtin_ctzll(x)
#define mod 1000000007
#define inf 1e18
#define ps(x,y) fixed<<setprecision(y)<<x
#define mk(arr,n,type)  type *arr=new type[n];
#define w(x) int x; cin>>x; while(x--)
#define FIO  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int32_t main()
{
    FIO;
    int i, n, j, m, k, l, t;
    cin >> t;
    while(t--)
    {
        cin >> n;
        string s;cin >> s;
        string s1="abacaba";
        k=0;
        for(i=0;i<=n-s1.length();i++)
        {
            string ss = s.substr(i, s1.length());
            bool bb=true;
            for(j=0;j<s1.length();j++)
                 if(ss[j]!=s1[j]) bb=false;
                
            if(bb)
                k++;

        }


        if(k>1)
        {
            cout << "No\n";
        }

        else if(k==1)
        {
                f(i,n) if(s[i]=='?') s[i]='z';

                cout << "Yes\n" << s << endl;
        }



        else
        {
        for(i=0;i<=n-s1.length();i++)
        {
            string ss = s.substr(i, s1.length());
            bool bb=true;
            for(j=0;j<s1.length();j++)
            {
                if(ss[j]!='?') {if(ss[j]!=s1[j]) bb=false;}
            }
            if(bb)
            {
                k++;
                for(j=i;j<i+s1.length();j++) s[j]=s1[j-i];
                f(l,n) if(s[l]=='?') s[l]='z';
                k=0;
                break;
                
            }
        }

        for(i=0;i<=n-s1.length();i++)
        {

            string ss = s.substr(i, s1.length());
            bool bb=true;
            for(j=0;j<s1.length();j++)
                 if(ss[j]!=s1[j]) bb=false;
                
            
            if(bb)
                k++;

        }

        if(k==1)
            cout << "Yes\n" << s << endl;

        if(k==0)    
            cout << "No\n";

        if(k>1) 
            cout << "No\n";

        }

    }
}
