Web application testing

Unit vs Functional

There are many different types of tests

  • Usability Testing
  • User acceptance testing
  • Performance testing
  • Security testing
  • Functional Testing
  • Interface testing

 

What kind of tests you do depends on the organisation, for instance, security will be a large issue for the banking industry, while health systems place reliability and availability high on their list

Usability Testing

 

Is the interface understandable by the user? 

 

Other than doing it internally, we don't focus on the users (not customers) once the product has been released

User acceptance testing 

 

Is the  application meeting user expectations and is it ready to be deployed?

 

 Mostly done by our QA

Performance testing 

 

Measuring performance with various user scenarios

 

We mostly do this after the fact (e.g the customer opens a bug report regarding a slow SQL query)

 

Security testing 

 

How hard is it to hack the application?

 

We have no internal security testing, although on PCI compliant projects, there's a certain level os security that has to be met. Additionally, security is mostly then handled by System admins (issuing security certificates, limiting access to the application etc.)

 

 

Functional testing

 

Functional tests tell a developer that the code is doing the right things.

 

Unit/interface testing

 

Unit tests tell a developer that the code is doing things right.

 

So what should we concetrate on (a.k.a. FUnctional or unit)?

In a way, both :)

Functional tests consist of unit tests, but the difference is that we need less unit tests to do functional testing then with doing unit testing (my rough guess is only 20% of the unit testing code)

Cute, But seriously, which one?

Ok, functional because:

  • we don't have the time for unit testing - unit tests are by definition more "verbose" than functional tests so writing and maintaining them is physically more work
  • we have coupled systems which means a lot of mocking for unit tests - you can mock up everything you need for a seatmap response and test is as a unit, but what we need most of the time is checking if what comes from the select_flight can be "used" by seatmap 
  • we don't have unit but functional problems. - we still don't have reusable components in such a way that would require unit testing (e.g. if the FlightPath module was being shared across all CKI projects)

Unit testing problem in a nutshell

Made with Slides.com