Subscribe by Email


Showing posts with label End users. Show all posts
Showing posts with label End users. Show all posts

Friday, April 12, 2013

Support forums - encouraging users to add their feedback and increase communication levels

In today's world (actually even in times gone by), it was always important for makers of software to engage with their customers. If you build something, you may be secure in the knowledge that you did your best and built your software to meet the customer needs and expectations, but if you are not engaged with your customers, then you might not be on the path to success. What works with customers can be enumerated through marketing and surveys to the highest degree, but customers have a horrible way of surprising even the best laid plans. You may turn out with a very successful software product, or you may turn out with a product that may fail to click with customers. How do you prevent this from happening ? Well, you need to be engaged with your customers, get their opinions, and do so in a way that you are getting it in their natural setting (and not depend entirely on a controlled setting where people representing customers are presented questions and information taken from these answers); and so this before, during and after your product is released.
Why would you want to get information from customers after your product is released ? Well, unless you are there for a one-off product, you need to ensure that your customers are engaged with you, feel that their opinions are taken into account, and if they have any queries, those are answered. And a critical part of that is about ensuring that their opinions and complaints are responded back. However, one major problem that I have seen is that formal customer support is more and more treated as a way to also generate revenue (or also to atleast cover costs). If done well and if you have skilled customer support, then you end up with customers who are satisfied. However, I have also seen customers who are very dis-satisfied with the level of customer support that they are getting and this forms the basis of a bad opinion of the product and of the organization. I was recently searching for some help on a topic related to MS Word, and found a page where users had suggested some solutions, and this worked for me as well. But, when you read about the opinions expressed by many of the users, the common complaint used to be that the customer support was unable to help them, and then they found a solution on a web page, and continued customer interaction on that web page brought such pages to the top of web searches for that particular problem.
And this is where teams and organizations need to be focusing. Formal customer support in the form or chat and telephone may have a certain resolution capability and experience, but it is important to combine this with web pages where users can report problems and get solutions. I have seen teams where team members are encouraged to respond to user problems and suggest solutions (especially in cases where customers are looking for simple items such as looking for a certain feature or a plugin, or some other issue that is not machine or user specific). In the cases I have seen where teams did this kind of interaction, we also saw that other users also started jumping in where they could suggest solutions or where there was a case where they had been given a solution in the past and they could post the same solution for another user. In addition, we had started tagging users with badges which identified them as experts at proposing solutions, and this started to build (pride and the prestige associated with getting recognized in front of other users would make sure that people got into this mode of reporting solutions). Eventually, this got into a self-sustaining mode, but the team ensured that it it did not let up about their interactions with users).
These pages also started getting reported higher and higher on search engines, and as a result, more and more users started landing on such pages when they were running into problems and for most of the users, there was not a need to go to formal customer support mechanisms.


Saturday, July 21, 2012

What is meant by DNS? What does it contain?


DNS or domain name system is a well known distributed system which is quite hierarchical in nature and is used for the following:
  1. Computers
  2. Services
  3. Resources that are connected to some private network or internet and so on.

What does DNS contain?


- With the aid of DNS, the domain names with various participating entities contains various information. 
- A domain name system is also known as domain name service and has taken up the responsibility of resolving the queries for the above discussed domain names into the corresponding IP addresses. 
- The basic purpose of this whole process is spotting the location of devices and computer services on the World Wide Web.
- The domain name system had lately become quite an essential part of the functionality of the internet because of the world wide service it provides regarding the distributed key word based redirection. 
- To put it simply it acts as a phone book in disguise for the internet. 
- It serves as a phone book in the way that it translates the human friendly computer host names in to their corresponding IP addresses. 
For example,
The domain name: www. Abc. Com translates in to the following IP address (say): 192. 0 . 34 . 11 (IPv4) and 2630 : 0 : 2c0 : 201 : : 10 (IPv6) etc.

