Quality Assurance Solutions
Innovaworks provides competitive high quality IT Services ranging from custom application development, open source solutions, integrating new technologies with existing systems, and integrating back office solutions with online systems. In the process of offering such solutions, Innovaworks has been able to develop a comprehensive QA Service model that has been tried and tested to ensure successful deployment of customer solutions.
With the prevalence of offshore IT service providers, organizations have been successful at developing applications and infrastructures that increase productivity and efficiency and manage costs within their businesses. In contrast, those same organizations have not been as successful managing their own efficiencies through automation or adjusting internal QA processes to third party or offshore development models.
Innovaworks has extensive experience in applying their flexible QA Methodology to customers’ specific needs whether the solution is developed domestically or offshore. By combining internal research and a wide-angle view of the global testing and quality assurance community, Innovaworks is able to provide QA services designed to address the challenges faced in software testing and ensure successful testing and release of our customers’ software product.
Our Approach
Our approach to software testing is to start with assigning two leaders to the project:
- Project Manager – The Project manager is the technical leader for the project. He is responsible for the overall technical success of the project, and makes sure everything gets delivered on time and with highest quality.
- Project coordinator – The Project coordinator is responsible for all communication and documentation of the project. He is a single point of contact for all client communication issues – reporting, updates to requirements, and status tracking.. Project coordinator’s acts as advocates of the client's team to the development team and vice versa.
Requirements Specification
Innovaworks’ QA methodology requires that the QA process begin during the requirements and gathering phase. It is at this time that the QA team and the customer define or refine the business requirements and the overall goals of the project. The designated project manager and a client Business analyst (preferable) carefully manage this process. The outcome of this step, the Requirements definition or Software Requirements Specification (“SRS”) document forms the basis for all future design and specification work and it is the responsibility of the QA Project Manager to document areas of potential risk and possible contingency plans.
Systems Analysis, Planning and Design
After the requirements are finalized, constant communication between the client and the QA team occurs. This ensures that all design and system specification details are shared, updated, and approved appropriately by both parties. The QA team will then map the requirements document to the specifications, thereby ensuring that all functionality is addressed and that the software we have specified is exactly what the client desires.
Testing
The testing processes begin once the requirements and system design are complete. The testing process is broken down into three phases. These phases are as follows:
| Phase I Planning |
Phase II Execution |
Phase III Reporting |
| Define Scope of Testing |
Prepare Test Environment |
Document issues found |
| Identify the test to be conducted for the project. |
Execute Test cases/scripts |
Provide daily/weekly and end of test cycle reports |
| Design Project Checklists |
Identify issues following test cases and logical thinking |
Provide additional supplemental documents /reports |
| Create Test Plans |
Investigate bugs until impact fully understood |
|
| Create Detailed Test Cases/Scripts |
Perform fix validation process |
|
| Create Test Data |
|
|
Methods
To ensure the effectiveness, quality and thoroughness of the testing process, Innovaworks uses various techniques and tools. Some of the approaches we use are:
Black-box (functional testing)
Black box testing implies that the tester only knows the input and the expected outcome but is not familiar with how the application works. During this process, the tester does not examine the programming code and does not need any further knowledge of the program other than its specifications. This is the most common and simple type of testing and is often performed externally. Being fairly simple, it has several important advantages:
- The test is unbiased because the developer and the tester are independent from each other.
- The test is done from the user point of view.
- Test cases can be designed as soon as the specifications are complete.
- Ensures end user’s operational needs are properly met.
GUI Testing
The Graphical User Interface testing validates all user interface components of the application (text on screen, titles, buttons, controls, help display, menu items, shortcuts, dialog boxes, etc) without focusing on the functional behavior.
Non-Functional Testing
Non-functional testing can consist of the following testing types:
- Load Testing: This is done by exposing the application to various types of user loads. This determines the point at which the system’s response time degrades or fails.
- Security Testing: Security testing involves testing the application against unauthorized internal or external access, potential loopholes, or areas of risk.
- Usability Testing: This validates the level of user friendliness and overall ease of use of the application. This involves sanity testing of all GUI and non-GUI components for presentation, correct spelling/grammar, alignment and other aspects of the application.
- Recovery Testing: Recovery testing is done to verify the application crash recovery strategy both from a software and hardware perspective.
Compatibility Testing
Compatibility testing is applied to ensure that the application functions as designed on all expected supported operating systems/platforms. To ensure the adequacy of testing we employ the following testing techniques:
- Equivalence Partitioning: This is a test technique that uses a subset of data that is representative of a larger class of data and scenarios.
- Error Guessing: Data selection technique that seem likely to cause error conditions and failures.
- Boundary Conditions: Data selection technique that pushes limits from the input or output of acceptable ranges.
White-box Testing
This testing technique implies knowledge of the program and familiarity with the code and/or operating system specifics. The data for this testing approach is carefully chosen and requires more skillful testers.
Deliverables and Activities
As part of our onshore/offshore hybrid QA services we ensure quality by providing our clients with deliverables throughout the course of the process. These deliverables are agreed upon prior to moving forward to the next stage in the software development lifecycle. In addition to the deliverables, we conduct additional activities that ensure quality and satisfaction and enhance our QA Methodology.
The deliverables that we commit to providing are:
| Project Plan |
The project team organization, work breakdown structure, phase and task schedule, change control plan, documentation summary and review and reporting plan are all elements of our joint project plan with our clients. |
| Project Quality Assurance Plan |
This deliverable outlines the project team responsibilities, purpose of documentation with respect to QA, standards, practices and conventions, reviews and audits, configuration management, problem reporting, tools, techniques and methodologies, code control, medial control, and supplier control (if applicable). |
| System Requirements Specification |
Reviewed customer SRS document with appropriate feedback. Although authored by customer, QA team can/will provide necessary suggestions with agreed upon requirements definitions. |
| Design Specifications |
QA Team can/will review customers high level and detailed design documents to ensure satisfaction of requirements outlined in SRS. |
| Unit Tests |
Procedures for verifying and validating the correct operation and functionality of individual system components, as per design specifications. |
| Integration Tests |
Procedures for verifying and validating the correct functionality and interoperability of integrated system components. |
| Acceptance Test Plan |
The philosophy and approach to acceptance testing for the system; formal sign-off procedures; timing of acceptance testing; appendices with test procedures for Integration Testing, Acceptance Testing and Operational Evaluation following system delivery and acceptance. |
| User Manual |
A reference document for system users concerning access and usage procedures; user interface and functions. |
Additional activities that are conducted by the QA team during the QA process includes:
| Walkthroughs |
This is a review of a software product that is conducted by “walking through” the product sequentially (line by line) to judge the quality of the product being reviewed. |
| Inspections |
This is conducted for requirements, design, code, test cases and plans and helps to deal with more complex defects that cannot be dealt with walkthroughs. |
| Reviews |
These are aimed at carefully checking the document (specifications, code, design documents) not done by a developer on the team. |
Deliverables and activities vary depending on the scope of services, customer requirements and implementation type.
Change Management
Change management practices exist and are a big part of our QA methodology. The ability to react and respond to change in a efficient manner has been considered and is a key part of our delivery methodology.
An agreed upon process will be fully documented and implemented for each customer. It is the responsibility of the Project coordinator to ensure modifications to requirements are documented, agreed upon and are in scope. As the customer advocate, it is the responsibility of the Project Coordinator to ensure customer satisfaction and that no breakdowns occur in the Quality Assurance process.
|