Alpha Guides

Best practices

Best practices during testing and how to report problems

Welcome to the Hydranet Alpha testing phase. The content of this guide is aimed at our Alpha testers. You have been chosen to evaluate our latest advancements, particularly our off-chain trading functionality. However, this is also an opportunity to revisit and test earlier features, such as on- and off-chain payments, the channel rental manager, our browser off-chain nodes, and more. Your efforts are essential in ensuring our platform’s seamless performance as we take this step forward.

System testing is challenging. The design space is often vast, with an almost infinite number of scenarios to explore. If we can’t test every single one of these scenarios, how do we ensure that everything runs smoothly, every time? This paradox is at the heart of system testing: finding the balance where we’ve tested enough to be confident in our platform’s reliability. With that said, as Alpha testers, you have an important mission: to help us determine that point of confidence where we can take the next step in our development journey.

How alpha testing will work

We will start on a small scale with a limited number of testers and gradually open the process to more participants, bringing fresh perspectives and insights to light. Together, we’ll identify bugs and work through issues. The practicalities of this process will include: 

  • Closed Discord Channel
    Alpha testers will have access to a closed channel in Discord. In this channel, you can ask questions, share insights, and discuss issues with team members and fellow Alpha testers.
  • Pauses
    There may be pauses in testing while fixes are implemented. Please trust that our developers are working diligently to resume testing as quickly as possible.
  • Iterative testing
    Some features may need to be tested repeatedly as new solutions impact foundational parts of our platform. Patience and persistence are key.

In short, we can say that our testing of Hydranet is based on the following pillars:

  • Functional testing
    Ensuring that all features work as expected - creating/importing wallets, on- and off-chain payments, off-chain transfers, channel rentals, off-chain swaps.
  • Security testing
    Verifying that funds remain safe during wallet use.
  • Performance testing
    Ensuring the DEX and underlying protocols handle simultaneous transactions and high loads without degradation. 
  • Regression testing
    Confirming that new features and fixes don’t disrupt existing functionality.

Best practices for effective testing

During testing, be thorough and document your steps. For our developers to resolve issues effectively, they typically need to replicate them. Proper documentation of your steps leading up to the issue is therefore beneficial. So are screenshots of your results and possible error codes! When you report an issue, the following information will typically be asked from you, so keep this in mind:

  • Short bug description
    Give a brief description of the problem. _For instance: Lithium channel balance does not update after swaps_
  • Steps to reproduce
    How can we reproduce the issue? _For instance: fund a wallet with ETH, rent a $10 worth of BTC Lightning channel and deposit $10 worth of ETH to a Lithium channel, swap your ETH for BTC, Lightning channel balance will update but Lithium channel balance will not._
  • What was expected to happen?
    Describe what you would expect to happen following the steps above. _For instance: I would expect the Lithium channel balance to update after my swap. Outbound liquidity (Can Send) should decrease to $0 while inbound liquidity (Can Receive) should increase to $10._
  • What actually happened?
    Describe what actually happened when you followed the steps above. _For instance: My Lithium channel did not change at all. My outbound liquidity remains at $10 worth of ETH and my inbound liquidity at $0._
  • System info
    Add your system and browser information. An easy way to find these is by running the following command in a terminal:
    npx envinfo --system --npmPackages hydra-node --binaries --browsers
    To run this command, you may need to install Node.js, which can be downloaded from their official website.
  • Error codes
    Check for any error codes and include these. Error codes can be found by right clicking on the screen, then selecting inspect. A window will open on the right-hand side of your screen. Navigate to the console tab and look for any error codes. An example is included below.

bestPractice_error.png

To report a problem, whether it be a bug or suggestion, there will be a button at the top of the Alpha Testnet channel on discord. Click the button to open a support ticket and follow the instructions. Wait for a response from our developers, as they may request additional information from you. If you’re unsure whether the actual outcome from one of your tests is expected or not, discuss it with your fellow Alpha testers and team before opening a support ticket.

bestPractices_error2.png

Concluding words

As mentioned earlier, system testing is challenging and comprehensive. Creativity is your best ally. Don’t just test what you know is working, also try what you think shouldn’t work. How the platform handles errors and unexpected use is just as important, as this directly impacts the overall quality and user experience. 

To assist you in your testing, we’ve created three guides to demonstrate nominal use of our platform and for you to get acquainted with it. Don’t hesitate to go beyond these examples.

Happy testing!


Copyright © 2024