Vra

Ek het 'n SAT-oplosser vir 2-bevredigingsprobleem geskryf, iemand gee asseblief vir my 'n toetsgeval met sê 10 000 letters wat slegs een bevredigende opdrag het, dws net een oplossing

The format can be:(for 3 literals)
2            // No of clauses and then each clause
2 3
1 -2
corresponding to
(b+c).(a+!b)
Was dit nuttig?

Oplossing

Toetsdekking is gewoonlik moeilik, die meeste van die kere vergeet jy net van 'n faktor of ander.

Ek gaan gewoonlik voort in 'n paar stappe:

  1. Maak seker dat dit 'n onbenullige probleem (of sommige) oplos
  2. Toetsrandgevalle/grensvoorwaardes:0 klousule byvoorbeeld
  3. Toetsfoutgevalle:swak geformateerde invoer, probleme met geen oplossing nie
  4. Toetsprestasie / Massa-inspuiting (kyk of die program nie onder las ineenstort nie, nie lek nie, ...)

2) en 3) is redelik uitruilbaar, 4) moet net kom as jy maniere het om hierdie soort inligting te ondersoek (benchmarking, geheuelekopsporing ...).

'n Belangrike punt is dat jy nie jou kode moet reverse engineer om die toetse te skryf nie, want jy sal uiteindelik jou kode toets, maar nie toets dat dit aan die spesifikasies voldoen nie.

As dit 'n tuisprojek is, is spesifikasies gewoonlik informeel, maar dit bestaan ​​steeds (in jou kop) en dit is daarna dat jy die toetsgevalle moet produseer.

Ander wenke

Is hierdie benadering werk?

 (a + b ).(a + !b) 

Dit kan slegs satisified as 'n waar is.

 (a + !b).(!a + !b)

Kan net tevrede wees as b is vals. Vandaar

  (a + b ).(a + !b).(a + !b).(!a + !b)

Heeltemal spesifiseer waardes vir a en b. Ons kan dit nou uit te brei vir 'n aantal vasgekodeerde.

Om jou app

toets jou dalk ook teenstrydige requriements, vandaar iets met geen oplossing spesifiseer.
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top