Services
Software Testing
- Software testing proves the existence of bugs, not their absence.
- Quality is never an accident; it is always the result of intelligent effort
- If you don’t like unit testing your product, most likely your customers won’t like to test it either.
- Quality is the ally of schedule and cost, not their adversary. If we have to sacrifice quality to meet the schedule, it’s because we are doing the job wrong from the very beginning.
- Software never was perfect and won’t get perfect. But is that a license to create garbage? The missing ingredient is our reluctance to quantify the quality
Functional tests & End-to-end tests
Functional tests focus on the business requirements of an application. They only verify the output of an action and do not check the intermediate states of the system when performing that action.
There is sometimes a confusion between integration tests and functional tests as they both require multiple components to interact with each other. The difference is that an integration test may simply verify that you can query the database while a functional test would expect to get a specific value from the database as defined by the product requirements.
End-to-end testing replicates a user behavior with the software in a complete application environment. It verifies that various user flows work as expected and can be as simple as loading a web page or logging in or much more complex scenarios verifying email notifications, online payments, etc…
End-to-end tests are very useful, but they’re expensive to perform and can be hard to maintain when they’re automated. It is recommended to have a few key end-to-end tests and rely more on lower level types of testing (unit and integration tests) to be able to quickly identify breaking changes.
Acceptance testing & Performance testing
Acceptance tests are formal tests executed to verify if a system satisfies its business requirements. They require the entire application to be up and running and focus on replicating user behaviors. But they can also go further and measure the performance of the system and reject changes if certain goals are not met.
Performance tests check the behaviors of the system when it is under significant load. These tests are non-functional and can have the various form to understand the reliability, stability, and availability of the platform. For instance, it can be observing response times when executing a high number of requests, or seeing how the system behaves with a significant of data.
Performance tests are by their nature quite costly to implement and run, but they can help you understand if new changes are going to degrade your system.
Unit tests & Integration tests
Unit tests are very low level, close to the source of your application. They consist in testing individual methods and functions of the classes, components or modules used by your software. Unit tests are in general quite cheap to automate and can be run very quickly by a continuous integration server.
Integration tests verify that different modules or services used by your application work well together. For example, it can be testing the interaction with the database or making sure that microservices work together as expected. These types of tests are more expensive to run as they require multiple parts of the application to be up and running.
Why e-Streams
Infrastructure: | Microservices, Docker, Kafka, RabittMq, Kubernetes |
Languages: | PHP, JavaScript, SQL, C++, Python, JQuery, HTML5, CSS3 |
PHP frameworks: | Symfony, Codeigniter, Laravel, Lumen, QCubed, etc… |
JavaScript frameworks: | VueJs, Nuxt, React, AngularJs, JQuery, Ionic, HandleBarsJs, etc… |
Databases: | MySQL, MongoDB, BigQuery, SQLite |
Search Engines: | Sphinx, Lucene, Apache Solr, ElasticSearch |
Mobile Hybrid Technologies: | Cordova, Phonegap, Ionic |
Server Administration: | Linux/Unix Servers, AWS, Google Cloud, etc… |
Network Administration: | Mikrotik Administration |
Payment Systems: | PayPal, Stripe, etc… |
Web services & APIs: | RESTful, GraphQl, RPC |
CMS: | Joomla, WordPress, Drupal |
GIS: | Google Maps API |
Our web division offers solutions including e-commerce, content management, custom applications, design and multimedia production. e-Streams specializes in complex projects that combine multiple core functionalities and disciplines, complex navigational goals, and sites that may integrate with one or more outside applications. Every member of our team is passionate about making your project great no matter how large or how small. e-Streams has developed a lot of applications, featuring exceptional user experiences while focusing on delivering robust business tools online.
We work collaboratively with our clients to ensure that their message is delivered clearly and your site structure is effectively and flexibly enough to meet your current and future needs. We approach all our sites from a user as well as development perspective and have a strong focus on web security and compliance. We work collaboratively with you to define the project’s priorities, required features and time-line to achieve success. We’ve tackled a wide array of web technologies from our inception and have the processes, personnel and tools in place needed to deliver your project successfully and on time.