Technology

Quality Control

by
on
2/16/2022
Quality Control

NerdCloud offers solutions for your every software development need. We perform rigorous functional testing throughout our development process, as well as having our Technical PM conduct unit and automated testing. We also offer software testing as a service. 

Here’s everything you need to know about our main software tests and quality control to help you understand our processes, so that you know exactly how we give you the quality that you deserve. 


Functional testing

Functional testing is a form of software testing that validates a software system against certain functional requirements or specifications. When we carry out functional tests, we test each software function by entering appropriate input and using functional requirements to verify the output. 

Functional testing should always be performed before any non-functional testing. This is because it describes what the product does and is carried out according to business requirements, and so is the most important and fundamental type of software testing.

Some examples of functional testing are:

  • Unit testing
  • Sanity testing
  • Smoke testing
  • Integration testing
  • Black box testing
  • White box testing
  • Regression testing
  • User acceptance testing


Functional testing tests the following:

  • Basic usability – a user’s ability to navigate through the software freely without difficulties. 
  • Mainline functions – the application’s main functions (varies depending on the specific app and its purposes). 
  • Accessibility – how accessible the system is for users who have additional needs. 
  • Error conditions – suitable error messages should be displayed when error conditions occur. 


There are five main steps to functional testing:

  1. Understanding the functional requirements.
  2. Identifying appropriate test data or test input based on these requirements. 
  3. Computing expected outcomes with selected test input values. 
  4. Executing the test cases. 
  5. Comparing actual results with computed expected results. 


We use different functional testing tools depending on the unique software. They all have their pros and cons and are therefore each best-suited for different applications.
Some examples include:

  • JUnit – used mainly for Java applications, also usable in unit and system testing. 
  • soapUI – an open-source functional testing tool that’s mainly used for web service testing. Supports multiple protocols such as SOAP, HTTP, and JDBC. 
  • Watir – for web applications. Runs on a ruby-supporting language. Supports tests that are executed at the web browser.
  • JEST – for JavaScript applications. Reliable, fast, and safe. 
  • PHPUnit – for PHP applications. Programmer-oriented. 



Unit testing

This is a type of software test that tests the smallest piece of code that can be logically isolated in a system. In the majority of programming languages, a unit would be a function, a subroutine, a property, or a method. 

The most important part of the definition of a unit is that it is isolated. This means that a unit test can’t be conducted by relying on external systems. For example, if a test needs to rely on a database, a network, or a file system, then it can’t be called a unit test. 

Unit tests give a very thorough idea of how well code is performing as well as having the benefit of speed – because the tests are carried out on such small pieces of code, tests can be run incredibly fast. We’re talking a thousand tests a second. 

Other benefits of unit testing include:

  • Fixing bugs early on in the development cycle and saving costs. 
  • Helps developers understand the testing code base and makes it possible for them to make changes quickly. 
  • Doubling as project documentation. 
  • Makes code reuse easier. By migrating code and tests to a new project, we can tweak the code until the tests run again. 

Unit testing is most often automated, but can also be done manually. When automated, it will progress as follows:

  1. Writing a section of code in the user testing application to test the function. This is later removed when the application is deployed.
    Or,
    Isolating a function. This is a more thorough way to do it, where the code is copied and pasted into its own testing environment. Doing this helps to reveal dependencies between the tested code and other units or data spaces in the product that are unnecessary and can be eliminated. 
  2. Executing test cases. The framework used will automatically log, flag, and report failed test cases. 
  3. Reviewing and reworking failed test cases. 


Some examples of unit testing tools include:

  • JUnit – for Java code. This tool tests data first and then is inserted into the piece of code. 
  • PHPUnit – for PHP programmers. This tool also allows developers to make use of predefined assertion methods to assert that a system behaves in a certain way. 
  • EMMA – an open-source toolkit for Java. 



Conclusion

We have high code quality standards and follow industry best practices. So whether you’re looking for a reliable outsourcing partner that delivers quality code or you’re looking for experts in software testing, rest assured that NerdCloud is exactly what you need. Get in touch with us today for more information.