Blog

Penguin taming: how to test Linux-based applications. Part 2

The administration of the Linux host (where your web application runs) requires frequent job and process managing activities.
27 January 2015
Quality assurance
The article by a1qa
a1qa

You can read the first part of the article here. The article was published on Engineers Edge.

Shortcuts for managing

The administration of the Linux host (where your web application runs) requires frequent job and process managing activities. A few must-knows are listed below.

To interrupt a job, use a shortcut Ctrl-C. When you need to resume a job, use a shortcut Ctrl-Z. The command fg restarts the job, while bg places a job to the background, allowing you to perform additional tasks at the same time. Also add an ampersand (“&”) to your command in the end of the string to start it in the background.

When you need to view currently running processes, run “ps.” While all jobs have unique process IDs displayed in the first column of the output, rest assured there are some more useful options here to modify its result view.
If you need to end a required job, run “kill/killall” followed by the process ID or process name (kill 22064; killall java, for example).

The grep command will help to find a specific job you might need. It is an efficient search tool with a large scope of configurations (for example, ps -aux | grep java). The ps returns the list of all processes. The grep filters the list according your search criteria.

Installing new software

What should we expect when installing new software in Linux OS? This can be a challenging task among former Windows users. Usually it can be done by following these methods: installing RPM packages, installing DEB packages or installing from tarballs (esp. source code).

On top of that, when starting working with Linux, you should always keep in mind software repositories, which provide storage for packages (both source and binary) accessible via Internet to install any required software on your computer. It’s up to you whether to use a certain repository or create your own. See examples for two of the most popular utilities: YUM in files repo in the directory/etc/yum.repos.d/ and APT in file /etc/apt/sources.list and in the files in the directory/etc/apt/source.list.d/.

Types of software

As for software testing itself, there are basic instruments for testing Linux applications you will definitely need. Most of these solutions are applicable to the majority of Unix-based systems and are console-based, which makes them easier to automate.

There are three types of software in Linux: Core (Kernel), User applications (userspace level), and Core + User applications. Core applications include the core itself, the kernel modules and user space level for kernel control (meaning the / proc and / sys interfaces). Since the kernel itself is written on C and ASM, C is the preference for testing. Usually these are small test kernel modules, checking some functions or module with different parameters + script.

Based on many years of testing experience, it is recommended you avoid using one module that checks the entire “feature.” This is why many modules are used to check each of the functions separately. Also keep in mind that you have to check all possible functions return codes.

User applications can be considered any application running on Linux. However, if the application is written in Java, you’ll need to own Java, at least in order to make sure that the program is working.

Core + User applications are the most popular to be used in Linux. If you are dealing with this type of application, it means the core driver provides low-level communication with any device and the user program.

Testing tools for Linux

Since all Linux tools are either present in any distributive or can be freely downloaded, Linux is a convenient OS both for programming and testing. Basic tools for testing Linux applications are as follows:

  • GCC – Gnu C compiler. To test the compiler, you can use gcc, which is a Basic C, C++ compiler for Linux. Its website has special tests. If you compile the -g option, you can debug the program with GDB.
  • BASH. The BASH shell is also included in each distribution. It is very useful for writing scripts.
  • expect is also present in each distributive. It is a simple but quite handy syntax tool command language (TCL).
  • expect-perl ? expect-python (pyexpect) – libraries expect for scripting languages perl and python.
  • gdb – Gnu Debuger. This is a standard C/C++ debugger. If you’ve never used it, we advise you to get acquainted with this tool. Use kgdb for kernel.
  • ltt – Linux Trace Toolkit. If your Linux core supports LTT, you can view the active processes/system calls in the current process.
  • import ? gimp – can be used for taking screenshots for testing graphics applications.
  • minicom is a program for manual testing. If you want to automate the console, it is better to use the expect (or in conjunction with the “cat” and “echo”, or just open / dev / ttySx as file – sometimes the second option does not fit).
  • ltp – Linux Test Suite Page [ltp.sf.net] is a very useful collection of tests. It includes tests of file systems, system calls, etc.

Among other common tools, it would good to mention such as netperf (utility to verify the network performance), ircp, irdump, openobex (utilities for infrared checking), and telnet, ssh (a remote shell). If you need to enter same commands frequently, you can use expect, which is available in any distributive). A more detailed comprehensive list of tools commonly used for testing the various components of Linux can be found here.

Hackers’ security distribution

Linux also has its own distributions for testing. Backtrack-Linux.org is a good example of a specialized Linux distribution that has just one purpose – to test your network, devices and systems for security vulnerabilities. The last version of Backtrack was released in August of 2012.

