Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.java > #13212

Re: Bit packed array

From Patrick Roemer <sangamon@netcologne.de>
Newsgroups de.comp.lang.java
Subject Re: Bit packed array
Date 2018-10-04 12:07 +0200
Organization news.netcologne.de
Message-ID <pp4opd$tk2$1@newsreader4.netcologne.de> (permalink)
References <a6a1936f-fd65-4f2f-987f-72ad8f2999ec@googlegroups.com> <posjd9$105$1@newsreader4.netcologne.de> <d57b7595-e1a8-4bd8-9c99-15d565f7ec1d@googlegroups.com>

Show all headers | View raw


Responding to Heiner Kücker:
> Am Montag, 1. Oktober 2018 09:46:50 UTC+2 schrieb Patrick Roemer:
>> Aber interessieren würde mich schon...
>> ...wie man zu Unit Tests kommt, die tagelang laufen?!
> 
> Die Ursache ist die kombinatorische Explosion.
> 
> public void testFromArrayCopy_All()
> {
> 	for ( int dataElementWidth = 1 ; dataElementWidth < Integer.SIZE ; dataElementWidth++ )
> 	{
> 		for ( int arraySize = 1 ; arraySize <= 37 ; arraySize++ )
> 		{
> 			for ( int srcPos = 0 ; srcPos < arraySize ; srcPos++ )
> 			{
> 				for ( int dstPos = 0 ; dstPos < arraySize ; dstPos++ )
> 				{
[...]

"The number of input and output combinations for trivial programs is
surprisingly large. It is astronomical for typical programs and beyond
comprehension for typical systems. [...] Clearly, we can never test all
inputs, states, or outputs."
Robert V. Binder, Testing Object-Oriented Systems
§3.3: The Limits of Testing

Das ist sehr gründlich gedacht, aber effektiv hast Du damit ja gar keine
Tests, weil niemand sie je (komplett) laufen lassen wird. Unit Tests
sollten eigentlich sogar nach jeder in sich abgeschlossenen
Code-Änderung automatisiert durchlaufen; das kannst Du mit diesem Ansatz
komplett knicken.

Üblicherweise wählt man für Unit Tests Szenarien mit (Kombinationen von)
Extremen oder besonders hervorgehobenen Elementen aus dem erlaubten
Bereich der Eingabewerte (hier etwa: 0, 1, Integer.SIZE,...) und einige
mehr oder minder zufällige Werte, die pars pro toto für die sonstige
Bandbreite stehen. Ergänzen kann man das durch randomisierte Tests a la
QuickCheck[1]. Da gibt es wohl auch diverse Java-Ports; keine Ahnung,
wie es sich damit arbeitet.

Viele Grüße
Patrick

[1] http://www.cse.chalmers.se/~rjmh/QuickCheck/manual.html

Back to de.comp.lang.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-09-22 19:33 -0700
  Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-01 09:46 +0200
    Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-02 10:21 +0200
    Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-03 22:05 -0700
      Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-04 12:07 +0200
        Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-04 03:34 -0700
          Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-09 23:10 -0700
            Re: Bit packed array Patrick Roemer <sangamon@netcologne.de> - 2018-10-10 16:50 +0200
              Re: Bit packed array Joerg Meier <joergmmeier@arcor.de> - 2018-10-10 20:15 +0200
                Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-10 23:17 -0700
                Mutation Testing (was: Bit packed array) Patrick Roemer <sangamon@netcologne.de> - 2018-10-12 12:12 +0200
              Re: Bit packed array Heiner Kücker <mail@heinerkuecker.de> - 2018-10-10 23:23 -0700

csiph-web