- Though DNS serves all the purposes of an ideal phone book in terms of the internet, it differs from the phone book in one respect which is that the DNS can be frequently updated and these updates in turn can be distributed but in phone book these tasks cannot be performed so.
- With the help of such a process the location of a particular service on a network can be easily changed without having any affect on the end users who keep on continuing with the same host name. 
-This advantage is further reaped by the users while they recite the meaningful e- mail addresses as well as the URLs (uniform resource locators) without even knowing the way via which the services are actually located by the computers. 
With the help of domain name system, each and every domain in the network is assigned with an appropriate domain name and this domain name is mapped to corresponding IP addresses through the designation of the authoritative name servers for each and every domain. 
- These authoritative name servers hold the responsibility of their particular domains and also it helps in assigning the sub domains with their respective authoritative name servers.
- Such a mechanism has helped a lot in making the domain name system quite fault tolerant and distributed. 
- This mechanism in another way has eliminated the requirement of a single central register to be used continually for updating and consultation. 
- There is one more additional feature of the domain name system which is that the responsibility of the updating and maintenance of the master record of the domains is distributed among many domain name registrars.
- These domain name registrars are known for their competition for the domain owner’s and end user’s business. 
- The facility of moving the domains from one registrar to another has been very well provided in the domain name system.
- The technical functionality of the data base service as well as the DNS specification is also specified by the domain name system.
- This DNS protocol is a kind of detailed specification of the communication exchanges and data structures that are used in the domain name system which in turn forms a very important part of the whole internet protocol suite. 


Wednesday, July 11, 2012

What is website usability testing?


Since the past few years the growth and usage of the web sites which are both free and paid had risen rapidly. In other words, we can say that the usability of the web sites has witnessed a massive growth. With the rise of usage of web sites and web applications, it is obvious that the demand for the web site usability testing also increases! 
Now you must be wondering what actually is web site usability testing? In the earlier times, it took expensive recruitment labs and a large amount of time and deployment to carry out the web site usability testing. Since the advent of the web site usability testing tools, the whole process of testing seems to be so smooth and so under control. 
In this article we have discussed about web site usability testing. You might be thinking that why it is necessary to carry out web site usability and what good it does to the web sites and web applications. 
- The web site usability testing contributes as an essential element of the quality assurance of the web site or web application under the testing. 
- Web site usability testing can be considered to be an exact, actual and true test of how a web site or web application is actually being used by the end users.
- Web site usability testing  becomes quite easy when you know how to do it and also quite cheap when you are going to carry it out yourself. 
- Web site usability testing involves checking the following aspect of the web sites and web applications:
  1. It checks if the web site or the web application is being used by a series of individuals under some guidance from a facilitator.
  2. It checks whether or not the web site or the web application can be successfully used by the outsiders.
  3. It checks if the web site or the web application is focusing only on a particular group.
There are some common terms associated with the web site usability testing that we are going to discuss now:
  1. Observer: An observer is the person in charge of the observation of the of the test that is in progress and he/ she often sits in another room.
  2. Facilitator: He/ she is the person in charge of the guidance of the user while the usability test is under progress and takes relevant notes.
  3. Owner: Owns the web site or the web application.
  4. Web site development team: This team constitutes of all the people who are involved with the development and maintenance of the web site or the web application. It includes the following:
a)    Strategy group
b)    Programmers
c)    Designers
d)    Stake holders and so on.
  1. User: The person who uses the web application or web testing during the usability testing.
  2. Usability: It can be thought of as a measure up to which the intended user achieve his/ her goals using the web site or web application that is under test.
Testers usually take a whole one whopping big usability test which makes the whole testing process quite clumsy rather than breaking down the testing process in to little parts and then executing them. 

There are 5 appropriate timings for carrying out the web site and application testing as mentioned below:
  1. At the time of the conception of the web site you can start by testing a printed mock up of the home page of the site.
  2. Before a re development plan is created.
  3. Repeatedly during development.
  4. Whenever an anomaly shows up in a traffic analysis.
  5. When the owner of the web site calls for some info regarding his web site or web application. 


Friday, June 1, 2012

What are user stories? Are they similar to use cases? Where is user stories used?


You must have heard about the term “user stories” and “use cases” when it comes to the discussion regarding the issues of the software development! In this article we have taken up 3 important questions to discuss as mentioned below:
  1. What are user stories?
  2. Are they similar to use cases?
  3. Where are the user stories used?

What are User Stories?


