Heat oil in a 10-inch, oven-safe skillet or sauté pan. Add onion and pepper; sauté over medium heat 5 minutes, stirring frequently. Add mushrooms, cover, and sauté 3 minutes, stirring several times. Add garlic, and sauté 1 additional minute. Remove vegetable mixture from heat, and transfer to a plate to cool briefly. Wipe pan with paper towels, and return to stove.
Combine eggs, egg whites, milk, salt, pepper, and basil in a large bowl, stirring with a whisk until well blended; set aside. Heat skillet over medium heat for 2-3 minutes and add butter, swirling pan to melt butter evenly. Add vegetables to egg mixture in bowl, stir, and carefully pour entire mixture into heated skillet. Scatter cherry tomatoes and cheese over egg mixture (do not stir).
Cook frittata gently over medium-low heat 15-18 minutes or untilit is cooked most of the way through. To finish cooking the top, preheat broiler and place the frittata about 6-8 inches from heat for 2-4 minutes (watch frittata carefully to ensure that it doesn't burn).
Remove frittata from oven, cool on a wire rack for 5 minutes, and shake pan rapidly back and forth to loosen. Cool a few more minutes, then carefully put a plate over the frittata and invert it onto the plate. Invert it again onto another plate so the frittata is right side up. Refrigerate until ready to serve.