Backtrack all started with earlier versions of live Linux such distributions such as Whoppix, IWHAX, and Auditor. As it’s said at Offensive Security, after years of development, penetration tests, and unprecedented help from the security community, it evolved to what is now known as a GPL-compliant Linux distribution built by penetration testers for penetration testers with development staff consisting of individuals spanning different languages, regions, industries and nationalities.

Backtrack consists of more than 300 security open source tools and utilities. While there are many commercial programs available, many security professionals prefer BackTrack tools. The interesting thing is that BackTrack is also popular among hackers because of its anonymity; when installing this distribution, you don’t have to register.

Many security practitioners use BackTrack to perform their security assessments. BackTrack is an open-source, Linux-based penetration testing toolset. It makes performing a security assessment easier, because all of the common tools that you need are all packaged into one nice distribution and ready to go at a moment’s notice. As with other Linux distributions, BackTrack is supported and developed by a community of users that range from skilled penetration testers in the information security field, government entities, information technology experts, security enthusiasts and individuals new to the security community.

Conclusion

The above should provide a good overview of some of the basic Linux tools, singularities, process management, specific limitations, etc., that are vital for quality assurance services involving Linux. However, this is just the tip of the iceberg when it comes to Linux, the most stable, efficient, safe and legal operating system ever.

More Posts

Telecom trends 2024
15 April 2024,
by a1qa
5 min read
QA’s role in adopting telecom trends for 2024 
Let’s dive into the transformative trends set to redefine the telco industry in 2024 and discover QA strategies to adopt them with precision.
Cloud-based testing
Cybersecurity testing
Functional testing
General
Migration testing
Performance testing
QA trends
Quality assurance
Test automation
Zero trust in retail
27 March 2024,
by a1qa
4 min read
Fortifying retail security posture: embracing zero trust to protect customer data
Why adopt zero trust in the retail sector? How can companies ensure increased resilience to cyber incidents? Find out the answers in this article.
General
Quality assurance
Advancing QA and software testing processes with AI
14 March 2024,
by a1qa
4 min read
Advancing QA and software testing processes with AI
Uncovering the benefits companies gain when revolutionizing QA practices with the help of AI and tips to implement it.
General
Quality assurance
Navigating the future: QA trends that will define 2024. Part 2
30 January 2024,
by a1qa
4 min read
Navigating the future: QA trends that will define 2024. Part 2
We continue exploring QA trends, helping businesses remain competitive in 2024.
Cloud-based testing
Cybersecurity testing
QA trends
Quality assurance
Navigating the future: QA trends that will define 2024. Part 1
15 January 2024,
by a1qa
4 min read
Navigating the future: QA trends that will define 2024. Part 1
Discover topical software testing trends that will shape 2024 and empower companies to smoothly implement advanced technologies.
Agile
QA trends
Quality assurance
Test automation
2023-year-end-recap:-a-journey-through-the-a1qa-milestones
20 December 2023,
by a1qa
4 min read
2023 year-end recap: a journey through the a1qa milestones 
As we bid farewell to 2023, join us in recalling noteworthy achievements and unforgettable moments that have defined this year!
General
Quality assurance
The year in valuable conversations: recapping 2023 a1qa’s roundtables for IT executives 
8 December 2023,
by a1qa
3 min read
The year in valuable conversations: recapping 2023 a1qa’s roundtables for IT executives 
From dissecting novel industry trends to navigating effective ways of enhancing software quality — let’s recall all a1qa’s roundtables. Join us!
Big data testing
Cybersecurity testing
Functional testing
General
Interviews
Performance testing
QA trends
Quality assurance
Test automation
Usability testing
Web app testing
a1qa has been included in the Next-Generation Quality Engineering Services PEAK
29 November 2023,
by a1qa
2 min read
a1qa has been included in the Next-Generation Quality Engineering Services PEAK Matrix® Assessment 2023 by Everest Group
Explore how a1qa secured a proud spot in the prestigious PEAK Matrix® by Everest Group.
General
Quality assurance
na-st-awards-23
16 November 2023,
by a1qa
3 min read
a1qa shines as the finalist in three categories of the North American Software Testing Awards
a1qa is a triple finalist at the North American Software Testing Awards.
General
Quality assurance
Test automation

Get in touch

Please fill in the required field.
Email address seems invalid.
Please fill in the required field.
We use cookies on our website to improve its functionality and to enhance your user experience. We also use cookies for analytics. If you continue to browse this website, we will assume you agree that we can place cookies on your device. For more details, please read our Privacy and Cookies Policy.