- User story is a common term that is quite involved with everything that happens in the field of software development and the product management. 
- A user story is more like the business or every day language of the end user (end user is the one who uses the software system or application) which indicates about the activities of the user and what things he/ she needs to do to perform his part of function well.
- User stories have become quite famous.
- User stories are commonly used with the agile software development methodologies when compared its use with the other software development methodologies. 
- Actually, the user stories when used with the agile software development methodologies, serve as a basis or criteria for defining the business functions that a business system is ought to provide. 
- The facilitation of the requirements management is also done with the help of the user stories.
- There are 3 aspects of the requirements that are captured by a typical user story in a way that is quite simple and concise and with a limited description:
  1. Who?
  2. What?
  3. Why?

Who is responsible for writing user stories?


- They are written by the business users as their means to have an influence on the functionalities and features of the software system or application that is being developed. 
- They may also be written by the system developers and programmers as a way to express the non functional requirements like the performance, quality and security. 
- But overall, the task of managing the user stories is taken up by the product manager and thus it is his/ her responsibility for ensuring that the user stories are captured properly. 

"Are user stories similar to use cases?”


Both these are similar to a certain extent. We shall state how! 
- The documentation of the requirements is created with the help of both the user stories and the use cases so that the documentation has a perspective of the user. 
- Since both of them are used in the documentation of the requirements, they both indeed help in capturing the features and functionality of the system. 
- Together they help the development to come with the best solution to the problem. 
- Another advantage of these two is that both can be used to organize the requirements of the system under different categories. 
- They also serve as a reference during the testing phase which ensures that the requirements have been met. 

But there are many other substantial ways in which they differ. 
- Without user stories the developers would have to create formalized requirements documents and perform many tasks to manage them. 
- The user stories are intended to make the response of the developers faster to the rapidly changing requirements of the users and so cutting down the overhead.
- User stories are accompanied by acceptance tests whereas use cases can be delivered as a stand alone document.
- User stories contain little detail whereas use cases include detailed description.

Where are user stories used?


- User stories are an important part of agile development methodologies.
- They give a reason what should be built in a software project.



Wednesday, April 25, 2012

Explain the concepts of Directory traversal attacks?


Another name for directory traversal attack is path traversal attack and there is quite unfamiliarity among people regarding this security threat. We have dedicated this entire article to make you aware of this security threat.

What is meant by Directory Traversal Attacks?

- Directory traversal attacks involve the exploitation of the insufficient sanitization or validation of the security regarding the input data supplied by the end user.
- This results in the passing of the characters representing the traverse to parent directory to the API files.
- The directory traversal attacks are aimed at accessing a computer file that is not intended to be accessible by ordering an application to do so.
- The application acts to the commands of the attacker.
- Here, in such situations there is no fault in the program code and it works perfectly fine but, it lacks in security and that is what that is taken advantage of by the attackers.
- He/ she takes an advantage of the lack of the security of the software system or application.
- This is completely opposite to the exploitation of the bugs of a code.
- Some times directory traversal attacks are also denoted as the “_ _ / attack” (pronounced as dot dot slash attack).
- One common form of such attacks is the canonicalization attacks.
- Some other rare forms are back tracking and directory climbing etc.
- In every operating system there exists a common file that is often used by the hackers to crack the passwords.
- In some operating systems like UNIX, no such password file exists.
- Rather the passwords are stored in some shadow file which is not accessible to the users that are recognized as the unprivileged by the machine. - Password  files are useful in another way also i.e., for enumeration of the accounts on that particular machine and displays whatever are the user accounts present on the system.
- Many variations are observed in the directory traversal attacks based on the directory traversal attack strings used in different operating systems.
- Directory traversal attacks create quite a menace these days which becomes quite difficult to manage.

How to prevent directory traversal attacks?

Software engineers have formulated an algorithm for the prevention of directory traversal attacks which is like this:
- Process URI requests such that they do not invoke any file request. For example, execution of a hook in to the code.
-  Always specify the full path to the directory or file if any exists while normalizing all the characters whenever you have to process a URI request. For example, normalize %20 to spaces.
-  Assume the length of the string to be N and a normalized path exists for a document root that is fully qualified and that no files outside this are accessible.
-  Ensure that the first n characters of the string match exactly with the document root of the requested file.
-  If the above condition proves to be true allow the file to be served.
-  If the above condition is proved false, an error should be returned since the requested file is inaccessible.

An efficient control over the accessing of the web content is highly required for the effective running of the web server in a secure mode. Mostly the web servers employ either of the two security mechanisms listed below: 

