<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>I will also help with testing.</p>
    <p>Cheers<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 09/11/17 12:25, Christoph Atteneder
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:A84D8BCC-AD09-4426-82F3-E08A12A12294@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      I’ve just created a Spreadsheet as a starting point for our tests.
      We can easily extend it based on our requirements: <a
href="https://docs.google.com/spreadsheets/d/18n6wV0g5MPTs9Xni0cFji8U34xV3O1IRPDEYZrluBuU/edit?usp=sharing"
        class="" moz-do-not-send="true">https://docs.google.com/spreadsheets/d/18n6wV0g5MPTs9Xni0cFji8U34xV3O1IRPDEYZrluBuU/edit?usp=sharing</a>
      <div class=""><br class="">
      </div>
      <div class="">Best,</div>
      <div class=""><br class="">
      </div>
      <div class="">Christoph<br class="">
        <div class=""><br class="">
          <div class="">
            <div class="">
              <div>
                <blockquote type="cite" class="">
                  <div class="">Am 09.11.2017 um 11:03 schrieb Christoph
                    Atteneder <<a
                      href="mailto:christoph.atteneder@gmail.com"
                      class="" moz-do-not-send="true">christoph.atteneder@gmail.com</a>>:</div>
                  <br class="Apple-interchange-newline">
                  <div class="">
                    <meta http-equiv="Content-Type" content="text/html;
                      charset=utf-8" class="">
                    <div style="word-wrap: break-word;
                      -webkit-nbsp-mode: space; -webkit-line-break:
                      after-white-space;" class="">Hi Manfred!
                      <div class=""><br class="">
                      </div>
                      <div class="">I know testing is always a
                        pain-in-the-ass for every dev so we came up with
                        a QA department ;-). To make it less sucking
                        I’ll jump in to take a couple of the most
                        common </div>
                      <div class="">test scenarios and will update the
                        click-prototypes and create new ones for the
                        other cases in parallel. What about putting the
                        scenarios into a Google Spreadsheet? I could set
                        something up, so we can use it for future
                        releases as well. Who else want to help out? :-)</div>
                      <div class=""><br class="">
                      </div>
                      <div class="">Best,</div>
                      <div class=""><br class="">
                      </div>
                      <div class="">Christoph</div>
                      <div class=""><br class="">
                      </div>
                      <div class=""><br class="">
                        <div class="">
                          <blockquote type="cite" class="">
                            <div class="">Am 09.11.2017 um 00:35 schrieb
                              Manfred Karrer <<a
                                href="mailto:mk@nucleo.io" class=""
                                moz-do-not-send="true">mk@nucleo.io</a>>:</div>
                            <br class="Apple-interchange-newline">
                            <div class="">
                              <meta http-equiv="Content-Type"
                                content="text/html; charset=utf-8"
                                class="">
                              <div style="word-wrap: break-word;
                                -webkit-nbsp-mode: space;
                                -webkit-line-break: after-white-space;"
                                class="">
                                <div class="">The next release v0.6.
                                  gets ready for testing (Development
                                  branch). I would like that we do a
                                  profound testing because there are a
                                  lot of new features and it could
                                  easily break something.</div>
                                <div class="">I would like to get a few
                                  contributors to help testing as more
                                  eyes will spot more and in the past we
                                  had a few times the issue that I
                                  needed to deploy a hotfix release to
                                  fix bugs I missed.</div>
                                <div class=""><br class="">
                                </div>
                                <div class="">To give a better idea
                                  about the task I would like to lay out
                                  a bit the test situation, challenges
                                  and a suggestion for a test plan.</div>
                                <div class=""><br class="">
                                </div>
                                <div class="">The complexity of testing
                                  Bisq lies mainly in the combination of
                                  the P2P network, Bitcoin network, user
                                  interaction and dealing with backward
                                  compatibility and different types of
                                  "consensus”. </div>
                                <div class="">All that makes unit test
                                  based testing very difficult (thats my
                                  main excuse why we have so few unit
                                  tests :-)). </div>
                                <div class=""><br class="">
                                </div>
                                <div class="">One of the big challenges
                                  are the different levels of
                                  “consensus” and backward
                                  compatibility. There are several areas
                                  where code changes break verifications
                                  like in the P2P network data we use a
                                  hash of the data which gets signed and
                                  the signature need to match. If one
                                  user has a newer version with a new
                                  field added to such a class the hash
                                  of the object would be different and
                                  therefore the sig check would fail.
                                  That is just one example where we need
                                  to take care that changes are not
                                  breaking older version or make
                                  interactions between old and new
                                  clients incompatible. In the trade
                                  process there is a similar issue as
                                  the trade contract (json) gets hashed
                                  and verified by the peer. Any change
                                  here would let a trade fail. That
                                  caused for instance a problem in
                                  v.0.5.2 (email in some payment
                                  accounts was empty string in old
                                  version and omitted in new version
                                  because it was null causing a contract
                                  hash check failure). </div>
                                <div class="">Protobuffer is another
                                  area where we need to take care. Not
                                  handling new added fields correctly
                                  would also lead to problems.</div>
                                <div class=""><br class="">
                                </div>
                                <div class="">So how can we test such a
                                  beast without spending 2 years on
                                  writing a highly complex test
                                  environment?</div>
                                <div class=""><br class="">
                                </div>
                                <div class="">I do it with manually
                                  testing most of the possible use cases
                                  in many variants.</div>
                                <div class="">Starting with the trade
                                  process between 2 peers and then going
                                  in more complex variations and other
                                  use cases.</div>
                                <div class=""><br class="">
                                </div>
                                <div class="">I start with RegTest only
                                  testing as that is the fastest. I also
                                  use first the DevEnv flags (DEV_MODE
                                  and USE_DEV_PRIVILEGE_KEYS) to make
                                  testing faster by avoiding popups and
                                  pre-filling some input fields like
                                  trade amount and price. Later I test
                                  without those flags to be sure to not
                                  miss important issues. I also start
                                  with a new data directory to have all
                                  reset.</div>
                                <div class="">Later when I don’t find
                                  any more issues I move to Testnet or
                                  Mainnet. Testnet I did not use much
                                  because it was so unreliable with
                                  confirmation times but might be good
                                  as it comes with extreme situations
                                  (sometimes every few seconds new
                                  blocks, deep reorgs, people are
                                  testing new BTC features there,…).</div>
                                <div class=""><br class="">
                                </div>
                                <div class="">Important test variations
                                  are:</div>
                                <div class="">- users are online or
                                  offline during trade</div>
                                <div class="">- maker as buyers or
                                  seller</div>
                                <div class="">- normal trade, disputed
                                  trade</div>
                                <div class="">- interaction with user
                                  with older version</div>
                                <div class="">- using Tor vs. not Tor
                                  (BitcoinJ)</div>
                                <div class="">- RegTest, Testnet,
                                  Mainnet</div>
                                <div class="">- Fiat trade, Altcoin
                                  trade</div>
                                <div class="">- using password
                                  protection or not (was once a reason
                                  or a required hotfix as I did not test
                                  with pw protection)</div>
                                <div class="">- funding a trade from
                                  internal wallet or external wallet
                                  (though that has never caused issues
                                  so far)</div>
                                <div class=""><br class="">
                                </div>
                                <div class="">Here is a list of the most
                                  important test scenarios:</div>
                                <div class="">
                                  <div class="">- Alice maker as buyer
                                    trades with Bob taker as seller,
                                    both are online all the time</div>
                                </div>
                                <div class="">
                                  <div class="">- Alice maker as seller
                                    trades with Bob taker as buyer, both
                                    are online all the time</div>
                                </div>
                                <div class="">- Next is to test both
                                  cases that they are offline during the
                                  trade steps.</div>
                                <div class="">
                                  <div class="">
                                    <div class="">- Next is that they
                                      open a dispute both with the
                                      online and offline cases</div>
                                  </div>
                                  <div class="">
                                    <div class="">- Next is to use one
                                      peer with an old version, one with
                                      a new version</div>
                                  </div>
                                  <div class="">- Beside the trade use
                                    case I visit all screens and if
                                    there are some relevant user
                                    activities possible like setting up
                                    an account I test that. If there
                                    have been changes in the payment
                                    accounts it is needed to test
                                    setting up all the possible fiat
                                    accounts.</div>
                                  <div class="">- Testing the account
                                    screens. Password, backup, seed
                                    words,…</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Of course I try to focus
                                    on those areas where we changed
                                    something, but the basic use cases
                                    (trade, dispute) need to be tested
                                    always.</div>
                                  <div class="">When testing on Mainnet
                                    you need to take care to not
                                    interfere with real traders. I used
                                    usually payment methods or altcoins
                                    which are not used like Alipay or
                                    using very bad prices.</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">So how could we
                                    distribute the testing to avoid that
                                    bugs slip through?</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">I would like to have at
                                    least 2 devs who help me testing and
                                    do basically what I described above
                                    in their own style. Any input of
                                    ideas to make that less painful are
                                    welcome. </div>
                                  <div class="">Automating those tests
                                    will be very hard and is not
                                    feasible for the near future but as
                                    soon we have enough resources it
                                    might of course become a topic. </div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">So my question is who is
                                    willing to help me testing? With no
                                    B2X we have less time pressure but I
                                    want to get that release out in the
                                    next days anyway to get back to DAO
                                    work.</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Here I have written up
                                    summaries for describing and testing
                                    the big features:</div>
                                  <div class=""><a
                                      href="https://github.com/bisq-network/exchange/issues/998"
                                      class="" moz-do-not-send="true">https://github.com/bisq-network/exchange/issues/998</a></div>
                                  <div class=""><a
                                      href="https://github.com/bisq-network/exchange/issues/999"
                                      class="" moz-do-not-send="true">https://github.com/bisq-network/exchange/issues/999</a> </div>
                                  <div class=""><a
                                      href="https://github.com/bisq-network/exchange/issues/1000"
                                      class="" moz-do-not-send="true">https://github.com/bisq-network/exchange/issues/1000</a> </div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Here are the current
                                    release notes:</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Big features:</div>
                                  <div class="">* Add support for Tor
                                    bridges and pluggable transports (<a
href="https://github.com/bisq-network/exchange/issues/998" class=""
                                      moz-do-not-send="true">https://github.com/bisq-network/exchange/issues/998</a>)</div>
                                  <div class="">* Provide Bitcoin full
                                    nodes from Bisq developers (<a
                                      href="https://github.com/bisq-network/roles/issues/39"
                                      class="" moz-do-not-send="true">https://github.com/bisq-network/roles/issues/39</a>)
                                    to protect against BitcoinJ
                                    vulernatibilty regarding B2X
                                    (BitcoinJ is blindly following
                                    longest PoW chain and not checking
                                    consensus rule violations). That
                                    also avoids the privacy issues with
                                    bloom filters. (<a
                                      href="https://github.com/bisq-network/exchange/issues/999"
                                      class="" moz-do-not-send="true">https://github.com/bisq-network/exchange/issues/999</a>)</div>
                                  <div class="">* Add account age
                                    verification scheme (<a
href="https://github.com/bisq-network/proposals/blob/master/payment-account-age-witness.adoc"
                                      class="" moz-do-not-send="true">https://github.com/bisq-network/proposals/blob/master/payment-account-age-witness.adoc</a>,
                                    <a
                                      href="https://github.com/bisq-network/exchange/issues/1000"
                                      class="" moz-do-not-send="true">https://github.com/bisq-network/exchange/issues/1000</a>)</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Changed fees, limits,
                                    security deposit:</div>
                                  <div class="">* Reduce
                                    DEFAULT_TAKER_FEE_IN_BASE_CUR from
                                    0.003 BTC to 0.002 BTC (that is the
                                    base for a 1 BTC trade)</div>
                                  <div class="">* Lower miner fees by ee
                                    estiamtion adjustments (using
                                    maxDelay 20 instead of 10 and taking
                                    average of 12 last fee results)</div>
                                  <div class="">* Lower miner fee by
                                    transaction size calculation.
                                    Instead of using 600 bytes as
                                    estimation of trade fee tx we create
                                    a dummy tx to get the exact size id
                                    funds are on the wallet, otherwise
                                    we use 260 bytes for maker and 320
                                    bytes for taker (deposit and payout
                                    tx are larger).</div>
                                  <div class="">* Reduce security
                                    deposit:
                                    DEFAULT_BUYER_SECURITY_DEPOSIT from
                                    0.03 BTC to 0.01 BTC;
                                    MAX_BUYER_SECURITY_DEPOSIT from 0.2
                                    BTC 0.05 BTC,
                                    MIN_BUYER_SECURITY_DEPOSIT from
                                    0.001 BTC to 0.0005 BTC;
                                    SELLER_SECURITY_DEPOSIT from 0.01
                                    BTC to 0.003 BTC</div>
                                  <div class="">* Use new trade limits
                                    to reflect higher BTC price</div>
                                  <div class="">    Bank transfers: 0.25
                                    BTC</div>
                                  <div class="">    Swish, OKPay,
                                    PerfectMoney, AliPay: 0.5 BTC</div>
                                  <div class="">    Altcoins 1 BTC
                                    (exception SiaFund as their price is
                                    about 3 BCT and it is not dividable,
                                    so we allow 4 BTC there)</div>
                                  <div class="">* Use new seed nodes and
                                    price relay nodes operated by
                                    different Bisq developers and bonded
                                    by BSQ</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Other features:</div>
                                  <div class="">* Show latest trade
                                    price in case no price from external
                                    market price providers is available.
                                    To be used only for informational
                                    purpose not for % based offers due
                                    price manipulation risks.</div>
                                  <div class="">* Enable Bisq DAO phase
                                    1 on Bitcoin Testnet: BSQ genesis
                                    distribution, BSQ trading, BSQ used
                                    for paying trade fee, BSQ wallet
                                    with send, receive and tx list
                                    screens, dashboard</div>
                                  <div class="">* Add new languages:
                                    Chinese, Hungarian, Romanian,
                                    Russian, French, Turkish</div>
                                  <div class="">* Added new Altcoins:
                                    DECENT, Pranacoin, WACoins, ZenCash,
                                    Ellaism, Cryptonite, Terracoin,
                                    Internext</div>
                                  <div class="">* Add all missing
                                    countries (all global countries
                                    taken from <a
href="https://restcountries.eu/rest/v2/all?fields=name;region;subregion;alpha2Code;languages"
                                      class="" moz-do-not-send="true">https://restcountries.eu/rest/v2/all?fields=name;region;subregion;alpha2Code;languages</a>)</div>
                                  <div class="">* Add OXT as BTC
                                    blockexplorer</div>
                                  <div class="">* Add filter for
                                    arbitrators, seed nodes and price
                                    relay nodes</div>
                                  <div class="">* Change pw length
                                    restriction</div>
                                  <div class="">* Change name of IOP to
                                    "Internet Of People"</div>
                                  <div class="">* Remove DOGE as base
                                    currency (zero trade activity)</div>
                                  <div class="">* Reduce number of seed
                                    nodes for LTC and DASH (very low
                                    trade activity)</div>
                                  <div class="">* Removed never-traded
                                    altcoins: Advanced Internet Blocks
                                    (AIB), Anoncoin (ANC), Anti (ANTI),
                                    AquariusCoin (ARCO), Argentum (ARG),
                                    Augur (REP), Battlestars (BATL),
                                    BigUp (BIGUP), BitAUD (BITAUD),
                                    BitCHF (BITCHF), BitCNY (BITCNY),
                                    BitEUR (BITEUR), BitGBP (BITGBP),
                                    BitHKD (BITHKD), BitNZD (BITNZD),
                                    BitSEK (BITSEK), BitSGD (BITSGD),
                                    BitSYNQ (SYNQ), BitShares (BTS),
                                    BitUSD (BITUSD), Blackcoin (BLK),
                                    Clams (CLAM), CloakCoin (CLOAK),
                                    Comet (CMT), Creditbit (CRBIT),
                                    Crown (CRW), Crypto Bullion (CBX),
                                    DIBCOIN (DIBC), Digibyte (DGB),
                                    Digital Rupees (DRS), DigixDAO
                                    Tokens (DGD), EOS (EOS), EUR Tether
                                    (EURT), Emercoin (EMC), Eternity
                                    (ENT), Europecoin (ERC),
                                    EverGreenCoin (EGC), Factom (FCT),
                                    FairCoin (FAIR), FlorinCoin (FLO),
                                    GameCredits (GAME), Gemz (GEMZ),
                                    Groestlcoin (GRS), Gulden (NLG),
                                    HOdlcoin (HODL), HunCoin (HNC), I/O
                                    Coin (IOC), JPY Tether (JPYT), Janus
                                    (JNS), Jumbucks (JBS), LTBcoin
                                    (LTBC), Maker (MKR), MarteXcoin
                                    (MXT), Moin (MOIN), Myriadcoin
                                    (XMY), NEM (XEM), Nevacoin (NEVA),
                                    NuShares (NSR), OKCash (OK), Omni
                                    (OMNI), Opal (OPAL), Particl (PART),
                                    Peercoin (PPC), Pinkcoin (PINK),
                                    PlatinumBar (XPTX), Plutons (PLU),
                                    PotCoin (POT), Primecoin (XPM),
                                    Radium (RADS), RealEst. Coin
                                    (REALEST), Ripple (XRP), Shift
                                    (SHIFT), Smileycoin (SMLY),
                                    SolarCoin (SLR), Steem Dollars
                                    (STEEMUSD), Stellar Lumens (XLM),
                                    StorjcoinX (SJCX), Stratis (STRAT),
                                    Swarm City Token (SWT), Syndicate
                                    (SYNX), Synereo (AMP), Triangles
                                    (TRI), USD Tether (USDT), VCoin
                                    (VCN), VPNCoin (VPN), Verge (XVG),
                                    VeriCoin (VRC), Waves (WAVES),
                                    Worldcoin (WDC), Xaurum (XAUR),
                                    YACCoin (YACC), YbCoin (YBC)</div>
                                  <div class="">* Many smaller
                                    improvements in the UI</div>
                                  <div class=""><br class="">
                                  </div>
                                  <div class="">Bug fixes, code
                                    improvements:</div>
                                  <div class="">* Fix wrong date handlin
                                    gin trade statistics charts</div>
                                  <div class="">* Listen to bitcoin
                                    network for deposit and payout
                                    transaction in case the P2P message
                                    did not arrive</div>
                                  <div class="">* Support different keys
                                    for code signing in download-tool</div>
                                  <div class="">* Fix bug with missing
                                    MultiSigKey (findKeyFromPubKeyHash
                                    call was used instead of
                                    findKeyFromPubKey)</div>
                                  <div class="">* Fix missing
                                    persistence for trade statistic
                                    object in seed nodes</div>
                                  <div class="">* Fix but with offer
                                    sorting</div>
                                  <div class="">* Use smaller font and
                                    witdh for TAC window on very small
                                    screens </div>
                                  <div class="">* Use netlayer Tor
                                    library (<a
                                      href="https://github.com/JesusMcCloud/netlayer/"
                                      class="" moz-do-not-send="true">https://github.com/JesusMcCloud/netlayer/</a>)</div>
                                  <div class="">* Improved build system </div>
                                </div>
                                <div class=""><br class="">
                                </div>
                                <div class="">Br,</div>
                                <div class="">Manfred</div>
                              </div>
_______________________________________________<br class="">
                              bisq-contrib mailing list<br class="">
                              <a
                                href="mailto:bisq-contrib@lists.bisq.network"
                                class="" moz-do-not-send="true">bisq-contrib@lists.bisq.network</a><br
                                class="">
                              <a
                                href="https://lists.bisq.network/listinfo/bisq-contrib"
                                class="" moz-do-not-send="true">https://lists.bisq.network/listinfo/bisq-contrib</a><br
                                class="">
                            </div>
                          </blockquote>
                        </div>
                        <br class="">
                      </div>
                    </div>
                  </div>
                </blockquote>
              </div>
              <br class="">
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
bisq-contrib mailing list
<a class="moz-txt-link-abbreviated" href="mailto:bisq-contrib@lists.bisq.network">bisq-contrib@lists.bisq.network</a>
<a class="moz-txt-link-freetext" href="https://lists.bisq.network/listinfo/bisq-contrib">https://lists.bisq.network/listinfo/bisq-contrib</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>