Bug Tracking System
Bug Tracking System
Bug Tracking System
ABSTRACT
Bug Tracking System the system which enable to detect the bugs. It not merely detects the bugs but provides the complete information regarding bugs detected. Bug Tracking System ensures the user of it who needs to know about a provide information regarding the identified bug. Using this no bug will be unfixed in the developed application. The developer develops the project as per customer requirements. In the testing phase the tester will identify the bugs. Whenever the tester encounter n number of bugs he adds the bug id and information in the database. The tester reports to both project manager and developer. The bug details in the database tables are accessible to both project manager and developer.
Page 1
CHAPTER 1
INTRODUCTION
Page 2
[1]. Introduction:
When a customer puts request or orders for a product to be developed. The project manager is responsible for adding users to Bus Tracking System and assigning projects to the users. The project manager assigns projects to the developers. The developer develops the projects as per customer requirements. The project manager itself assigns the developed applications to the Testers for testing. The tester tests the application and identifies the bugs in the application. When the tester encounters n no. of bugs, he generates unique id number for each individual bug. The bug information along with its id is mailed to the project manager and developer. This is Bug Report. These are stored in the database. This is useful for further reference. Bug information includes the bug id, bug name, bug priority, project name, bug location, bug type. This whole process continues until all the bugs are got fixed in the application. The bug report is mailed to the project manager and the developer as soon as the bug is identified. This makes that no error will go unfixed because of poor communication. It makes ensure that anyone who needs to know about a bug can learn of it soon after it is reported. Bug Tracking System plays a vital role in the testing phase. But it supports assigning projects for the developer, tester by the project manager. The Bug Tracking System maintains the different users separately i.e., it provides separate environments for project manager, developer and tester.
[1.1] Rational:
The main benefit of a bug-tracking system is to provide a clear centralized overview of development requests (including bugs and improvements, the boundary is often fuzzy), and their state. The prioritized list of pending items (often called backlog) provides valuable input when defining the product roadmap, or maybe just "the next release". In a corporate environment, a bug-tracking system may be used to generate reports on the productivity of programmers at fixing bugs. However, this may sometimes yield inaccurate results because different bugs may have different levels of severity and complexity. The severity of a bug may not be directly related to the complexity of fixing the bug. There may be different opinions among the managers and architects.
Page 3
[1.2.2] Proposed System: Proposed System: The purpose of the Bug Tracking System is to test the application for the bugs and report it to the project manager and developer. The main intention behind the Bug Tracking System is that to track bugs and reports them. Store the bug information with a unique id in the database for future reference. So, this makes the job of handling the bugs easy.
The main objectives of the Bug Tracking System are: Identifying the bugs in the developed application. No bug will be unfixed in the developed application. Not merely identifying the bugs but also providing the bug information. As soon as the bugs are identified. They are reported to the project manager and developer. To ensure that who needs to know about the bug can learn soon after it is reported
take. Application support professionals often use a local bug tracker (LBT) as well to monitor users complaints that may be irrelevant in the actual software development process. The software is a web application which can be run on a windows operating system having Java platform ( JDK 1.6 or higher ) . The users of Bug Tracking System: Project Manager Developer Tester
assigns the developed applications to the tester for testing. In the testing phase, when the tester encounters no. of bugs then he reports to the project manager and developer about the bug information. Bottlenecks of the Existing System: The tester report which is called Bug Report is in the form of physical document. If the document is damaged then the total information about the bug will be lost. The bug information is not stored in the database for future reference.
Chapter 2-Litrature Survey In this chapter we have explained about what we study about the project with the previous projects available in the issue tracking system.
Page 5
Chapter 3-Analysis Analysis phase contains the requirement analysis, use case, the activity and the Sequence diagram.
Chapter 4-Design In the Design phase we had explained about the our project Bug Tracking System with the help of diagrams, we explained the various stages of the project through class diagram, Component diagram, Sub System diagram etc.
Page 6
CHAPTER 2
LITERATURE SURVEY
Survey
RGNCLC, NLIU Bhopal Page 7
[2.1] Survey 1:
Authors Aiken Relay American History, Smithsonian Institution. "The First "Computer Bug
Page 8
faults and difficulties are calledshow themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.
[2.1.2] Conclusion
Conclusion we feel that our bug tracking system fill a unique niche for a bug tracking system targeted at student groups. For future work it would be ideal to continue the development of our bug tracking system by offering different implementations of the frontend. Also we feel that study could be done to analyze the productivity of groups working without the help of our bug tracking system and compare that to the productivity of groups working with our bug tracking.
[2.2] Survey 2:
Authors Murray Hopper Harvard University
Oxford English Dictionary entry for "debug" contains a use of "debugging" in the context of airplane engines in 1945.
[2.2.2] Conclusion:
Bugs are a consequence of the nature of human factors in the programming task. They arise from oversights or mutual misunderstandings made by a software team during specification, design, coding, data entry and documentation. Hence bugs are very dangerous for any program or any software.
Page 10
CHAPTER 3
ANALYSIS
Survey
Page 11
[3.1] Analysis:
Analysis is the process of breaking a complex topic or substance into smaller parts to gain a better understanding of it. Analysis is a detailed study of the various operations performed by a system and their relationships within and outside of the system. Here the key question is- what all problems exist in the present system? What must be done to solve the problem? Analysis begins when a user or producer begins a study of the program using existing system.
We referenced to certain other websites in order to have some additions and enhancements to the existing software.
Page 12
captured in use cases. Functional requirements are supported by non-functional requirements , which impose constraints on the design or implementation . How a system implements functional requirements is detailed in the system design. This information is used to help the reader understand why the requirement is needed, and to track the requirement through the development of the system. [3.1.2.2] Non-functional Requirement:The Non-functional Requirement which specify overall characteristics such as cost, time management, reliability and quality of software. The main motto of this project is to save user time and provide good communication. The total cost of this project is cheap as compare to manual work done by the person in filling the details of users. Software working in very reliable which help to voter to fill the form and communicate easily. Due to less complexity and user friendly the quality is maintained by all over the project.
Page 13
We have adopted this model because of following strengths: Develop high-risk or major functions first Each release delivers an operational product Customer can respond to each build Uses divide and conquer breakdown of tasks Lowers initial delivery cost Initial product delivery is faster Customers get important functionality early Risk of changing requirements is reduced
[3.1.3.2] SDLC Stages:The six stages of the SDLC are designed to build on one another, taking the outputs from the previous stage, adding additional effort, and producing results that leverage the previous effort and are directly traceable to the previous stages. This top-down approach is intended to result in a quality product that satisfies the original intentions of the customer. Development efforts go awry when the development team and customer personnel get caught up in the possibilities of automation. Instead of focusing on high priority features, the team can
RGNCLC, NLIU Bhopal Page 14
become mired in a sea of nice to have features that are not essential to solve the problem, but in themselves are highly attractive. This is the root cause of a large percentage of failed and/or abandoned development efforts, and is the primary reason the development team utilizes the Waterfall SDLC. [3.1.3.3]Requirements Definition Stage: The requirements gathering process takes as its input the goals identified in the high-level requirements section of the project plan. Each goal will be refined into a set of one or more requirements. These requirements define the major functions of the intended application, define operational data areas and reference data areas, and define the initial data entities. Major functions include critical processes to be managed, as well as mission critical inputs, outputs and reports. A user class hierarchy is developed and associated with these major functions, data areas, and data entities.
Each of these definitions is termed a Requirement. Requirements are identified by unique requirement identifiers and, at minimum, contain a requirement title and textual description. [3.1.3.4] Design Stage The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts. Design elements describe the desired software features in detail, and generally include functional hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams, pseudo code, and a complete entity-relationship diagram with a full data dictionary. These design elements are intended to describe the software in sufficient detail that skilled programmers may develop the software with minimal additional input. [3.1.3.5] Development Stage: The development stage takes as its primary input the design elements described in the approved design document. For each design element, a set of one or more
RGNCLC, NLIU Bhopal Page 15
software artifacts will be produced. Software artifacts include but are not limited to menus, dialogs, data management forms, data reporting formats, and specialized procedures and functions. Appropriate test cases will be developed for each set of functionally related software artifacts, and an online help system will be developed to guide users in their interactions with the software. [3.1.3.6] Integration & Test Stage: During the integration and test stage, the software artifacts, online help, and test data are migrated from the development environment to a separate test
environment. At this point, all test cases are run to verify the correctness and completeness of the software. Successful execution of the test suite confirms a robust and complete migration capability. During this stage, reference data is finalized for production use and production users are identified and linked to their appropriate roles. The final reference data (or links to reference data source files) and production user list are compiled into the Production Initiation Plan.
[3.1.4] Object Oriented Analysis:Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design. An object contains encapsulated data and procedures grouped together to represent an entity. The 'object interface', how the object can be interacted with, is also defined. An object-oriented program is described by the interaction of these objects. Object-oriented design is the discipline of defining the objects and their interactions to solve a problem that was identified and documented during objectoriented analysis. What follows is a description of the class-based subset of object-oriented design, which does not include object prototype-based approaches where objects are not typically obtained by instancing classes but by cloning other (prototype) objects.
Page 16
Conceptual model: Conceptual model is the result of object-oriented analysis, it captures concepts in the problem domain. The conceptual model is explicitly chosen to be independent of implementation details, such as concurrency or data storage.
Use case: Use case is a description of sequences of events that, taken together, lead to a system doing something useful. Each use case provides one or more scenarios that convey how the system should interact with the users called actors to achieve a specific business goal or function. Use case actors may be end users or other systems. In many circumstances use cases are further elaborated into use case diagrams. Use case diagrams are used to identify the actor (users or other systems) and the processes they perform.
System Sequence Diagram: System Sequence diagram (SSD) is a picture that shows, for a particular scenario of a use case, the events that external actors generate, their order, and possible inter-system events.
User interface documentations (if applicable): Document that shows and describes the look and feel of the end product's user interface. It is not mandatory to have this, but it helps to visualize the end-product and therefore helps the designer.
Relational data model: A data model is an abstract model that describes how data is represented and used. If an object database is not used, the relational data model should usually be created before the design, since the strategy chosen for object-relational mapping is an output of the OO design process. However, it is possible to develop the
Page 17
relational data model and the object-oriented design artifacts in parallel, and the growth of an artifact can stimulate the refinement of other artifacts. [3.1.4.2] Object-oriented concepts:
The five basic concepts of object-oriented design are the implementation level features that are built into the programming language. These features are often referred to by these common names:
Object/Class: A tight coupling or association of data structures with the methods or functions that act on the data. This is called a class, or object (an object is created based on a class). Each object serves a separate function. It is defined by its properties, what it is and what it can do. An object can be part of a class, which is a set of objects that are similar.
Information hiding: The ability to protect some components of the object from external entities. This is realized by language keywords to enable a variable to be declared as private or protected to the owning class.
Inheritance: The ability for a class to extend or override functionality of another class. The so-called subclass has a whole section that is derived (inherited) from the super class and then it has its own set of functions and data.
Interface: The ability to defer the implementation of a method. The ability to define the functions or methods signatures without implementing them.
Polymorphism: The ability to replace an object with its sub objects. The ability of an object-variable to contain, not only that object, but also all of its sub objects.
Defining objects, creating class diagram from conceptual diagram: Usually map entity to class.
Identifying attributes. Use design patterns: A design pattern is not a finished design, it is a description of a solution to a common problem, in a context. The main advantage of using a design
Page 18
pattern is that it can be reused in multiple applications. It can also be thought of as a template for how to solve a problem that can be used in many different situations and/or applications. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved.
Define application framework: Application framework is a term usually used to refer to a set of libraries or classes that are used to implement the standard structure of an application for a specific operating system. By bundling a large amount of reusable code into a framework, much time is saved for the developer, since he/she is saved the task of rewriting large amounts of standard code for each new application that is developed.
Identify persistent objects/data (if applicable): Identify objects that have to last longer than a single runtime of the application. If a relational database is used, design the object relation mapping.
Sequence Diagrams: Extend the System Sequence Diagram to add specific objects that handle the system events. A sequence diagram shows, as parallel vertical lines, different processes or objects that live simultaneously, and, as horizontal arrows, the messages exchanged between them, in the order in which they occur.
Page 19
Double-click the Net Beans IDE icon on your desktop. Choose Start > All Programs > NetBeans 6.0 > NetBeans IDE. Start the IDE at the command line C:\> netbeans-install-directory\bin\netbeans.exe. To stop the IDE:
Use the Add/Remove Programs utility. Do not manually delete the directories and files.
[3.2.3] Scope:[3.2.3.1] Functional Requirement:Functional requirements may be calculations, technical details, data manipulation and processing and other specific functionality that define what a system is supposed to accomplish. Behavioral requirements describing all the cases where the system uses the functional requirements are captured in use cases. Functional requirements are supported by non-functional requirements, which impose constraints on the design or implementation. How a system implements functional requirements is detailed in the system design. This information is used to help the reader understand why the requirement is needed, and to track the requirement through the development of the system. [3.2.3.2] Non-functional Requirement:The Non-functional Requirement which specify overall characteristics such as cost, time management, reliability and quality of software. The main motto of this project is to save user time and provide good communication. The total cost of this project is cheap as compare to manual work done by the person in filling the details of users. Software working in very reliable which help to voter to fill the form and communicate easily. Due to less complexity and user friendly the quality is maintained by all over the project.
[3.2.4] Overall Description:[3.2.4.1] Product perspective: Bug tracking System is aimed towards the companies who want to reach out to the maximum cross-section of customer and common people who can be potential customer. This project envisages bridging the gap between the company and their customer. Bug Tracking system should detect bugs very effectively.
Page 21
[3.2.4.2] Product feature: The main goal of this project is to store bug information by giving unique id for each bug in the database. This will be used for future reference while the same bug arises. The project has the following modules: Project Manager Developer Tester [3.2.4.3] Operating Environment: Operating System- Windows XP Minimum Ram- 128 MB Technology-Java JDK or NETBEANS run the project. Back End- MS ACCESS Database used for storing of data [3.2.4.4] Design and Implementation Constraints: The system shall be built using a standard web page development tool that conforms to either IBMs CUA standards or Microsofts GUI standards. The computers must be equipped with web browsers such as Internet explorer. The product must be stored in such a way that allows the client easy access to it. Response time for loading the product should take no longer than five minutes. A general knowledge of basic computer skills is required to use the product.
[3.2.4.5] User Documentation: This Software is a web based application. To run the project java should be installed on the system that should be jdk1.6.0 and its above versions. Our project can also be run on the NetBeans. It should also the NetBeans6.0 and its above version.
Page 22
language, the processing made and the request served. The operations will be intended to be made as fast as possible.
[3.2.5] Nonfunctional Requirements:[3.2.5.1] Performance Requirements: It should perform faster and economically. [3.2.5.2]Safety Requirements: Suitable safety has to be taken while allowing booking the ticket of the customer. They have to follow the legalities of the land, and must be ethical. There could be possible misuse of the system by bogus user, bidding and buying without paying up. It is not always possible to check the postal addresses. Also during money transactions the unreliable networks may cause further problems. So such practices need to be avoided. [3.2.5.3]Security Requirement: Security is the mainly occurs in the online application because any one in the network can hack the unauthorized access to the network. So that our software is a desktop application there is no problem of hacking or unauthorized access because the user of the system is able to operate the system no other can operate our system except user. [3.2.5.4]Software Quality Attribute: The system is easy to load and light .It adds to the quality and usability of the system. Some others quality considerations such as adaptability, availability, correctness, flexibility, interoperability, maintainability, portability, reliability, reusability, robustness, testability, and usability will also be very seriously taken to consideration
Page 24
CHAPTER 4
DESIGN
Survey
Page 25
The login use case helps the system to identify the operator .The operator will be asked to enter the username ,password & the designation .The user will be grated permission to operate the system only if the operator has entered the correct username ,password & matching up with the designation stored in the database files.
Page 26
The logout use case exists in the system in a extend relationship with the login use case. It simply informs the operator that whether the username and/or the password and/or the designation has not entered correctly.
The above use case will provide the functionality to add a new system operator that will only be used by the manager of the system .After the manager has provided the username, password and the designation to the new operator ,the operator can login into the system and perform various tasks associated with his designation.
This use case will only be used by the manager with which the manager will be able to add new entries such as a new bus ,a new employee ,etc .Also the manager will be able to remove an entry from the existing entries.
The view reports use case will provide the functionality to view reports for employees ,bus trips ,passengers ,etc .These facilities will be used by all the operators of the system.
This use case will provide the operators functionality of exiting the system so that if another operator wants to enter the system he will have to login again.
Page 27
Page 28
Page 29
[4.4] Data Model:Data modeling answers a set of specific questions that are relevant to any data processing application. What are the primary data objects to be processed by the system? What is the composition of each data object and what attributes describe the Object? Where do the objects
currently reside? What are the relationships between each object and other objects? What are the relationships between the objects and the processes that transform them? To answer these questions, data modeling methods make use of the entity relationship Diagram. The ERD, described in detail later in this section, enables software Engineer to identify data objects and their relationships using a graphical notation. In the context of structured analysis, the ERD defines all data that are entered, stored, Transformed, and produced within an application. The entity relationship diagram focuses solely on data (and therefore satisfies the first operational analysis principles), representing a "data network" that exists for a given system. The ERD is especially useful for applications in which data and the relationships that govern data is complex. Unlike the data flow diagram (discussed in Section 12.4 and used to represent how data are transformed), data modeling considers data independent of the processing that transforms the data.
[4.4.1] Process modeling: The data objects defined in the data modeling phase are
transformed to achieve the information flow necessary to implement a business function. Processing descriptions are created for adding, modifying, deleting, or retrieving a data object.
[4.4.2] Application generation: RAD assumes the use of fourth generation techniques.
Rather than creating software using conventional third generation programming languages the RAD process works to reuse existing program components (when possible) or create reusable components (when necessary). In all cases, automated tools are used to facilitate construction of the software.
Page 30
Page 31
Programmer
Administrator
Database
Page 32
tbl_Bug_Details
3.4 Add/Modiy
3.5 Delete
3.6 Add/Modiy
3.7 Delete
3.8 Add/Modiy
3.9 Delete
tbl_Bug_History
tbl_Bug_Assign
tbl_File_Attatchment
Page 33
4.5 Delete
4.7 Delete
4.9 Delete
tbl_Bug_Hierarchy
tbl_Bug_Resources
tbl_Bug_Resolution
Page 34
[4.7] Expected Outcomes:The software is developed using Netbeans editor as front end and Ms-access as back end in Windows environment. The goals that are achieved by the software are: Instant access. Improved productivity. Optimum utilization of resources. Efficient management of records. Simplification of the operations. Less processing time and getting required information. User friendly. Portable and flexible for further enhancement.
System works with windows and its compatible environments. Advanced techniques are not used to check the authorization. Once the employee is registered to a course cannot drop, without completing.
Page 35
CHAPTER 5
Conclusion
[5.1] Conclusion:
This project Bug Tracking System for Improving Software Quality and Reliability is to keep track of employee skills and based on the skills assigning of the task is done to an employee. Employee does Bugs capturing. It can be done on daily basis. Various Reports are generated by this System for an employee and as well as to a manager. This project will be accessible to all developers and its facility allows developers to focus on creating the database schema and while letting the application server define table based on the fields in JSP and relationships between them. This application software has been computed successfully and was also tested successfully by taking test cases. It is user friendly, and has required options, which can be utilized by the user to perform the desired operations.
Page 36
Bibliography
Books: Cay S. Horstmann and Gary Cornell, Core Java Volume I Fundamentals 7th Ed. Dave Thau, The Book of JavaScript: A Practical Guide to Interactive Web Pages, Ed. 2nd .
http://www.easywayserver.com/blog/java-best-database-connectivity-web/
Page 37