1. Root directory:
This directory keeps the users bounded to the specific limits outside which nothing can be accessed. It is created in order to avoid the unauthorized access of the files containing sensitive data by unprivileged users.
2. Access control lists (ACLs): 
These lists find their use in the process of authorization.  The lists contain the information of the users who can legally access the files.


Sunday, February 5, 2012

What are the different tips for writing test cases?

What is the foremost thing that should be taken care of to carry out effective testing? Its test cases of course! Writing test cases without thinking is not going to help because any amount of efforts and time you waste on them, you are not going to get effective results. Writing test cases forms a major component of any software testing methodology.

SOME IMPORTANT FACTS

1. Any change in the requirements tends to affect the concerned test case as well. Since the test cases are based upon the requirements, any change in requirements is reflected in the test cases. If you make any changes to the requirements, make sure you have altered the related test case also accordingly.

2. After you finish writing your test cases, revise them twice so that any error that you didn’t notice can be found out.

3. It rarely happens that all the written test cases are executed. So keep the number of test cases limited i.e., as many as you can execute. If you have less number of test cases, you will be able to focus on them properly.

4. Some test cases demand other test cases as their prerequisites. If that is the case, then you should go through the list of test cases and decide a sequence for executing the test cases.

5. Some test cases are dependent on each other and so it becomes difficult which one to execute first. So try to keep your test cases as much independent as possible.

Now keeping above points in mind, we define some tips for writing effective test cases that if followed will certainly reap you the expected results:

1. Keep your test cases as simple as possible. i.e., keep them to the point and precise. You should be able to integrate your test cases with the test plan.

2. Document your test cases.

3. Review all your test cases at least twice.

4. Include input test data along with the test cases because if the tester is to choose test data by himself/ herself, he/ she may omit the most important test data making the whole testing go in vain.

5. While writing test cases always keep in mind that the end user is the one who will use the AUT.

6. Pay due attention while writing the test cases because this will affect the whole testing process.

7. For every condition or assertion in the program, write a different test case so that you don’t mix up.

8. Make sure that your each test case tests only one aspect of the program. Otherwise you will have problems like over lapping and over complicated tests. If one test case focuses upon one aspect, then the code will get good coverage and tracking any error will be easy.

9. Prepare documentation for every test case. Your documentation should have assertions and description of 4 stages (set up, execution, verification, and output) of the test case.

10. Select a basis on which you want to organize your test cases like functionality or class, so that it becomes easy for you to add new test cases later. The order of your test cases should be consistent.

11. The test cases should be able to execute with a good speed, should be independent as discussed above, should be small and precise so that they can be repeated without much hassle is needed to and should be transparent. By transparency I mean that the test case should clearly state its purpose.

12. Your test cases should be reusable.


Saturday, December 3, 2011

What are different characteristics of alpha testing?

For alpha testing, it won’t be wrong if we say that it is another name for acceptance testing. Alpha testing is very much similar to the acceptance testing. Alpha testing is performed in the front of the customer or the client for their satisfaction and acceptance.

The client or the customer needs to verify or check whether the software artifact has been developed according to their:
- Service level agreement or SLA as it is abbreviated.
- Requirements
- Specifications
- Defect rate efficiency or DRE as it is known in short form.

If during the alpha testing the client or the manufacturer missed something, and discovers it later, then the software system has to again undergo a second alpha testing before giving the software product another green signal. But, client or customer revision is required mostly in beta testing.

Alpha testing can be formally defined as an actual operation or simulation testing before the launch of the software system and it does not involves software developers.

It is the testing of software on the site of the software developer by the customer or the client after the completion and finishing of the software system or the application.

- Alpha testing can also be called a kind of user acceptance testing or UAT a sit is known in short form.
- Alpha testing is carried out at the site of the software development. It is done by the clients or the customers. When the project is the development phase, it is said to be under alpha testing.
- Alpha testing allows the software tester to make some minor changes or modifications during the testing or at the end of it.
- It is carried out in the front of the developers, so that they can now what is the error or the bug and what it is and how it can be fixed efficiently.

