#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
int help(string& s) {
  int cnt = 0;
  int i = 0;
  int j = 0;
  string tmp = "abacaba";
  while (i < s.size()) {
    int j = 0;
    int i1 = i;
    while (i1 < s.size() && j < tmp.size() && s[i1] == tmp[j]) {
      i1++;
      j++;
    }
    if (j == tmp.size()) cnt++;
    i++;
  }
  return cnt;
}
string help2(string& s) {
  int i = 0;
  int j = 0;
  string tmp = "abacaba";
  while (i < s.size()) {
    int j = 0;
    int i1 = i;
    string s2 = s;
    while (i1 < s.size() && j < tmp.size() &&
           (s[i1] == tmp[j] || s[i1] == '?')) {
      if (s[i1] == '?') s2[i1] = tmp[j];
      i1++;
      j++;
    }
    if (j == tmp.size() && help(s2) == 1) return s2;
    i++;
  }
  return "0";
}
string fill_bad(string& s) {
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '?') s[i] = 'z';
  }
  return s;
}
int main() {
  int T;
  cin >> T;
  for (int qq = 1; qq <= T; qq++) {
    int n;
    cin >> n;
    string s;
    cin >> s;
    if (help(s) > 1) {
      cout << "NO" << endl;
    } else if (help(s) == 1) {
      cout << "YES" << endl;
      cout << fill_bad(s) << endl;
    } else {
      string tt = help2(s);
      if (tt == "0") {
        cout << "NO" << endl;
      } else {
        cout << "YES" << endl;
        cout << fill_bad(tt) << endl;
      }
    }
  }
  return 0;
}
