Enterprise applications delivered on mobile devices extend the workplace like never before. On the one hand this results in new opportunities. On the other hand this results in new challenges as well. One of these challenges is to make sure that software quality stays high, even in a highly distributed environment.
Typical mobile environments are highly distributed and consist of a number of different technologies. As for a typical SAP NetWeaver Mobile environment we are talking about possibly thousands of mobile devices that are usually highly distributed and not very accessible by system administrators. Meaning that bugs in your enhancements to SAP standard applications or in your own developed mobile applications are harder to detect than in traditional IT environments and that it’s a bigger effort to fix those bugs since patches have to be deployed to all devices out in the field.
As for the detection of problems and the deployment of fixes, SAP NetWeaver Mobile offers a number of tools that greatly facilitate these tasks. It might still be smarter to avoid problems as much as possible though. And the best way to do this is by investing into a good quality management.
Managing software quality is one of the most important steps in an application development process. The major part of managing software quality is software testing. Entire books have been written on this. So there’s no way to really cover all of this in a simple blog. Let’s still have a quick look at it to give you a first (superficial) impression of how to effectively test mobile software.
Software testing is the process used to help identify the correctness, completeness, security, and quality of software. Testing is a process of technical investigation that is intended to reveal quality-related information about the product with respect to the context. This includes, but is not limited to, the process of executing a program or application with the intent of finding errors. It is important to note that testing can only be used to show the presence of bugs, but never to show their absence.
Generally, testing includes unit testing, integration testing and system testing.
- Unit Testing verifies that a basic unit of the software has been correctly implemented.
- During Integration Testing more and more units get integrated and tested. Integration tests can be down in primarily two different ways: bottom up and top town.
- System Testing verifies that the entire system works as planned.
Tests are usually done by creating test cases and executing them. As for the creation of test cases there are two main methods: black box and white box testing. Black box being an external view of the test object and white box being an internal view. To create a white box test case you therefore have to have some knowlegde of the coding while black box test cases can be created just taking the outside view.
So what is so different about testing mobile applications ? Well, actually methdology-wise nothing. You probably start by doing some unit tests which should be black box and white box tests. After you have successfully tested all the units you will probably start by doing some integration test using the bottom up methodology if you have developed and application from scratch or top down if you have been enhancing an SAP standard application. After having integrated all units you will then perform a system test.
There are some differences though: the landscape is more complex, there are more technologies involved and more things need to be tested. And a lot of times executing the necessary test cases is way more time consuming since it might require a synchronization.
So what would I recommend for certain scenarios ?
Enhancing a standard SAP application like xMAM or xMTT:
- perform unit tests first if enhancements make this necessary
- go Top Down and integrate your enhancements one after the other
- if you don’t do major enhancements black box tests should be sufficient
- perform a system test as a last step. Focus on your enhancements but make sure that no side effects occur but performing some general tests as well
Creating your own developed mobile application using NetWeaver Mobile
- perform unit tests first
- go bottom up
- black and white box testing
- extensive system test
As I said before this blog can just create some awareness since the subject is really complex and software testing is a true art. I hope it has been a good starting point for you though …