- Alpha testing can be thought of as a stage of software prototype at which it may be discovered that the software system does not have all the required functionalities and specifications. But, one thing is definitely sure that the software system will have all the core functionalities and operational abilities and it will efficiently accept the input data values and generate the proper output as expected.
- Alpha testing is carried out on any system other than the system on which the software system was developed in the office of the developer.
- Client or the customer carries out the alpha testing under the leadership of the software developer.
- These days the alpha testing is being done by both the end users and the software developers.
- Alpha testing is the complete testing as it contains most of the functionality and specifications.
- Sometimes a group of clients or users are selected to perform alpha testing for the software system.
- Mostly the alpha testing is performed in-house or sometimes is performed by an external testing firm which in close terms or cooperation with the concerned software development corporation or the company.
- Sometimes it may also happen that the software developers may test the software system in front of the end users present within the development environment.
- This kind of testing is popularly known as off site testing. The end user side or the testing side is also called the development end.

In alpha testing it is necessary to determine whether the the software system is delivering the service as it was expected by the client or the customer. The environment in which the alpha testing is performed is called the client environment.


Tuesday, September 27, 2011

Estimation techniques - estimation using use cases

We have read about estimation techniques like problem and process based estimation techniques. There is another estimation approach that uses use cases which provide insight into software scope and requirements. However, it is somewhat difficult to develop an estimation technique using use cases.

- There is no standard format or style in which use cases can be described because there are many different formats and styles that a use case can use.
- The complexity of the functions are not addressed by the use cases.
- Complex behavior like interactions among many functions and features are not described by the use cases.
- Use cases are used to represent the user's view of the software.

Use case estimation technique for one person can require a lot of effort while use case estimation technique for some other person can be done in a day or two. According to Smith, use cases can be used for estimation but it is only possible and considered within the context of structural hierarchy that the use case describe.

- structural hierarchy can have not more than 10 use cases.
- each use case can have not more than 30 different scenarios.
- before using use case estimation, level within structural hierarchy is established, average length of each use case is computed, type of software is defined, rough architecture is considered.
- empirical data is used to establish lines of code or function point for each level.


Monday, September 5, 2011

What are different web engineering project metrics?

The objective of a good web application is that it delivers a combination of good content and appropriate functionality for the end user. Web engineering project metrics are defined that assess its internal productivity and quality are:

- Number of static web pages measure provides an indication of the overall size of the application and the effort required to develop it. This measure has less complexity and requires less effort to get construct.
- Number of dynamic web pages measure high complexity and more effort to get construct. It provides an indication of the overall size of the application and effort required to develop it.
- Number of internal page links measure gives an indication of degree of architectural coupling within the web application. Effort on navigation and construction increases as the number of page links increase.
- As Number of persistent data objects increases, the complexity and effort to implement it also grows.
- As Number of external systems interfaced increases, the complexity of the system and effort required for the development also increases.
- Number of static content objects includes static text, graphics, video, animation and audio within the application. Multiple content objects appear on single web page.
- Number of dynamic content objects includes objects based on end user action and includes text, graphic, video, animation and audio within the application. Multiple content objects appear on single web page.
- As the Number of executable functions increases, the modeling and construction effort also increases. A metric can be defined reflecting the degree of end user customization required for web application. An executable function provides a computational service to end user.

Web application metrics can be computed and correlated with measures like effort, errors and defects uncovered, models or documentation pages produced.


Tuesday, August 30, 2011

What are different object oriented metrics in software measurement?

Object Oriented Metrics


Lines of code and Function point metrics can be used for object oriented projects but they do not provide enough granularity for schedule. Some object oriented metrics are as follows:

- Number of scenario scripts
A scenario script describes the interaction between user and application. It is directly related to application size and number of test cases developed to exercise the system.

- Number of key classes
Key classes are independent components. The number of key classes is the indication of the amount of effort that is required to develop the software and it also indicates the potential amount of reuse applied during system development. The key classes are directly related to problem domain.

- Number of support classes
Support classes are not directly related to problem domain. Support classes can be developed for key class. Number of support classes indicates amount of effort required to develop software and potential amount of reuse to be applied.

- Number of subsystems
Subsystem is gathering of classes supporting a function visible to the end user. A schedule is laid out in which work on subsystem is partitioned.

- Average number of support classes per key class
Estimation becomes easy and simplified if average number of support classes per key class is known.

As database grows, relationships between object oriented measures and project measures provides metrics for project estimation.


Tuesday, August 23, 2011

