When the computer was invented, to write a program, one has to write it in machine language – a language of 0’s and 1’s. It was extremely difficult to write even a simple “Hello World” program in machine language. All the instructions (code), and data had to be entered in 0’s and 1’s so that the computer could interpret it and execute.
So people developed Assembly language, which is famously called as low-level language (LLL). Here the binary code was replaced by Assembly instructions. It was comparatively easy to write the programs as some English keywords were created to represent the binary code. Then a translator, called as Assembler, could convert the Assembly program into machine language program. Still it was very difficult for a normal programmer, as these assembly instructions would vary according to microprocessor used in that computer. The programmer needed to have very good understanding of the architecture of the microprocessor to write efficient code in Assembly language. Only highly skilled and experienced computer engineer could write the assembly language program.
Then to simplify the programming, people developed new programming languages, like BASIC, Fortran, C, etc. These were called as High Level Languages (HLL). These languages would have keywords and sentences that were looking like English language. They had their own syntax and grammar, but still it was easy to write a program in these HLLs, for very complex applications, in much shorter time, compared to writing in the Assembly Language. Again, there is a translator required to translate the HLL program into machine language program, which we call as compiler or interpreter. There are continuous advances in Higher Level Languages, and we have C++, Java, C#, etc. that are called as Object Oriented Programming languages, and have taken the concept of encapsulation to next level.
Now, what is Ultra Level Programming language? So if we see the journey of programming languages from Machine language to Low Level Programming language to High Level Programming language, the next logical evolution is Ultra Level Programming language. It probably started with developing Test Automation. Writing the automation scripts in VB or Java (or any other High Level language), was also complex, from a Test engineer’s perspective. Because of comparatively less skilled programmers writing the automation programs which resulted in huge maintenance, and many times forced to dump automation projects. People started thinking about further encapsulating the HLL. It gave birth to Keyword Driven automation frameworks, wherein one could develop a library of all the commonly used user actions (mouse and keyboard events) on all types of objects (text boxes, different buttons, drop down lists, links, etc.). It commonly used verifications (e.g. if a button is enabled), and processes (e.g. generating a report), and a parser to read a script (mostly in Excel) and interpret the scrip to call the low level functions available in some libraries (e.g. Selenium, QTP), and execute them.
In Harbinger, we have developed such a keyword-based framework – HIHAF (Harbinger Integrated Hybrid Automation Framework). It has simplified development of automation scripts such that a manual test engineer with little knowledge about conventional programming could also develop very effective automation scripts. HIHAF can be used for automating Web based, Windows based, CLI based, applications, and also automate native and web applications on Android and iOS. This has empowered a test engineer to develop the automation programs with higher efficiency and with minimal of maintenance. So all such frameworks could be called as Ultra Level programming languages (ULLs).
Lately, there are similar frameworks available for developing the applications as well. So any non-programmer having a good idea about the domain and business requirements could develop applications using such frameworks. These consist of extremely simple English like statements, which get converted into some HLL, and then respective compilers or interpreters could parse them to get executed. These are also called as Code Generators and are helping business people to develop applications.
Therefore, it is important to understand and make use of these new techniques of programming to develop the applications using just business skills and domain skills rather than programming language skills.
Get in touch with us and explore how our Advanced Testing Services can benefit your requirements, contact now