Software Testing
What are the main objectives of Software Testing?
- Finding Errors / Bugs in Software
- Requirement Verification
- Performance
- An Indication of quality
All about the Software Engineering
- Finding Errors / Bugs in Software
- Requirement Verification
- Performance
- An Indication of quality
Given the following values, compute F.P when all complexity adjustment factors and weighting factors are average.
Functional Unit | Wighting Factors | ||
Low | Average | High | |
External Inputs (EI) | 3 | 4 | 6 |
External Outputs (EO) | 4 | 5 | 7 |
External Enquired (EQ) | 3 | 4 | 6 |
Internal Logic Files (ILF) | 7 | 10 | 15 |
External Interface Files (EIF) | 5 | 7 | 10 |
Solution:
Here, we are given functional units as:
Also, we are given,
Complexity Adjustment Factors are average.
0 – No Influences
1 – Incidental
2 – Moderate
3 – Average
4 – Significant
5 – Essential
And Weighting Factors are also average.
AVERAGE complexity weights = {4, 5, 4, 10, 7}
for the 5 complexities respectively.
Now,
We know that,
Final F.P = UFP X CAF
Where UFP (Unadjusted Functional Points)
And CAF (Complexity Adjustment Factor)
UFP = 50 x 4 + 40 x 5 + 35 x 4 + 6 x 10 + 4 x 7
UFP = 200 + 200 + 140 + 60 + 28
UFP = 628
CAF = 0.65 + 0.01 (14 x 3)
CAF = 1.07
F.P = UFP x CAF
F.P = 628 x 1.07
F.P = 671.96
Therefore Function Points = 671.96
As a Software Engineer, one of the major difficult questions faced by the client or management is What is the cost and time for the software development? It’s difficult to weigh the real value or worth of software. One of the best ways to estimate the software development cost and time is based on previous software development experience.
To measure the standard worth of the software, as a unit of software worth, Function Point was developed. Functional Point was first defined by Allan Albrecht of IBM in 1977.
A Functional Point is a unit of measurement to express the amount of business functionality an information system provides to a user. – Source: Wikipedia
GA
GA
Step 1: Each Function point is ranked according to complexity. There exist per-defined weights for each F.P in each category.
Step 2: Calculate the Unadjusted Function Point by multiplying each F.P. by its corresponding weight factor.
UFP = Sum of all the Complexities of all the EI’s, EO’s EQ’s, ILF’s and EIF’s
Step 3: Calculate Final Function Points
Final F.P = UFP X CAF
“Total Degree of Influence of the 14 General System Characteristics”
Complexity Adjustment Factor is calculated using 14 aspects of processing complexity. 14 questions answered on a scale of 0 – 5
0 – No Influences
1 – Incidental
2 – Moderate
3 – Average
4 – Significant
5 – Essential
Functional Unit | Wighting Factors | ||
Low | Average | High | |
External Inputs (EI) | 3 | 4 | 6 |
External Outputs (EO) | 4 | 5 | 7 |
External Enquired (EQ) | 3 | 4 | 6 |
Internal Logic Files (ILF) | 7 | 10 | 15 |
External Interface Files (EIF) | 5 | 7 | 10 |
The project can be late due to different factors. Some of the main reasons for late project are as follows:
After the methodology has been selected, planning should be done very carefully. Planning software development as per the chosen methodology can be reflected in the graphical form which is known as the Gantt Chart. Gantt Chart is nothing more than a pictorial representation of planning where it shows tasks to do against time table. It is a very important tool for the project manager or software engineer to assign the job to the employee, trace the target and deadline, track the project progress, and decide to take action in case there is a risk of the project being behind or failing.
In the Gantt Chart, the list of tasks to do is listed horizontally whereas a suitable time frame is scaled vertically. Each activity is represented by a bar; the position and length of the bar reflect the start date, duration, and end date of the activity.
Gantt chart can simply be defined as a horizontal bar chart, which contains a set of tasks with a proper schedule. It was first developed by Henry L. Gantt in 1917 as a production control tool. It helps to manage which activity should we do at the beginning and when to end it, how many activities overlap, what activity should be done at last, and when the project should end.
Gantt chart will reflect on the methodology that you choose for the software development. For example, if you are developing the software using Water Fall Methodology, as we know the phases of the waterfall methodology are
In waterfall, these phases are executed one after another so we plan phase-wise. So the Gantt chart will look like the ladder.
Working as a software engineer is one of the most challenging jobs in the world. A software engineer has to work very hard and carefully to manage the project, resources, and clients correctly so that he/she can track the project, execute as per plan, and lead to success. Software engineers always focus on how to reduce the risk of project failure.
The topic that we are going to cover:
GA
As a software engineer, establishing a good and efficient system needs more practice and more effort into it. Always keep in mind that until and unless, there is no proper process in the system, there is always a risk of project failure, and there will always temporary solutions. So the first job of the software engineer is to make a good system. To make a good and efficient system, software development methodology should be chosen based on the client’s requirement and the Client’s nature. There are different kinds of software development methodologies.
Among this list of methodologies, RUP is one of the most popular and effective methodologies for software development.
Rational Unified Process (RUP) is a software development process from the Rational division of IBM. It can be defined as
A processed product – the development team for RUP is working closely with customers, partners, groups organizations to ensure that the process is constantly updated
The RUP leverages team productivity – it allows the team to have free access to a knowledge base with all the guidelines and tool mentors that help them overcome critical issues. This helps the entire team share the same language when developing software
The RUP creates and maintains models – instead of producing a large amount of paperwork, this method creates models – semantically rich representations of the software system your team is developing
The RUP is a guide on how to use Unified Modelling Language (UML) – UML allows your team to communicate their requirements, architecture, and design of the project.
The RUP is a configurable process – it is a simple and clear process that can fit both small development teams as well as large organizations.
Rational Unified Process (RUP) divides the development process into four distinct phases that each involve business modeling, analysis and design, implementation, testing, and deployment. The four phases are as follows:
1. Inception: It is the initial phase of the developing process. Essentially, in this phase, your team determines the structure and the basic idea of the project. Also, the team will decide the purpose of the project, success criteria, estimated cost, risk assessment, scheduled time, and resources required to complete it, etc. It is just like an evaluation of the project.
The conclusions of the inception phase are:
The major tasks involved in the Inception are as follows:
2. Elaboration: This is the second phase of the development process. The project’s architecture and required resources are further evaluated. This phase aims to analyze the requirements and the architecture of the system, develop the project plan, and eliminate the highest risk elements of the project. It’s undoubtedly the most critical of all stages as it signifies the transition from low-risk to high-risk. It’s also the point when your team has to decide whether to start construction (development and coding) or not.
The conclusions of the Elaboration phase are:
The major tasks involved in the Elaboration are as follows:
3. Construction: This is the third phase of the development process. At this stage, your team is finally ready to develop all components and features and integrate them into the product. It’s a manufacturing process where your team focuses on managing resources to optimize costs, schedules, and quality. The software is designed, written, and tested successfully.
The conclusions of the Construction phase are:
The major tasks involved in the Construction are as follows:
4. Transition: This is the last phase of the development process. The transition phase is the moment when the product is finally finished, released, and delivered to customers. However, once the product is given to the user, several issues can arise. This requires the team to handle all the bug fixes and correct problems or to finish some features that were postponed. It is the process of deployment.
The conclusions of the Transition phase are:
The major tasks involved in the Transition Phase are as follow:
The benefits of RUP:
The disadvantages of RUP:
Agile is a set of values and principles.
Agile is not a Methodology.
Agile is not a specific way of developing software.
Agile is not a framework or process.
The Activity Diagram is another important diagram in UML to describe the dynamic aspects of the system. The Activity Diagram is a flowchart to represent the flow from one activity to another activity. The activity can be described as an operation of the system. The control flow is drawn from one operation to another. This flow can be sequential, branched, or concurrent. Activity diagrams deal with all types of flow control by using different elements such as fork, join, etc.
The basic purposes of activity diagrams are similar to the other four diagrams. It captures the dynamic behavior of the system. The other four diagrams are used to show the message flow from one object to another but the activity diagram is used to show the message flow from one activity to another.
Activity is a particular operation of the system. Activity diagrams are not only used for visualizing the dynamic nature of a system, but they are also used to construct the executable system by using forward and reverse engineering techniques. The only missing thing in the activity diagram is the message part.
Activity diagrams are mainly used as a flowchart that consists of activities performed by the system. Activity diagrams are not exactly flowcharts as they have some additional capabilities. These additional capabilities include branching, parallel flow, swim lane, etc.
Before drawing an activity diagram, we must have a clear understanding of the elements used in the activity diagram. The main element of an activity diagram is the activity itself. An activity is a function performed by the system. After identifying the activities, we need to understand how they are associated with constraints and conditions.
Before drawing an activity diagram, we should identify the following elements
Activities
Association
Conditions
Constraints
Once the above-mentioned parameters are identified, we need to make a mental layout of the entire flow. This mental layout is then transformed into an activity diagram.
Following is an example of an activity diagram for the order management system. In the diagram, four activities are identified which are associated with conditions. One important point should be clearly understood an activity diagram cannot be exactly matched with the code. The activity diagram is made to understand the flow of activities and is mainly used by business users
The following diagram is drawn with the four main activities
Send order by the customer
Receipt of the order
Confirm the order
Dispatch the order
After receiving the order request, condition checks are performed to check if it is a normal or special order. After the type of order is identified, dispatch activity is performed and that is marked as the termination of the process.
The basic usage of the activity diagram is similar to the other four UML diagrams. The specific usage is to model the control flow from one activity to another. This control flow does not include messages.
The Activity Diagram is suitable for modeling the activity flow of the system. An application can have multiple systems. The Activity Diagram also captures these systems and describes the flow from one system to another. This specific usage is not available in other diagrams. These systems can be databases, external queues, or any other system.
We will now look into the practical applications of the activity diagram. From the above discussion, it is clear that an activity diagram is drawn from a very high level. So it gives a high-level view of a system. This high-level view is mainly for business users or any other person who is not a technical person.
This diagram is used to model the activities which are nothing but business requirements. The diagram has more impact on business understanding rather than on implementation details.
Activity diagram can be used for
Modeling workflow by using activities.
Modeling business requirements.
High-level understanding of the system’s functionalities.
Investigating business requirements at a later stage.
First of all, I would like to make clear that it is also known as a Collaboration Diagram. So these two diagram communication and collaboration diagrams are the same. Communication Diagram is used to show how objects interact to perform the behavior of a particular use case or a part of a use case.
After the expanded use case description of the major use cases, we start the communication diagram. So that you should know what is and how to write an expanded use case description. An expanded use case description is a two-way interaction step written between the actor and the system about how that particular use case will execute. It’s like the script of the movie which is written, with step-by-step execution.
As we are drawing the design in an object-oriented way, a collaboration diagram describes a pattern of interaction among objects. It shows the objects participating in the interaction by their links to each other and the messages that they send to each other.
Collaboration diagrams are used by designers to define and clarify the roles of the objects that perform a particular flow of events of use cases. They are the primary source of information used for determining class responsibilities and interfaces.
After the collaboration diagram, we will also get the numbers of classes and their names which need to be defined in the application and its respective objects as well. Not only that but also we will know how these objects of different classes will interact and flow messages with each other stepwise. All showing this kind of information in the diagram is the Collaboration diagram. Its main purpose is to visualize the interactive behavior of the system.
We all know that objects of the classes communicate by sending and receiving messages.
Master2Teach is dedicated to providing comprehensive support and instruction for both educators and students.
Madhyapur Thimi Municapality,
Lokanthali-1, Bhaktapur 44600
Kathmandu, Nepal
[email protected]
+977 9860906290