WebApp Interface Design - Interface Control Mechanisms and Interface Design Workflow

INTERFACE CONTROL MECHANISM
The objectives of Web application interface are:
- establishing a consistent window into content and functionality provided by interface.
- guiding the users through interactions with web application.
- organizing the content and navigation options.

A metaphor is drawn that guides the user interaction and enables the user to gain understanding of the interface. Some interaction mechanisms available to web application designers are
- navigation menus that list key content and or functionality.
- graphic icons that enable user to select some property or specify a design.
- graphic images that implements a link to content object or the functionality of web application.

INTERFACE DESIGN WORKFLOW
It includes the following tasks:
- The information contained in analysis model is reviewed and refined.
- A rough sketch of web application interface layout is developed.
- The user objectives are mapped to specific interface actions.
- Set of user tasks associated with each action are defined.
- For each interface action, storyboard screen images are developed.
- Input from aesthetic design can be used to refine interface layout.
- User interface objects required to implement interface are identified.
- A procedural representation of user's interaction is developed.
- A behavioral representation is developed.
- Interface layout is described.
- Interface design model is refined and reviewed.


Monday, August 22, 2011

What are different design issues and attributes for web applications?

Design model contains enough information to reflect how requirements are translated into content and executable code. Design should be specific. It is an engineering activity. It leads to a high quality product. the major attributes for quality of web applications are:

- Security of web applications is the ability of WebApp and its server environment to stop unauthorized access or threat.
- Availability plays an important attribute. Availability is the measure of the percentage of time that a web application is available for use. The expectation of a end user regarding the availability of a web application is each and every moment. Using features available on one browser or platform makes the web application unavailable to those who work on different platform or browser.
- Scalability is whether the web application and interfacing systems are able to handle significant variation in volume or will the responsiveness drop. Web application should be designed in such a way that it is able to accommodate the burden.
- Time to market is a measure of quality from a business point of view.

Assessing content quality includes :
- whether the user needs are met by determining the scope and depth of content?
- whether the background and authority of content's authors be easily identified?
- whether it is possible to determine the currency of content, last update and what was updated?
- whether the content and its location stable?
- credibility of content?
- uniqueness of content?
- whether content is valuable to targeted user?
- whether the content is well organized and easily accessible?


Friday, August 19, 2011

Overview of Functional and Configuration Model in analysis for WebApps

THE FUNCTIONAL MODEL
There are two processing elements of web application. The functional model addresses the above two elements of web application:
- user observable functionality delivered by web applications to end-users.
- operations within analysis classes that implement behavior within class.

User observable functionality encompasses processing functions initiated directly by user. These functions are implemented using operations within analysis classes but from end-user point of view, the function is the visible outcome.

The operations within analysis class manipulate the attributes of the class involved as class collaborate with one another to accomplish required behavior.

THE CONFIGURATION MODEL
The web application must be thoroughly tested within every browser configuration that is specified as part of configuration model.
In some cases, configuration model is not more than a list of server and client side attributes. For complex web applications, configuration complexities have an impact on analysis and design.
Client side software provides the infrastructure that enables access to the web application from user;s location.
On server side, appropriate interfaces, communication protocols and related information should be specified if web application has to access large database or inter-operates with other applications.


Sunday, August 14, 2011

What are User Interface Design and Operation oriented Metrics?

User interface design metrics are fine but above all else, be absolutely sure that your end users like the interface and are comfortable with the interactions required.
- Layout appropriateness is a design metric for human computer interface. The layout entities like graphic icons, text, menus, windows are used to assist the user.
- The cohesion metric for user interface measures the connection of on screen content to other on screen content. UI cohesion is high if data on screen belongs to single major data object. UI cohesion is low if different data are present and related to different data objects.
- The time required to achieve a scenario or operation, recover from an error, text density, number of data or content objects can be measured by direct measures of user interface interaction.

Operation oriented metrics are:
- Operation complexity is computed using complexity metrics because operations should be limited to a specific responsibility.
- Operation size depends on lines of code. As the number of messages sent by
a single operation increases, responsibilities have not been well allocated within a class.
- Average number of parameters per operation is defined as: larger the number of operation parameters, more complex is the relation between objects.


Tuesday, August 9, 2011

What are the requirements gathering steps that are used for web applications?

