Softwareontwikkeling en projectmanagement

Welk probleem is een statische-analysetool, toegepast op de broncode van firmware, het best in staat te vinden zonder het programma uit te voeren?

  1. AEen functie die gebruikers echt nodig hebben, ontbreekt in het requirementsdocument
  2. BPaden die een niet-geïnitialiseerde variabele lezen, en plaatsen die mogelijk buiten de grenzen van een array lezen of schrijven
  3. CBij een deel van de in serie geproduceerde printplaten worden signalen onderbroken door slechte soldeerverbindingen
Antwoord en toelichting tonen

Antwoord: B. Paden die een niet-geïnitialiseerde variabele lezen, en plaatsen die mogelijk buiten de grenzen van een array lezen of schrijven

Statische analyse onderzoekt de syntaxis, de control flow en de dataflow van broncode zonder die uit te voeren, en vindt problemen zoals het lezen van niet-geïnitialiseerde variabelen, arraytoegang buiten de grenzen, mogelijke dereferenties van een nullpointer en overtredingen van codeerstandaarden (zoals MISRA C, dat voor embedded C wordt gebruikt). Ze kan problemen vinden op paden die tests zelden bereiken, maar geeft ook valse meldingen, dus mensen beoordelen de resultaten. Ontbrekende eisen worden gevonden met reviews en afstemming met gebruikers, en slechte soldeerverbindingen met inspectie tijdens de productie en tests op echte hardware; analyse van broncode kan ze niet aan het licht brengen.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Softwareontwikkeling en projectmanagement

  1. Welke beschrijving van blackboxtesten is juist?
  2. Een invoerveld accepteert alleen gehele getallen; waarden van 1 tot en met 100 worden geaccepteerd en alle andere geven een foutmelding. Hoeveel equivalentieklassen zijn er in totaal (geldige en ongeldige klassen samen) als de invoer met equivalentiepartitionering wordt ingedeeld?
  3. Een programma bepaalt de toegangsprijs op basis van leeftijd (een geheel getal van 0 of meer): 0 tot 17 jaar betaalt het kindertarief, 18 tot 64 jaar het standaardtarief en 65 jaar of ouder het seniorentarief. Welke reeks testwaarden is het meest geschikt voor grenswaardenanalyse om de grenzen te controleren waar de tariefcategorie verandert?
  4. Volgens de specificatie moet er „een waarschuwing worden gegeven als de temperatuur 85 °C of hoger is”, maar in de firmware staat per vergissing „if (t > 85)”. De temperatuur t is een geheel getal. Met welke van de volgende testwaarden kan deze fout worden gevonden?
  5. De waarden van temp en err kunnen onafhankelijk van elkaar worden gekozen. Hoeveel testgevallen zijn er voor de code „if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); }” minimaal nodig om statementdekking te bereiken (elk statement minstens één keer uitvoeren)?