233:
out of them. In this way the heaviest task is distributed across as many computers as possible. Since the calculation of an abstract test case from a test class is completely independent from each other, this architecture speeds up the entire process proportionally with respect to the number of
166:
Fastest users can prune subtrees or individual leaves of testing trees by issuing two commands. These commands will prune all the test classes in the subtree regardless of them being empty or not. The main purpose of these commands is to allow engineers to reduce the number of or to eliminate
188:
between these sets. Each leaf predicate is evaluated on each element of this
Cartesian product until one satisfies the predicate (meaning that an abstract test case was found) or until it is exhausted (meaning that either the test class is
258:
are essential to the method. They are the tools that engineers must use to create the most discovering test cases possible. Then, the more sound testing tactics available to engineers the better.
193:
or the finite model is inadequate). In the last case, the user has the chance to assist the tool in finding the right finite model or to prune the test class because it is unsatisfiable.
846:
Cristiá, Maximiliano; Albertengo, Pablo; RodrĂguez
Monetti, Pablo (2010). "Pruning Testing Trees in the Test Template Framework by Detecting Mathematical Contradictions".
221:
application. The application can be installed in a number of computers each acting as client, a server or both. Users access the application through clients which send
96:(DNF). It is the only testing tactic applied by default (regardless of whether the user has added or not other testing tactics) and the first one to be applied.
144:
To prune a testing tree, Fastest analyzes the predicate of each leaf to determine if the predicate is a contradiction or not. Since this problem is
148:, the tool implements a best-effort algorithm that can be improved by users. The most important aspect of the algorithm is a library of so called
54:
795:
Cristiá, Maximiliano; RodrĂguez
Monetti, Pablo (2009). "Implementing and Applying the Stocks-Carrington Framework for Model-Based Testing".
102:(SP). The user can add, modify and delete standard partitions for any predefined Z mathematical operator by simply editing a text file.
265:
provided by the tool. This interface has methods to configure and apply testing tactics. The interface definition is the following:
829:
180:
by calculating a finite model for each leaf in a testing tree. Finite models are calculated by restricting the type of each
152:
each of which represents a family of contradictions. This library can be extended by users by simply editing a text file.
70:
230:
177:
78:
241:
each instance of
Fastest is completely independent of each other. All the tasks are computed in the local computer.
181:
62:
868:
797:
Formal
Methods and Software Engineering, 11th International Conference on Formal Engineering Methods, ICFEM 2009
255:
123:
117:
111:
105:
99:
93:
58:
840:
873:
222:
66:
49:
Fastest presents a command-line user interface. The user first needs to load a Z specification written in
202:
662:
251:
218:
38:
831:
Information
Technology — Z Formal Specification Notation — Syntax, Type System and Semantics
65:
of each operation. After testing trees have been generated, users can browse them and their
8:
878:
848:
8th IEEE International
Conference on Software Engineering and Formal Methods (SEFM), 2010
667:
145:
30:
808:
Stocks, Phil; Carrington, David (1996), "A framework for specification-based testing",
57:
standard. Then, the user has to enter a list of the operations to test as well as the
206:
185:
817:
262:
800:
261:
In
Fastest users can add testing tactics of their own by implementing the Tactic
321:* makes possible its application to a test class in order to generate new ones.
318:* Interface that abstracts a testing tactic (needed to generate test trees) and
190:
20:
77:. Once testing trees have been pruned, users can instruct Fastest to find one
862:
342:* Applies this tactic to the specified test class and returns the list with
34:
821:
845:
752:
739:
726:
61:
to apply to each of them. In a third step
Fastest generates the
50:
573:* Gets the instance of TacticInfo associated to this object.
540:* Sets the instance of TacticInfo associated to this object.
851:
89:
Currently, Fastest supports the following testing tactics:
600:* @return the string with the description of this tactic.
794:
778:
765:
687:
171:
84:
184:
variable to a finite set and then by calculating the
74:
480:* Gets the Z schema box of the operation under test.
447:* Sets the Z schema box of the operation under test.
423:* Gets the Z schema box of the operation under test.
156:
are conjunctions of parametric Z atomic predicates.
135:
Fastest provides two ways of pruning testing trees:
41:(TTF) proposed by Phil Stocks and David Carrington.
209:project. The tool can be used in one of two modes:
130:
33:tool that works with specifications written in the
390:* Sets the specification of the system under test.
860:
807:
753:Cristia, Rodriguez Monetti & Albertengo 2010
740:Cristia, Rodriguez Monetti & Albertengo 2010
727:Cristia, Rodriguez Monetti & Albertengo 2010
700:
196:
245:
828:
713:
810:IEEE Transactions on Software Engineering
504:* Parses the parameters of this tactic.
861:
621:* Sets the description of this tactic.
597:* Gets the description of this tactic.
172:How Fastest finds abstract test cases
779:Cristia & Rodriguez Monetti 2009
766:Cristia & Rodriguez Monetti 2009
688:Cristia & Rodriguez Monetti 2009
85:Testing tactics supported by Fastest
81:for each leaf in each testing tree.
273:client.blogic.testing.ttree.tactics
13:
69:, and, more importantly, they can
14:
890:
16:Computer programming testing tool
131:Pruning testing trees in Fastest
771:
758:
745:
732:
719:
706:
693:
680:
291:net.sourceforge.czt.z.ast.Spec
118:Proper Subset of Set Extension
1:
788:
345:* the generated test classes.
701:Stocks & Carrington 1996
7:
656:
197:Architecture and technology
37:. The tool implements the
10:
895:
837:, 2002, pp. 196 pages
799:. Rio de Janeiro, Brazil:
246:Adding new testing tactics
18:
205:application based on the
75:automatically or manually
673:
267:
250:As can be seen from the
44:
663:Test Template Framework
229:) which try to find an
207:Community Z Tools (CZT)
167:unimportant test cases.
124:Subset of Set Extension
94:Disjunctive Normal Form
39:Test Template Framework
19:For the 2011 film, see
869:Software testing tools
53:format verifying the
874:Formal methods tools
624:* @param description
154:Elimination theorems
150:elimination theorems
73:any test class both
668:Model-based testing
543:* @param tacticInfo
225:to servers (called
217:Fastest works as a
178:abstract test cases
100:Standard partitions
31:model-based testing
841:ISO/IEC 13568:2002
231:abstract test case
139:Automatic pruning.
79:abstract test case
822:10.1109/32.553698
450:* @param opScheme
393:* @param opScheme
309:common.z.OpScheme
186:Cartesian product
886:
855:
838:
836:
824:
804:
782:
775:
769:
762:
756:
749:
743:
736:
730:
723:
717:
710:
704:
697:
691:
684:
652:
649:
646:
643:
640:
637:
634:
631:
628:
625:
622:
619:
616:
613:
610:
607:
604:
601:
598:
595:
592:
589:
586:
583:
580:
577:
574:
571:
568:
565:
562:
559:
556:
553:
550:
547:
544:
541:
538:
535:
532:
529:
526:
523:
520:
517:
514:
511:
508:
505:
502:
499:
496:
493:
490:
487:
484:
481:
478:
475:
472:
469:
466:
463:
460:
457:
454:
451:
448:
445:
442:
439:
436:
433:
430:
427:
424:
421:
418:
415:
412:
409:
406:
403:
400:
397:
394:
391:
388:
385:
382:
379:
376:
373:
370:
367:
364:
361:
358:
355:
352:
349:
346:
343:
340:
337:
334:
331:
328:
325:
322:
319:
316:
313:
310:
307:
304:
301:
298:
295:
292:
289:
286:
283:
280:
277:
274:
271:
239:application mode
234:testing servers.
215:distributed mode
112:In Set Extension
894:
893:
889:
888:
887:
885:
884:
883:
859:
858:
850:. Pisa, Italy:
834:
816:(11): 777–793,
801:Springer-Verlag
791:
786:
785:
776:
772:
763:
759:
750:
746:
737:
733:
724:
720:
714:Z Standard 2002
711:
707:
698:
694:
685:
681:
676:
659:
654:
653:
650:
647:
644:
641:
638:
635:
632:
629:
626:
623:
620:
617:
614:
611:
608:
605:
602:
599:
596:
593:
590:
587:
584:
581:
578:
575:
572:
569:
566:
563:
560:
557:
554:
551:
548:
545:
542:
539:
536:
533:
530:
527:
524:
521:
518:
515:
512:
509:
506:
503:
500:
497:
494:
491:
488:
485:
482:
479:
476:
473:
470:
467:
464:
461:
458:
455:
452:
449:
446:
443:
440:
437:
434:
431:
428:
425:
422:
419:
416:
413:
410:
407:
404:
401:
398:
395:
392:
389:
386:
383:
380:
377:
374:
371:
368:
365:
362:
359:
356:
353:
350:
348:* @param tClass
347:
344:
341:
338:
335:
332:
329:
326:
323:
320:
317:
314:
311:
308:
305:
302:
300:common.z.TClass
299:
296:
293:
290:
287:
284:
281:
278:
275:
272:
269:
256:testing tactics
248:
227:testing servers
199:
176:The tool finds
174:
161:Manual pruning.
133:
87:
59:testing tactics
47:
24:
17:
12:
11:
5:
892:
882:
881:
876:
871:
857:
856:
843:
826:
805:
790:
787:
784:
783:
770:
757:
744:
731:
718:
705:
692:
678:
677:
675:
672:
671:
670:
665:
658:
655:
636:setDescription
612:getDescription
268:
254:presentation,
247:
244:
243:
242:
235:
198:
195:
173:
170:
169:
168:
163:
162:
158:
157:
141:
140:
132:
129:
128:
127:
121:
115:
109:
103:
97:
86:
83:
46:
43:
21:Fastest (film)
15:
9:
6:
4:
3:
2:
891:
880:
877:
875:
872:
870:
867:
866:
864:
853:
849:
844:
842:
833:
832:
827:
823:
819:
815:
811:
806:
802:
798:
793:
792:
780:
774:
767:
761:
754:
748:
741:
735:
728:
722:
715:
709:
702:
696:
689:
683:
679:
669:
666:
664:
661:
660:
588:getTacticInfo
555:setTacticInfo
495:getOriginalOp
462:setOriginalOp
266:
264:
259:
257:
253:
240:
236:
232:
228:
224:
220:
219:client–server
216:
212:
211:
210:
208:
204:
201:Fastest is a
194:
192:
191:unsatisfiable
187:
183:
179:
165:
164:
160:
159:
155:
151:
147:
143:
142:
138:
137:
136:
125:
122:
119:
116:
113:
110:
107:
104:
101:
98:
95:
92:
91:
90:
82:
80:
76:
72:
68:
64:
60:
56:
52:
42:
40:
36:
32:
28:
22:
847:
830:
813:
809:
796:
773:
760:
747:
734:
721:
708:
695:
682:
507:* @param str
260:
249:
238:
226:
223:test classes
214:
200:
175:
153:
149:
134:
88:
67:test classes
63:testing tree
48:
26:
25:
645:description
372:applyTactic
282:java.util.*
146:undecidable
879:Z notation
863:Categories
835:(1 MB PDF)
789:References
585:TacticInfo
564:tacticInfo
561:TacticInfo
106:Free Types
35:Z notation
576:* @return
522:parseArgs
510:* @return
483:* @return
426:* @return
351:* @return
330:interface
263:interface
657:See also
492:OpScheme
471:opScheme
468:OpScheme
519:boolean
438:getSpec
405:setSpec
270:package
27:Fastest
642:String
630:public
609:String
606:public
582:public
549:public
528:String
516:public
489:public
456:public
432:public
399:public
381:tClass
378:TClass
366:TClass
357:public
333:Tactic
327:public
306:import
297:import
288:import
279:import
120:(PSSE)
674:Notes
126:(SSE)
114:(ISE)
71:prune
51:LaTeX
45:Usage
29:is a
852:IEEE
633:void
552:void
459:void
435:Spec
414:spec
411:Spec
402:void
369:>
363:<
360:List
203:Java
108:(FT)
818:doi
618:/**
615:();
594:/**
591:();
570:/**
537:/**
531:str
501:/**
498:();
477:/**
444:/**
441:();
420:/**
387:/**
339:/**
315:/**
252:TTF
237:In
213:In
182:VIS
55:ISO
865::
839:.
814:22
812:,
648:);
627:*/
603:*/
579:*/
567:);
546:*/
534:);
513:*/
486:*/
474:);
453:*/
429:*/
417:);
396:*/
384:);
354:*/
324:*/
854:.
825:.
820::
803:.
781:)
777:(
768:)
764:(
755:)
751:(
742:)
738:(
729:)
725:(
716:)
712:(
703:)
699:(
690:)
686:(
651:}
639:(
558:(
525:(
465:(
408:(
375:(
336:{
312:;
303:;
294:;
285:;
276:;
23:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.