The objectives for web applications are identifying the content and functional requirements and to define the interaction scenarios for different classes of users. To achieve these objectives, following steps are conducted:
- User categories and descriptions are developed for each category by stakeholders.
- Web application requirements are defined and communicated to stakeholders.
- All the information that is gathered is analyzed and then the information is used to follow up with stakeholders.
- The use cases describing the interaction scenarios for each user class are defined.

DEFINING USER CATEGORIES
Understanding the user's background, motivation, and objectives is critical in all software engineering tasks. In order to define a user category:
- one should know the user's overall objective when he or she is using the web application.
- one should know the background of the user and the knowledge of content and functionality of the web application.
- one should know how the user should approach the web application.
- one should know the generic web application characteristics that the user will like or dislike.

COMMUNICATING WITH STAKEHOLDERS AND END USERS
The communication mechanisms that can be used in web engineering work are:
- traditional focus groups.
- electronic focus groups.
- iterative surveys.
- exploratory surveys.
- scenario building.

ANALYZING INFORMATION GATHERED
An evaluation of content objects and operations can be delayed until analysis modeling begins. It is more important to collect information and not evaluating it at this point. As information is gathered, it is categorized by user class and transaction type and then assessed for relevance.

DEVELOPING USE CASES
Use cases tell how a user category will interact with web application to accomplish a specific action. Use cases help the developer to understand the user perception while interacting with the web application, provide detail to create analysis model, help to separate WebE work and provide guidance who test WebApp.


Sunday, August 7, 2011

What are Web engineering Systems? What are the attributes for web based systems?

Web systems deliver complex array of content and functionality to end users. Web engineering creates high quality web applications. Web based systems grow complex, a failure in one can propagate broad based problems. There is a need for disciplined approaches and new methods and tools for development, deployment and evaluation of web based systems and applications.

Attributes for web based systems are:
- A web application should serve the needs of different community of clients.
- A large number of users may access the web application at one time.
- Web application should be able to handle unpredictable load.
- Users of popular web application demand access and availability of them round the clock.
- Web applications uses hypermedia and access information that exists on databases that were originally not a part of web based environment.
- The content should be of good quality.
- Web applications evolve continuously. Continuous care and feeding allows a web site to grow.
- Web applications exhibit a time to market. Web engineers use methods for planning, analysis, design, implementation and testing to compress time schedules.
- To protect sensitive content and provide secure modes of data transmission, strong security measures should be implemented.
- The look and feel of a web application should be appealing.

The categories of web applications that are encountered in web engineering are informational, download, customization, interaction, user input, transaction oriented, service oriented, portal, database access, data warehousing.


Wednesday, July 27, 2011

Introduction to Validation testing? What is the validation criteria?

Validation tries to uncover errors, but the focus is at the requirements level, i.e. on the things that will be immediately apparent to the end user. It begins at the end of integration testing, when all individual modules are packaged and interface errors are uncovered and corrected. In validation testing phase, testing focuses on user visible actions and output that is user recognizable. The criteria of software entering into validation phase is that it functions in a manner that is reasonably expected by the customer.

In software requirements specification, there is a section called validation test criteria. Test plan lists out the tests to be conducted and a test procedure defines test cases. These plan and procedure are designed to ensure that all the functional requirements are satisfied, behavioral characteristics are achieved, performance requirements are attained, usability is met and documentation is done.

Configuration review ensures that all elements of software configuration are properly developed, cataloged and every necessary detail is given. It is also known as audit.

Alpha testing is done at developer's site. It does not happen at usual workplace. The real users are simulated by using these techniques and carrying out tasks and operations that a typical user might perform.

Beta testing is done at end user sites. The developer is not present. It is the live application of software in an environment that is not controlled by the developer. The end user records all the problems that he faces and reports to the developer.


Tuesday, June 7, 2011

What are Relational Database Management Systems? What is the need to test RDBMS?

Relational Database Management Systems cntains critical data which is updated by many applicatins and many end users. They provide important functionality as well. It is very important to test the functionality of relational database management systems. A regression suite should be made available and testing should be done on a regular basis.

The need to test a relational database management system is necessary because data is a very important asset and all the critical business related functionality is implemented in relational database management system. Generally, data professionals used to control changes and do formal testing but this approach did not proved to be efficient so because of the current approaches not being very efficient, there arises the need for relational database management system testing. Also, testing is a way to provide feedback that could be used to identify defects.

