Hire High Quality Developers or Teams

Nova has a comprehensive quality management system in place to enhance the quality of deliverables, thereby helping customers save time, effort, and money. If you are in need of software-related services, please feel free to inquire.

Nova's High Quality Assurance Introduction

image

 

Quality assurance (QA) is a very significant branch of the entire Software Development Life Cycle(SDLC). It is an integral and critical phase of any software development project. This process not only meets requirements but also ensures reliable and stable software to make sure that any agreed-upon standards and procedures are followed.


The purpose of this page is to describe for our clients how the Software Quality Assurance (SQA) program in Nova is structured and how we ensure that the process is followed by every project team. 

Core Quality Assuare Principals

Nova's quality assurance strategies are based on those principles.
icon
All Life Cycle QA
The quality assurance activities are not only some tasks executed at the end of the development phase (for example, testing), they run through the entire software development life cycle (SDLC)
icon
All Team Members QA
Good quality is a result of team work, the quality is everyone's responsibility, and it is built by everyone's daily work.
icon
Prevent Bugs From Happening
"Prevent bugs from happening" over "Inspection and testing" can save time and money for clients and benefits in the long run.

Our Quality Assurance System

Methodologies

Agile Software Development and incremental development,

Workflow

Build Quality In and make sure task is really done.

Standards

All developers obey to the company‟s standards.

Best Practices

Teams in Nova adopted a lot of best practices to improve quality.

Company Supports

Management in Nova will also monitor and support the teams.

Methodology - Agile Software Development

Agile Software Development is a proven methodology which improves the software quality significantly. Since Agile includes many contents, we will only address three of them here to explain its effects on quality: Cross-Functional Team, Incremental Development, Frequent Delivery.
icon
Cross-functional Teamwork
A cross-functional team is made up of people from all sections of the company, such as Sales Dept., QA Dept., Development Dept., Management Dept. and etc. These people work at the same room, have directly contact, cooperate very closely with each other, thus the team itself is capable of delivering functions, no cross-sections communication is need. In this way, the communication gap is reduced, feedback cycle is shorten and work efficiency is increased, thus Quality issues can be addressed earlier and fixed at a lower cost. In Nova, all team members work very closely with each other, they sit next to each other, communicate very directly, and capable of making shippable artifacts. so all of them are cross-functional teams.
icon
Incremental Development
Incremental development is a scheduling and staging strategy, in which the various parts of the system are developed piece by piece, and integrated as a whole when they are completed. Comparing to traditional waterfall model, the final product grows incrementally with short iterative cycles. In this way, it can avoid bringing too many codes or changes in one time, thus it will reduce the chance of errors by an order of magnitude. All the projects in Nova are using incremental development method to deliver functions, we separate the software development life cycle into many small phases and we will set up many milestones for a product.
icon
Frequent Delivery
As described in Incremental Development, the software are developed in many short iterative cycles, at the end of each cycle, deliverables will be delivered to testers and customers. In such a frequent manner, testers and clients can test the latest changes and give their feedback more timely and more quickly. Thus many defects can be found and fixed earlier, and similar issues will also be avoided in the following phases. It reduced the cost of errors a lot. In Nova, the team is suggested to deliver software to our clients every two weeks. But as per the different situation of each project, the longest iteration is less than two months and the shortest reaches one week.
Workflow -  Build Quality In

One of the essential components of Nova's QA process is the participation of standardized workflow, in which we have integrated our quality strategies and methods.Here is a high-level flowchart abstracted from the document. 

This flow ensures no necessary steps will be skipped by developers, thus many potential issues can be avoided. And as you can tell from the figure above, in this flow many checking will be executed at the first moment on potential outputs, this will further ensure that issues will be found and fixed in the first place. 
 

image

Best Practices for Coding

These practices are majorly focusing on improving the quality of source codes, which will result in more maintainable products. This means less errors and fewer maintain cost.
icon
Unit Test

Unit tests are codes written to validate the correctness of development units (such as functions and classes). They form a safety net to prevent codes from unintended changes. Thus once something goes wrong, unit tests can help the programmer find and fix it very quickly, and it also saves many testing efforts. In Nova, each project will implement unit testing once they get clients‟ approval. 

icon
TDD

Test Driven Development requests developers to write tests before implementing functions. This way will force developers thinking from the users‟ point of view, and making a more thoughtful design before coding. As the infamous over-design issue is avoided by TDD, it will keep the codes‟ complexity at a minimal level, so many wastes can be saved. Nova teams will adopt this practice if the client understands the cost and benefit of TDD. 

icon
Code Review

Code Review is a proven practice which can improve the codes‟ quality a lot. By reviewing the codes, many potential issues will be spotted, deviation of standards will get corrected, and most importantly, experience will be shared between developers, all of these will contribute to the overall quality of the software. Every Nova team is practicing Code Review. 

