         let final = result.final!
 
         XCTAssertNotNil(result.alternatives)
+        var alternativesWithConfidence = 0
         for alternative in result.alternatives {
-            validateSTTTranscription(alternative, final: final, settings: settings)
+            if alternative.confidence != nil {
+                alternativesWithConfidence += 1
+                validateSTTTranscription(alternative, best: true, final: final, settings: settings)
+            } else {
+                validateSTTTranscription(alternative, best: false, final: final, settings: settings)
+            }
+        }
+
+        if final {
+            XCTAssertEqual(alternativesWithConfidence, 1)
         }
 
         if settings.keywords?.count > 0 && final {

            XCTAssert(isEmpty || isNil)
        }

        if settings.wordConfidence == true && final {
            XCTAssertNotNil(transcription.wordConfidence)
            XCTAssertGreaterThan(transcription.wordConfidence!.count, 0)
            for word in transcription.wordConfidence! {


    func validateSTTTranscription(
        transcription: SpeechToTextTranscription,
        best: Bool,
        final: Bool,
        settings: SpeechToTextSettings)
    {
        XCTAssertNotNil(transcription.transcript)
        XCTAssertGreaterThan(transcription.transcript!.characters.count, 0)

        if best && final {
            XCTAssertNotNil(transcription.confidence)
            XCTAssertGreaterThanOrEqual(transcription.confidence!, 0.0)
            XCTAssertLessThanOrEqual(transcription.confidence!, 1.0)
