The plan and scope of tests
In each implementation contract adequate provisions regarding warranties and responsibility for the developed software are included. To determine whether the system is working properly, within the implementation we ourselves perform a series of tests – before the acceptance of the work by the customer.
Each design requires a different approach and not necessarily all the stages of testing are required. The tests that we expect to perform at the end of each of the stage of implementation are:
- Usability testing of the user’s interface (UI Tests) – quality tests at the design stage. They are carried out in order to see how the application will be used by the target users and eliminate errors associated with usability (navigation aspects, capacity of finding, layout of the content, intuitiveness, etc.)
- Safety tests along with the preparation of a report on vulnerabilities of the applications – performed using automated tools in the Black Box model (testing many types of errors – XSS, CSRF, SQL injection using Skipfish and Xss Me i SQL Inject me tools). In addition, in the case of entering dedicated changes into the base software we apply revisions of the code (called Code Review) to diagnose the location of potential vulnerabilities,
- Error handling testing – these are optional tests that are used to verify the way in which an application behaves in the case of errors (e.g., lack of communication, database errors, etc.). By checking these situations, we will know what information the users receive, if errors are logged correctly (for their further analyzing)
- Tests of basic scenarios – within the analytical stage we draw up test scenarios (a separate document describes how the scenarios are created) describing the action and method of testing the major (or all) functions. Using scenarios the testers are able to systematically verify the system. According to the scenarios, it is also possible to carry out acceptance testing (UAT) and testing of the modifications introduced in the stage of development.
- Regression Testing and Smoke Testing – after the introduction of a new functionality (maintenance) – types of functional tests that are applied at the stage of development and which are designed to verify that all the functions still work properly
- Recovery testing – within the development the scenarios of restoring the system in the event of failure are tested. Backups and time to restore them are checked (whether it is consistent with the times specified in the maintenance contract)
- Integration testing – in cooperation with system suppliers with whom the integration occurs the exchange of information, inducing and stability of the communication functioning are tested
- Acceptance Testing (UAT) – final testing of the system user which form a basis for acceptance of the system. There is a variety of functional tests according to various scenarios.
After each stage of the testing the schedule for implementation provides time to reporting and correcting faults, if necessary. When there are non-detected errors – their free removal is covered by the warranty and maintenance contract.
Standards for the maintenance and development
The development of IT system never stops. As long as it is used. It should be constantly developed based on feedback from its users.
We have experience in providing a continuous supports of the systems – we perform such complex projects for a large portion of our customers – for example ENERGA SA, TP SA / Orange, Almirall, AGORA SA, Intersport, Praktiker, TUI Poland, Unizeto Technologies, SOLAR, TIM SA.
Together with the customer we set a hourly budget for each month of the system development. We define directions of the development and the person responsible for the design on our side. This person, in cooperation with the representative of the customer uses all the resources of Divante Group in order to reach the success of the project.
The maintenance contract conditions could be done in two models:
- time and material,
- hour budget + SLA.
In each cases our service includes :
- The customer receives a detailed monthly report of the use of the hours- from the work monitoring system,
- As part of the contract, we could provide SLAs and agreed response times and a guarantee for the system. Read more about Divante SWAT,
- The works are recorded and accounted for by Redmine system.
As part of the maintenance we provide access to the entire interdisciplinary team:
- Developers (changes, optimizations and new functions)
- Interaction Designers (changes, optimizations, AB tests)
- Graphing Designer (creations, banners, newsletters)
- Webmaster (preparing newsletters, creations, changes)
- Administrators – redundancy – minimum two people (application support, care of the servers, backups)
- Adwords Specialist (assistance in the campaign management, optimization, checking)
- SEO Specialist – service optimization, safety audits
- During the development of the whole time access to the key people of the implementation stage!
All hourly valuations include functional testing, performance testing, security testing – at least we are confident that the new functions work and do not spoil the existing ones.
Warranty – we remove free of charge any application errors, even after acceptance of the system – we care about success.
Good practice: design management, coding, management – attached to the contract.
As a part of maintenance we offer a comprehensive approach to the development, and take the suggested actions
- Ongoing analysis of the system statistics,
- The current survey of satisfaction and expectations of the users,
- Monitoring of technical parameters (loading speed, reliability) – using ZABBIX tools integrated with systems of automatic testing (phpUnit) and notifications,
- Providing backups, updates, security and protection of personal data – on separate devices or servers (also in other data-centers)
- Proposing new functions on the basis of the above tests,
- Implementing new functionality, testing, making available and collecting feedback in the system,
- Reporting all activities and their effects.
Within the maintenance services we take care to ensure the continuity of the system and the systematic process of releasing new versions. The process – as good practices – is described and is valid during the post-implementation period. Description of the maintenance process is included in a separate document.
Our standards of business continuity – when it comes to software updates, include the following:
- Any changes in the application are versioned in a version control system (SVN / GIT), the new versions are created in branches, the stable version is always available,
- We use a separate development, test, production environment.
- Suggestions of changes are made only through the ticket system (Redmine) which is a documentation and introduced modifications system
- We use transaction, automatic deployment on the manufacturing servers with the ability to rollback
Automated Testing (checks, HTTP, functional) after each deployment indicate that the software is running well.