Software Engineering is discipline , systematic application, operation and maintenance of software and the study about the software itself. Since it appeared in 1968, SE continued as profession and one of the study course to create software that have high quality , maintainable , affordable by the people and to cut the cost of time when developing the software.[1]
Why software Engineering is so important?
For us, SE is a platform where the software growth. From art to the discipline[2].It provide guidelines to software engineer which is call Software Project Management. Project Management are activities that include scope of the project –project planning ,implementation of project components in timely manner, reviewing the projects . This will guide the software engineer to manage their project in systematic way[3].
The software process is one of the important thing in software engineering. software process is a method of developing or producing software[4]. It also impose consistency and structure on A set of activities. The purpose of process are:
1. Effectiveness – the make the system work and it done due to client needs[4] 2. Maintainability – to make change in the system[4] 3. Predictability - predict plan for developing system – when, what and how[4] 4. Repeatability – Re-use the system or software – easy and fast! [4] 5. Quality – to develop quality product – software engineer target[4] 6. Improvement - to make process reach the perfection [4] 7. Tracking - A defined process should allow the management, developers, and customer to follow the status of a project.[4]
Software Testing is one of the SE sub discipline which is an investigation conducted to provide client / stakeholder with information about the quality of software. This process can be call as finding bug. It also can be state as software validating and verifying that a software program and application[5]: 1. Business and technical requirement as guideline in design and development.[5] 2. Work as expected.[5] 3. Can be implemented as same characteristic[5]
Methodologies in software engineering is one of the most important thing in Software Development. Various method such as “waterfall model” “spiral model “ is important for software engineer to find out customer needs and even ask customers about their opinion before proceed to development stage. This level help us by dividing the software development to the small task such as requirement gathering and analysis, system design phase, coding phase etc. these method also help people understanding the problem faced in during in the software development stage and also it giving problem solving strategies and strong support for system developed by using different methodologies.[6]
The software engineering evolution – recognized as something that we cant run from a nature of software system. The system should be consistent to keep their functionalities along with time mean that the software can be change in one period time along with the new technology. A new software system is typically implemented with existing software, named reuse based development.[7]
Is an example of CASE tools that used in performance and load testing. It is product developed by Hewlett-Packard(HP). Loadrunner can be used for examining system behavior and performance. LoadRunner can create hundreds and even thousands of virtual users to put the application through the rigors of real-life user loads concurrently. The result generated can be analyzed in details, to explore the reasons for particular behavior. [9]
LoadRunner helps enterprises:
1) Surface bottleneck pre- production
2) Maximize productivity of QA cycles
3) Accelerates deployment
Type CASE tool: Lower CASE Tools
The definition of Lower CASE Tools is a concentrate on the back end activities of the software life cycle and hence support activities like physical design, debugging, construction, testing, integration of software components, maintenance, reengineering and reverse engineering activities. Based on the definition we can conclude that LoadRunner is a Lower CASE Tools because it is majoring in performance or Load testing. Another example of Lower CASE Tools is PRO-IV Application Development (McDonnell Information Systems). [12]
The Phases or Actives of The Software Development Life Cycle that It covers
In this CASE Tools it consist of two phases;
1) Performance Testing – a process to determine how fast a system is can perform under a certain circumstances or condition. For example in a web application, performance testing can determine how many users can log in at a time concurrently to check when is the performance of the web is slow down or crash.It also can be used to validate and verify other quality attribute of a system such reliability of the system and resource usage. In general, performance testing can be used to check whether a system meet the requirements for the performance. It can be used to compare two or more system to determine which one performs better. Or it can be used to find out where or which part of the system performs badly or the part that causes the system does not perform better. [11]
2) Load Testing - the process of putting demand on a system or device and measuring its response. The term load testing is used in different ways in the professional software testing community. Load testing generally refers to the practice of modeling the expected usage of a software program by simulating multiple users accessing the program concurrently. As such, this testing is most relevant for multi-user systems; often one built using a client/server model, such as web servers. [10]
Architecture Overview:
1.LoadRunner works with the use of creating virtual users that acts like a real users operating client software, such as Mozilla Firefox sending requests using the HTTP protocol to IIS or Apache web servers. [8]
2.In order to create a loadon different server under test, request from many virtual user clients are generated by ‘Load Generators’. [8]
3.Mercury’s “Controller” program started and stopped these load generator agents. [8]
4.Based on "Scenarios" effecting compiled "Scripts" and associated "Run-time Settings”, the Controller controls load test runs. [8]
5.Scripts are crafted using Mercury's "Virtual user script Generator" (named "V U Gen"), It generates C-language script code to be executed by virtual users by capturing network traffic betweenInternet application clients and servers. [8]
7.The Controller monitors each machine status during runs. [8]
8.At the end of each run, the Controller combines its monitoring chart with charts obtained from load generators, and makes them available to the "Analysis" program, which can then create run result reports and graphs for Microsoft Word, Crystal Reports, or an HTML webpage browser. [8]
9.Microsoft Excel can open to perform additional analysis when each HTML report page generated by Analysis includes a link to results in a text file. [8]
10.By using Microsoft Access, errors during each run are stored in a database which can be read. [8]
·Example HP LoadRunner controller
Features:
-Tuning Module Add-In
The LoadRunner Tuning Module allows customers to separate and to deal with system performance bottlenecks. Once the application has been stress tested using LoadRunner, the Tuning Module provides component test libraries and a knowledgebase that help users separate and to deal with performance bottlenecks. [9]
-WAN Emulation Support
This powerful feature set enables LoadRunner to quickly point out the effect of the wide area network (WAN) on application reliability, performance, and response time. Provided through technology from Shunra Software, this WAN emulation capability introduces testing for bandwidth limits, latency, network errors, and more to LoadRunner. [9]
-JBuilder for Java IDE Add-in
LoadRunner now works with Borland's JBuilder integrated development environment (IDE) to create powerful support for J2EE applications. This add-in enables LoadRunner users who create J2EE applications and services with JBuilder to create virtual users based on source code within a JBuilder project. [9]
-Native ICA Support for Citrix MetaFrame
LoadRunner now supports Citrix's Independent Computing Architecture (ICA) for the testing of applications being deployed with Citrix MetaFrame. This support is the first native ICA load testing solution of its kind, jointly developed with Citrix. [9]
-Web Transaction Breakdown Monitor for Isolating Performance Problems
Now you can more efficiently isolate performance problems within your architecture. LoadRunner's Web Transaction Breakdown Monitor splits end-to-end transaction response times for the client, network, and server and provides powerful drill-down capabilities. [9]
-Data Wizard for Data-Driven Testing
LoadRunner's Data Wizard enables you to quickly create data-driven tests and eliminate manual data manipulation. It connects directly to back-end database servers and imports desired data into test scripts. [9]
-Goal-Oriented Testing with AutoLoad
The new AutoLoad technology allows you to pre-define your testing objectives beyond the number of concurrent users to streamline the testing process. [9]
-Enterprise Java Bean Testing
By testing EJB components with LoadRunner, you can identify and solve problems during the early stages of application development. As a result, you can optimize performance before clients have been developed and thereby save time and resources. [9]
-XML Support
With LoadRunner's XML support, you can quickly and easily view and manipulate XML data within the test scripts. [9]