[TIP] vikas_it_pec at yahoo.co.in

garg vikas vikas_it_pec at yahoo.co.in
Mon Apr 6 07:00:50 PDT 2009


hi,
     As I earlier sent you mail that i am improving my application as it

was very roughly written. Mr.Daniel (ajax) Diniz helped me alot for this 
so that it could be easily readable for the mentors.I am also attaching 
my old application with this mail.So please give me suggestions for 
this application so that i can improve this more.
 

       Enhancing Core-Python Testing Infrastructure

Abstract:
The aim of this project is to make testing easier, more efficient and
more useful for core Python development. This can be achieved by:
1) Creating a bridge between the core Python Testing Infrastructure
and the nose framework[1], which provides many desirable features,
including simple test writing and running, tag-based test filtering,
code coverage reports and extensibility with plug-ins.
2) Providing a smart GUI for nose, to make running the tests easier.

Content

Summary:

1) Python is improving each day by providing more features and
facilities to python programmers, but core
 Python developers don't
have a full-featured testing infrastructure. Their expertise allows
them to write their own mini-frameworks to cover missing features as
needed. New developers have to learn each different testing style to
be able to test and debug the code they change, which is a problem. I
think a good testing framework will solve this issue. The nose
framework is a good option for making the Python Testing
Infrastructure better. It allows to selectively execute certain tests,
capture their results and collate error output. It can also add
coverage and profiling information in addition to finding and running
the tests. Another important feature of nose is its plug-in based
architecture, which allows extending its features set easily. However,
nose isn't presently compatible with the core Python test suite.
Adding a compatibility bridge can be done by writing a nose plug-in
which will allow nose to
 execute the core Python test suite. This way,
all great nose features will be available in the core Python Testing
Infrastructure. This will provide great help for easier bug
confirmation, fixing and testing. Since tests will be more relevant
due to finer-grained control (e.g tag-based execution),  it will also
help in reducing running time of tests and avoiding accidental
disabling of tests.

2) GUIs ease the use of applications, specially for new users who
don't know the application well. Those who are new to testing or to
nose could be more successful using a graphical interface than the
command line interface. This project will provide a smart GUI for
nose, with a execution window to run various tests with different
options, an editor to help writing tests and plug-ins, and the ability
to configure nose based on information like which plug-ins are
available. It can change their value. It will also
 help to use
plug-ins, like tagging of tests using GUI, in case of tag plug-in. We
can also enable the logger to view and work with logs in the GUI.

The final goal of this project it is to implement the new features
without changing anything in the core Python Testing infrastructure or
in nose. Instead, this project will offer a bridge between nose and
the core Python test suite. It will include nose plug-ins and wrappers
that will provide valuable features like tag-based execution, code
coverage reports and many more. In the same way, I am not going to
change the default behavior of python-nose, but write the GUI in a way
that it works with the current nose code. The GUI could then be used
to provide an easy interface for testers, without a negative impact in
command line use.

 Schedule:

Start of program:
0)  March - 20 April:
I have studied and discussed the nose framework and the core Python
testing infrastructure. I have added a command line option to
regrtest.py, ... etc. By doing this, I have learned about how the core
Python test suite works, its rough organization, how it uses unittest
and test_support.

1) 21 April - 14 May:
I will analyze the nose framework code in more detail, specially the
plug-in system, test discovery and runner parts. Then I will analyze
the regrtest.py script (test runner of core Python test suite) and the
needs of the core Python test suite in depth. By doing this, I will be
able to create a detailed roadmap for a set of nose plug-ins and
wrappers to make all interesting features available to the core Python
tests.

2) 15 May - 20 May:
I will use this time to create a basic layout for a nose GUI nose. I
will  decide its looks, which features and windows should it include
and create an implementation plan.

3) 21 May - 23 May:
To write tag-wrappers for such a big test suite as Python's would be a
problem given the number of tests present, so I will write a small
application to do this job. I have to study what is necessary for
that.

Midterm evaluation:

1) 23 May - 10 June:
I will finish the code of the nose plug-ins and wrappers needed to
support the core Python test suite.

2) 11 June- 25 June:
Test and debug the nose plug-ins to provide code coverage and
 sensible
results. After that I will clean up the code.

3) 26 June- 5 July:
Write “tag-wrapper creator” code and generate desired tags based on
feedback from core developers.

4) 6 July - 12 July:
Test,debug and clean up code of tag-wrapper creator.

Final evaluation:

1) 12 July-28 July:
Code for a nose-framework GUI. I will first work on a execution window
for tests, then a configuration window, a graphical view to use
tag-wrapper writer,  integration of nose plug-ins and test writing
tool in the GUI.

2) 28 July-10 August:
Test, debug and clean up code of the nose GUI.

3) 10 August-15 August:
Prepare documentation
 on the work.

About Me:

 I am an Information Technology student doing graduation at Punjab Engineering College[2] in India.

My technical skills:

1) I am good in C and C++ programming. I really love C and have a good
grip on this language. I also did many college level projects.
2) I learned .NET framework and developed one small website as a project.
3) I undertook the data-structure course in my college and got 'A'
grade in this subject, I am well versed in the concepts of link-lists,
trees, graphs.
4) I did a course on RHCE to learn Linux 2 years ago and have been
using Linux from that time.
5) I have taken courses on networking and databases in college.
6) I setup the nuclear control system on network of Linux machines at
IUAC[3] (a research
 center in India).
7) I came in contact with Python two months earlier when I was
assigned to do a real life project in a research center in India so
now presently I have some good knowledge of Python.

My Strengths:

1) Keen to learn
2) Creative Mind
3) Hard working
4) Responsibility
5) Ability to adapt circumstances
6) Ability to interact with people

Project Motivation:

1) I am new to Python community but I am very keen to learn open
source development. I am very hard working and this project is very
important to me. I will complete it at any cost as I am planning to
pursue research as my career, so this project will provide me a good
experience of research and development.

2)  Python is very easy to learn, efficient and I think the
 best
language. Core Python developers are making the life of python
developers easier by providing them very good features within the
Python language. This project will allow new core Python developers to
be more productive in developing core Python, so the large Python
community will get benefits from my work.

Contact Info:

I can be in touch with mentors and the community via IRC, Email and IM
during this project.
I have good programming skills in Python and has got good
understanding of nose and core-python testing infrastructure on which
this project is depended upon.

[1] http://www.somethingaboutorange.com/mrl/projects/nose/
[2] http://www.pec.ac.in/
[3]http://www.iuac.ernet.in/


      Connect with friends all over the world. Get Yahoo! India Messenger at http://in.messenger.yahoo.com/?wm=n/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.idyll.org/pipermail/testing-in-python/attachments/20090406/47025dc1/attachment-0001.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Nose compatibility with Core-Python Testing Infrastructure.doc
Type: application/msword
Size: 118784 bytes
Desc: not available
Url : http://lists.idyll.org/pipermail/testing-in-python/attachments/20090406/47025dc1/attachment-0001.doc 


More information about the testing-in-python mailing list