#include <bits/stdc++.h>
using namespace std;
using pqboro = priority_queue<long long, vector<long long>, less<long long>>;
using pqchoto =
    priority_queue<long long, vector<long long>, greater<long long>>;
template <typename T>
string toString(T Number) {
  stringstream ss;
  ss << Number;
  return ss.str();
}
template <typename T>
long long toll(T str) {
  stringstream ss;
  ss << str;
  long long num;
  ss >> num;
  return num;
}
const int N = 2e5 + 7;
const int M = 1e9 + 7;
const long long inf = 0x7f7f7f7f7f7f7f7f;
void calc() {
  long long n, m, i, j, k, x;
  string s;
  cin >> n >> s;
  string t = "abacaba";
  m = t.size();
  for (i = 0; i < n; ++i) {
    string tt = s;
    for (j = 0; j < m and i + j < n; j++) {
      if (tt[i + j] == '?') tt[i + j] = t[j];
    }
    int a = tt.find(t);
    int b = tt.find(t, a + 1);
    if (a != string::npos and b == string::npos) {
      cout << "Yes"
           << "\n";
      for (i = 0; i < n; ++i) cout << (tt[i] == '?' ? 'x' : tt[i]);
      cout << endl;
      return;
    }
  }
  cout << "No"
       << "\n";
}
int main() {
  int tc;
  cin >> tc;
  while (tc--) calc();
  return 0;
}
