Configuration Testing With Test Cases In Flutter
Hi everyone! today we learn about Configuration Testing with Test Cases In Flutter. Configuration Testing is a software testing technique in which the software application is tested with multiple combinations of software and hardware to evaluate the functional requirements and find out optimal configurations under which the software application works without any defects or flaws.
As discussed above, Configuration Testing is software testing where the application under test has to be tested using multiple combinations of Software and Hardware.
If you’re looking for the best Flutter app development company for your mobile application then feel free to contact us at — support@flutterdevs.com.
Table Of Contents::
Pre-requisites for Configuration Testing
Objectives of Configuration Testing
How to do Configuration Testing
Configuration Testing Example:
et’s understand this with an example of a Desktop Application:
Generally, Desktop applications will be of 2-tier or 3-tier, here we will consider a 3-tier Desktop application that is developed using Asp .NET and consists of a Client, Business Logic Server, and Database Server where each component supports the below-mentioned platforms.
- Client Platform — Windows XP, Window7 OS, windows 8 OS, etc.
- Server Platform — Windows Server 2008 R2,Windows Server 2008 R2, Windows Server 2012R2
- Database –SQL Server 2008, SQL Server 2008R2, SQL Server 2012, etc.
A tester has to test the Combination of Client, Server, and Database with combinations of the above-mentioned platforms and database versions to ensure that the application is functioning properly and does not fail.
Configuration testing is not only restricted to Software but also applicable to Hardware which is why it is also referred to as Hardware configuration testing, where we test different hardware devices like Printers, Scanners, Webcams, etc. that support the application under test.
Pre-requisites for Configuration Testing:
For any project before starting with the config test, we have to follow some pre-requisites
- Creation of a matrix that consists of various combinations of software and hardware configurations
- Prioritizing the configurations as its difficult to test all the configurations
- Testing every configuration based on prioritization.
Objectives of Configuration Testing:
The objectives of configuration Testing are to
- Validating the application to determine if it fulfills the configurability requirements
- Manually causing failures which help in identifying the defects that are not efficiently found during testing (Ex: changing the regional settings of the system like Time Zone, Language, Date time formats, etc.)
- Determine an optimal configuration of the application under test.
- Analyzing the system performance by adding or modifying the hardware resources like Load Balancers, increasing or decrease in memory size, connecting various printer models, etc.
- Analyzing system Efficiency based on prioritization, how efficiently the tests were performed with the resources available to achieve the optimal system configuration.
- Verification of the system in a geographically distributed Environment to verify how effectively the system performs.
- For Ex: With servers at different locations and clients at different locations, the system should work fine irrespective of the system settings.
- Verifying how easily the bugs are reproducible irrespective of the configuration changes.
- Ensuring how traceable the application items are by properly documenting and maintaining the easily identifiable versions.
- Verifying how manageable the application items are throughout the software development life cycle.
How to do Configuration Testing:
In this section, we will discuss the strategy that needs to be followed for configuration testing types there are two types of configuration testing as mentioned below
Software Configuration Testing
Hardware Configuration Testing
- > Software Configuration Testing:
Software configuration testing is testing the Application under test with multiple OS, different software updates, etc. Software Configuration testing is very time-consuming as it takes time to install and uninstall different software that is used for the testing.
Instead of Installing and uninstalling the software in multiple physical machines which is time-consuming, it’s always better to install the application/software in the virtual machine and continue testing. This process can be performed by having multiple virtual machines, which simplifies the job of a tester
Software configuration testing can typically begin when
- Configurability requirements to be tested are specified
- The test environment is ready
- The testing Team is well-trained in configuration testing
- Build released is unit and the Integration test passed
The typical Test Strategy that is followed to test the software configuration test is to run the functional test suite across multiple software configurations to verify if the application under test is working as desired without any flaws or errors.
Another strategy is to ensure the system is working fine by manually failing the test cases and verifying efficiency.
Example:
Say there is a Banking Application, which has to be tested for its compatibility across multiple browsers when the application is hosted in an environment where all the prerequisites are present it might pass the unit and Integration Testing in the test lab.
But if the same application is installed in a client place and the machines are missing some software updates or the versions on which the application is dependent directly or indirectly there is a chance that the application might fail. To avoid this kind of situation, it’s always suggested to fail the tests manually by removing some of the reconfigurability requirements and then proceed with the testing.
- > Hardware Configuration Testing:
Hardware configuration testing is generally performed in labs, where we find physical machines with different hardware attached to them.
Whenever a build is released, the software has to be installed in all the physical machines where the hardware is attached, and the test suite has to be run on each machine to ensure that the application is working fine.
To perform the above task a significant amount of effort is required to install the software on each machine, attach the hardware, and manually run or even automate the above-said process and run the test suite.
Also, while performing hardware configuration tests, we specify the type of hardware to be tested, and there are a lot of computer hardware and peripherals which make it quite impossible to run all of them. So it becomes the duty of the tester to analyze what hardware is mostly used by users and try to make the testing based on prioritization.
Sample Test Cases:
Consider a Banking Scenario to test for hardware compatibility. A Banking Application that is connected to Note Counting Machine has to be tested with different models like Rolex, Strob, Maxsell, Stok, etc.
Let’s take some sample test cases to test the Note Counting Machine
- Verifying the connection of the application with the Rolex model when the prerequisites are NOT installed
- Verifying the connection of the application with the Rolex model when the prerequisites are installed
- Verify if the system is counting the notes correctly
- Verify if the system is counting the notes incorrectly
- Verifying the tampered notes
- Verifying the response times
- Verifying if the fake notes are detected and so on
The above test cases are for one model, and the same has to be tested with all the models available in the market by setting them up in a difficult test lab. Hence, it is advisable to outsource the hardware configuration testing to organizations that specialize in them.
Conclusion:
In Software Engineering, Configuration Testing should be given equal importance as other testing types. Without configuration testing being performed, it is difficult to analyze the optimal system performance, and also software might encounter compatibility issues that are supposed to run.
❤ ❤ Thanks for reading this article ❤❤
If I got something wrong? Let me know in the comments. I would love to improve.
Clap 👏 If this article helps you.
Feel free to connect with us:
And read more articles from FlutterDevs.com.
FlutterDevs team of Flutter developers to build high-quality and functionally-rich apps. Hire a Flutter developer for your cross-platform Flutter mobile app project on an hourly or full-time basis as per your requirement! For any flutter-related queries, you can connect with us on Facebook, GitHub, Twitter, and LinkedIn.
We welcome feedback and hope that you share what you’re working on using #FlutterDevs. We truly enjoy seeing how you use Flutter to build beautiful, interactive web experiences.