SANTA CLARA -- Quarterback Nick Mullens won the 49ers’ backup job a year ago and has done nothing to lose that spot on the depth chart in the 12 months since.
But has C.J. Beathard shown enough on the practice field to leap from a player who did not suit up for a game last season into the No. 2 role behind Jimmy Garoppolo?
Coach Kyle Shanahan is not saying.
With our All Access Daily newsletter, stay in the game with the latest updates on your beloved Bay Area and California sports teams!

“My rankings of our quarterbacks for you are they're both tied at two,” Shanahan said after the 49ers’ practice Friday inside Levi’s Stadium.
Beathard and Mullens both came to the 49ers in 2017. Beathard was a third-round draft pick, while Mullens was signed as an undrafted rookie.
Beathard started five games in both of his first two seasons. He completed 57.3 percent of his passes for 2,682 yards with 12 touchdowns and 13 interceptions.
Beathard and Mullens both look further along during training camp this summer, and have provided the 49ers with confidence that the team still can win games if something were to happen to Garoppolo.
San Francisco 49ers
Find the latest San Francisco 49ers news, highlights, analysis and more with NBC Sports Bay Area and California.
“I think C.J.’s done a great job,” Garoppolo said. “He comes ready every day. He's prepared. Just the competition factor between me, him, and Nick. It's one thing in the quarterback room that I love and it just pushes all of us. It makes us all better. At the end of the day, that's what you want.”
Mullens started eight games in 2018 when Garoppolo was on injured reserve with a torn ACL and a banged-up Beathard struggled. Mullens' 2,277 passing yards were the fourth-most in NFL history through eight games behind only Patrick Mahomes, Andrew Luck and Cam Newton.
Although Mullens did not attempt a pass in 2019, he told NBC Sports Bay Area late in the season that he felt more confident in his ability to produce based on his improvements physically and mentally since he last stepped on the field.
During practice on Friday, Mullens completed seven of 10 passes for 65 yards with an interception that deflected off the hands of rookie receiver Jauan Jennings. Another potential big-gainer to Jennings was dropped.
Beathard completed seven of 12 attempts for 75 yards, including a 38-yard touchdown pass to Tavon Austin. Rookie running back JaMycal Hasty dropped a well-thrown deep ball from Beathard on the previous play.
RELATED: Jimmy Garoppolo unflustered as 49ers' offense struggles in practice
It is clear Shanahan has confidence in both players as the 49ers plan once again to carry three quarterbacks into the regular season.
“They’ve been thrown in as two of the toughest situations that I've really had for any quarterback that I've ever coached, some of the situations we put them in our first two years,” Shanahan said. “They went in there and they did some good things and they did some bad things.
“That's so valuable for quarterbacks to get that and for some of the stuff they went through, for them not to fold and still to come back and they get better each day in training camps where they get the most reps. I've been very impressed with them, both of them, in these practices. I think both of them are further along than they were last year.”