Quality assurance (QA) is an indispensable prerequisite of a software’s reliability and robustness, as it allows revealing aberrations in its performance. That is why a growing number of companies go for QA services and allocate large proportions of their IT budgets to it, which is 31% in 2016. This percentage is predicted to run at 40% by 2019.
However, there is a common issue that bothers many customers: “How can a service provider ensure a quality and trouble-proof performance of a software that it develops?” In this article, we will try to lift the veil on it and describe the development process in our company through an example of one of our customer’s case. Its distinctive feature is that the development blends software creation and concurrent quality assurance.
The Project Objective
A comprehensive quality assurance procedure is especially important in the context of a software that manages large volumes of sensitive information, such as that related to the intellectual property (IP) domain.
Our customer is a “one-stop shop” in IP, as it manages the renewal of trademarks and tracks related annuities. It is a leading European company that has partners in more than 150 countries.
The company had an in-house IP service tracking system that was outdated and did not meet all its requirements in full. That is why the customer required to replace it with a new solution based on up-to-date technologies and significantly enhance its functionality.
The customer needed the new management system to perform the following operations:
- To register service requests
- To track and display service statuses and their attributes
- To allocate different service types to appropriate workflows
- To gather statistics in accordance with selected parameters
The company needed the solution, a client-server application that covers certain stages of patent registration, to enhance the management of their services that are related to intellectual property rights. Also, there was a small stand-alone project on the development of a web application with limited functionality to allow external users accessing the system. The software was to use the same database as the main client-server application did.
The Development of the IP Management System
In close cooperation with the customer, our team transformed their extensive requirements into the concept of a new IP management system. It was to be built from scratch by Scrum methodology with the application’s architecture based on Microsoft technologies.
Our team developed a fully-featured management system that automates the filing of applications for IP rights with close consideration of the specifics of IP-related document development.
A special search filter simplifies the identification of an application in an extensive internal database and allows accessing external ones, for instance, those that contain information about EPO patents. Our team customized these filters for the needs of each customer’s department in accordance with various parameters, such as countries, customers, agents, etc.
A web application with limited functionality that the company designated for external users provides those users with the information on their IP rights. A geographical map visualizes this information in the following way: it marks the countries where users have IP rights that they have registered through the company.
During the project, SaM Solutions’ team used the following technologies:
- Bug Tracking System: Team Foundation server (TFS)
- Test Case Management Tool: Microsoft Test Manager
- Automation Tool: Сoded UI
- Load Testing Tool: Microsoft Visual Studio
- The Web (Application) Server: MS SQL
- Languages: .NET 4.5
- Control Version System: Team Foundation server (TFS)
- Virtualization Platform: Windows XP, Windows 7
- Other Tools: Microsoft Visual Studio, WPF, PRISM, Unity, WCF, Entity Framework, Telerik Controls, MS SQL Reporting Services, TFS Continuous Integration
The Quality Assurance for the IP Management Software
To provide the highest possible quality of software products that we develop, quality assurance (QA) is always an essential part of the development process. Moreover, we incorporate these processes into every phase of our development projects, whether it is the requirement settlement, design, creation, delivery or production.
A thorough and well-planned testing and QA allow us to be confident of the quality of software that we build and of its high performance. The reason for it is that it enables revealing and addressing of possible aberrations in a timely manner, which is the cornerstone of the success of our projects.
Our team followed the same logic in the case of the building of the IP management system. To deliver a high-quality software, SaM Solutions’ testing engineers were involved in each stage of the development process.
Before the start of the project, our QA team created a thorough test plan that included smoke, regression testing and the verification of new features as soon as they were implemented. As a test acceptance criterion, they chose a successful passing of all test cases that they prepared in a document form for each specific sprint.
Alongside with the tests developed by our team, the customer also provided acceptance tests. SaM’s test automation engineers automated some of them with MS Coded UI tool.
Because of the project’s complicated business logic and the importance of the software’s failure-proof performance, the company requested the successive QA services for the IP management system as an additional service. That is why our QA team performed a comprehensive automated testing with a specially developed framework.
QA as a Basic Premise of Software Reliability
Over several years our customer has been successfully leveraged its business on the IP management system that SaM Solutions’ team developed for them. The solution is not only sensitive to the customer’s business specifics and improves the efficiency of their daily operations, but also performs efficiently and in a fault-tolerant manner. QA services for the intellectual property management system that our team incorporated into the development process and performed as a stand-alone phase allowed to check the software against possible defects.
The new system can carry out the whole workflow, which significantly simplifies the processing of clients’ orders and the tracking of the status of services and documents related to them (invoices, orders, offers, reports, etc.).