<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>