User stories and types of testing – how we deliver reliable software
3 July 2025Modern software development follows an iterative and agile model, in which so-called user stories — descriptions of functionality from the end user’s perspective prepared by business and system analysts — play a key role. They set the direction of work for developers and testers during each sprint.
After development work on a set of user stories is completed, a new version of the system (a build) is released to the test environment. At this point, the testing team takes over to verify the quality of the delivered solution. Testers thoroughly check whether the implemented functionalities work as intended, are consistent, free of errors, and meet user expectations. To ensure this, various types of tests are performed.
Unit Testing
Internal tests verifying the correctness of individual components (units) of the system. The goal of unit testing is to detect and correct bugs as early as possible. These tests are performed by the development team responsible for implementing the system.
With each implemented user story, unit tests are created to cover the key functionalities. These tests are executed during each build, allowing for early detection of issues before a version is released for broader testing. If a defect is found, the functionality is returned to the developer for correction.
Functional Testing
Internal system tests that verify functional and non-functional requirements, as well as data quality. These tests cover individual functions and user flows that span multiple functionalities.
They are conducted by an independent testing team — not the developers who implemented the system. Functional testing is carried out throughout the software development lifecycle. In each sprint, once the relevant user stories are confirmed, the team gets to work. Developers mark tasks as ready for testing, and functional tests are then performed on those tasks.
In the initial phase of the cycle, functional testing is performed manually. If no blocking issues are found, in the following sprint the testers begin writing test scripts.
Once created, these scripts are maintained alongside the evolving software, allowing for automated regression testing in future sprints.
Integration Testing
Integration tests verify the interfaces between modules, interactions with other system components, and connections between systems. At this stage, the testing team focuses solely on integration — for example, when verifying communication between newly developed applications, the team tests their interaction rather than their individual functionality.
The larger the integration scope, the harder it becomes to pinpoint the source of a defect, which increases project risk and extends resolution times. To improve efficiency, testers at 3Soft use tools like SOAP UI and Postman to call specific methods or send messages directly, bypassing the application interface. Once the correct data is returned in response to these queries, testers can confirm it is displayed properly in the implemented system — returning to functional testing.
Performance Testing
Internal system tests conducted to assess whether performance requirements are met. These tests are first performed in a dedicated testing environment. Once positive results are obtained, the same tests are repeated in the production environment. After completion, the database is cleared and the application can go live.
Security Testing
Internal tests conducted to determine software security. At 3Soft, these tests are performed using the Zed Attack Proxy tool. Thanks to collaboration among team members, the application is thoroughly tested for vulnerabilities.
Regression Testing
Internal system tests executed after modifications or environment changes. The scope of regression testing is determined based on the range of updates. Like functional testing, regression tests are carried out by an independent QA team. They are performed continuously as new versions are released for internal testing. To let testers focus on new features, regression tests are automated. You can learn more about manual and automated testing in our dedicated article.
Testing Means Delivering a Refined Product
Software testing is much more than just finding bugs. It’s a systematic check to ensure that each user story-based functionality meets user needs and has been correctly implemented. Thanks to the involvement of the QA team at every stage of development, discrepancies are caught early, allowing delivery of a stable, refined product that meets all specified requirements and user expectations.
Are you interested in the topic of software testing? Learn more about how Artificial Intelligence is currently supporting testers in their work from our article.