RDBMS testing should test the following :
- Black box testing at the interface which includes data values being persisted, data values being retrieved and stored functions and procedures.
- White box or clear box testing tests within the database. It includes scaffolding code which supports refactoring, unit tests, existence tests for database schema elements, view definitions, referential integrity rules, data invariants involving coloumns, data invariants for single column.

A test-first development(TFD) approach is used by agile software developers where a test is written before writing enough production code to fulfill that test.
- Add a test.
- Run the tests
- If it passes, again add a test otherwise make a little change and again run the tests.
- If it fails, again make a little change and run the tests.
- If it passes, the development stops.
- Once the test passes, again start over.

Test Driven Development(TDD) combines test first development and refactoring. When a new feature is implemented, the question whether this is the best design hwich enables the developer to add this feature is asked. If the answer is yes, then do the work and proceed. If the answer is no, design is refactored and then test first driven (TFD) is done.


Tuesday, April 26, 2011

What are steps involved in deriving test cases? What are Validation, Alpha, Beta testing? What are test metrics?

The steps in deriving the test cases using use cases are:
- Using the RTM, the use cases are prioritized. Importance is gauged based on the frequency with which each function of the system is used.
- Use case scenarios are developed for each use case. The detailed description for each use case scenario can be very helpful in later stage.
- For each scenario, take at least one test case and identify the conditions that
will make it execute.
- Data values are determined for each test case.

After system testing is culminated, validation testing is performed which consists of a series of black box tests. It focuses on user-visible actions and user-recognizable output.
Alpha and Beta Testing are a series of acceptance tests. Alpha testing is performed in a controlled environment normally at developer's site. In alpha testing, developers record all errors and usage problems while end users use the system. Beta testing is done at customer's site and developers are not present. In beta testing, end-users records all errors and usage problems.

The amount of testing effort needed to test object oriented software can be indicated by the metrics used for object-oriented design quality. These metrics are:
- Lack of Cohesion in Methods (LCOM)
- Percent Public and Protected (PAP)
- Public Access To Data Members (PAD)
- Number of Root Classes (NOR)
- Number of Children (NOC) and Depth of the Inheritance Tree (DIT)


Monday, April 4, 2011

What are concepts of Requirements Engineering? Different tasks of requirement engineering - Inception and Elicitation.

Requirement Engineering encompasses a set of tasks that lead to an understanding of what the business impact of the software will be, what the customer wants, and how end-user will interact with the software. The basic agreement between end-users and developers on what the software should do is given by requirement engineering.

It gives stakeholders anopportunity to define their requirements understandable to the development team. Designing and building an elegant computer program that solves the wrong problem is a waste. This is the reason why it is important to understand what customer wants before one begins to design and build a computer-based system. Requirements Engineering builds a bridge to design and construction.

There are seven distinct tasks to requirements engineering namely inception, elicitation, elaboration, negotiation, specification, validation and management.

INCEPTION


At inception, the problem scope and its nature is defined.
To initiate requirement engineering, steps include:
- identify stakeholders.
- recognize multiple viewpoints.
- work towards collaboration.
- ask the first question.
The main output or work product of inception task is a one or two pages of
product request which is a paragraph summary of the problem and its nature.

Elicitation


Elicitation is a task that helps the customer define what is required. The problems encountered are problems of scope, problems of understanding, problems of volatility. Elicitation makes use of a requirements elicitation format that combines the elements of problem solving, elaboration, negotiation, and specification.
Joint Application Development is one collaborative requirement gathering technique that is popularly used to elicit requirements.
The tasks involved in elicitation can be categorized into three groups, namely, pre-joint meeting tasks, joint meeting tasks and post-joint meeting tasks.

Quality Function Deployment is a technique that emphasizes an understanding of what is valuable to the customer. It identifies three types of requirements normal requirements, expected requirements and exciting requirements.

The output of the elicitation task can vary depending on size of thesystem or product to be built. For most systems, the output or work products include a statement of need and feasibility, a bounded statement of scope for the system or product, a list of customer, users, and other stakeholders who participated in requirements elicitation, a description of the system's technical environment and a priority list of requirements, preferably, in terms of functions, objects and domain constraints that apply to each.


Facebook activity