icon
Refactor

Refactoring is a disciplined way to clean up code and improve design. It can keep codes tidy so that minimizes the chances of introducing bugs. By refactoring, the codes quality will be improved a lot and the product‟s lifecycle will be extended. All projects in Nova are requested to refactor codes when new changes are made, and refactor is also a part of Nova‟s development workflow. 

icon
Daily Build

Daily Build is the practice of doing software builds on a daily basis. It can minimize integration risk and avoid many time-consuming bugs which would appear in batch integration. Daily Build assures that developers are sync with each other so that any defects caused by misunderstanding and lack of communication can be easily addressed and quickly fixed. All the projects in Nova are requested to check in codes every day and build them. 
 

Self-testing

Every programmer in Nova should do the self-test according to some checklist before committing the modification. The purpose is to make sure that the outputs of developers are acceptable. By effective self-testing, many issues can be discovered and fixed at an earlier stage with lower costs. Following test activities will also benefit from this.

Cross-testing

Cross-testing means A tests B‟s outputs while B tests A‟s outputs. Since everyone has his/her blind spots, cross-testing will add value to software quality. Another reason cross-testing works is due to the psychological reason that people don‟t like their mistakes be found by others, they will be more caution if the team adopt cross-testing.

Regression Testing

To do a successful regression testing, all test cases need to be run and get passed, every module of this software should be fully tested. It gives the final product‟s quality an overall guarantee. In Nova, Regression Testing will be implemented when a version is to be released, the team might arrange two or three weeks for testing and bugs fixing, but it depends on the project‟s size.

Integration Testing

Integration Testing is the testing implemented while integrating, it will make sure the integration won‟t break the software, and it is also used to make sure the related modules won‟t be influenced by this integration. Since Nova teams are implementing continuous integration and daily builds, they will only implement integration testing when necessary by running a pre-defined checklist.

Best Practices on Functional Level

These practices are majorly executed on function level, they can't be sorted into coding or testing activities, but they do help us get better quality, thus we call them Best Practices on Functional Level.
icon
Prototype
As many missing functionality issues, misunderstandings issues and poor user experience issues will be identified and solved very earlier, prototyping avoids plenty of bugs and saves the cost of quality a lot. It also contributes to quality by setting up some criteria for coming tasks. All Nova teams adopt some kind of prototyping technology, some of those prototypes are made by our clients, and some of them are made by Nova team.
icon
Function List
Function List is an organized list which includes all features of the software, and it will be revised when requirements change. Since Function List can be used in the practice of self-testing and regression-testing, it will minimize the chances of missing something, and it also help the team discovery inconsistent issues. All Nova teams should update the function list before implementing the function.
icon
Scrum Review
Scrum Review is a practice originated from the Scrum methodology. The team must demonstrate the working software to all stakeholders once they got something deliverable, this activity forces the team deliver something that really works rather than some 90% done garbage. It also gives other stakeholders a chance to make their inputs, which may improve the quality as well. It is a suggested practice in Nova, some teams have adopted this and it works well.
Clarify Quality Requirement

Create Test Strategies and Test Plan

Create Test Cases

Test Execution

Report Bugs

Verify Bugs & Bug Analysis

Refine Test Process

Company Support of Quality Assurance

Good quality is a result of team work, management play a very important role in QA. Company's support is very critical for successful quality assurance. 

iconTraining

Training conducted by the company can make sure that the employees have a good understanding of the quality assurance policies, standards, practices etc. Training will also remove some obstacles encountered by the team when adopting best practices. And by sharing experience across different teams, training will help other teams avoid similar mistakes. Besides, technical training will increase the programmers‟ skills which will result in less errors and better quality. 
 

icon Inspection Team

The inspection team is an in-house management team to make sure the company policies, standards, workflows, required practices, management regulations are well executed by Nova teams. It is consisted of the most experienced managers and technical experts in our company. The inspection team carries out an inspection every two weeks by randomly select some team in Nova. If your team is selected, an inspector will come to work with the team, find out what they are doing right, what they are doing wrong, and then work out the improvement points and solutions with the team. The team has to adjust its‟ behavior in limited time period when the inspector will come back to recheck. By making sure the standards are well executed by Nova teams, Inspection Team is the QA methodology facilitator in Nova. 
 

iconProcess Improvement

Process improvement is another important support to QA offered by Nova, it means the company will continuously improve the processes, standards, practices and so on. By gathering feedback from teams, summarize the experience and learning industry standards, Nova will continuously improve the existing QA methodology to further assure our quality. 

Get In Touch
Copyright © 2005 - 2022 Nova Software Inc. All Rights Reserved.